Skip to main content
Glama
samvallad33

Vestige

by samvallad33

source_sync

Index GitHub issues or Redmine projects into Vestige as an offline searchable index that cites back to the source. Re-running updates changed items; enable reconcile to remove deleted upstream items.

Instructions

Index an external system into Vestige as a durable, offline, semantically-searchable index that cites back to the canonical record. GitHub: source='github', repo='owner/name' (auth via GITHUB_TOKEN env). Redmine: source='redmine', project='' (host via REDMINE_URL, auth via REDMINE_API_KEY env). Idempotent: re-running updates changed issues without duplicating; set reconcile=true to tombstone issues removed upstream.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
repoNoGitHub only: repository as 'owner/name', e.g. 'samvallad33/vestige'.
sourceNoExternal system to sync: 'github' (GitHub Issues) or 'redmine' (a Redmine project).github
projectNoRedmine only: project identifier (slug or numeric id) to sync. The Redmine host comes from the REDMINE_URL env var.
max_pagesNoMax API pages to fetch this run (each page is up to 100 issues). Lets a first sync of a large project be resumed across calls. Default 10.
reconcileNoAlso tombstone local memories for issues no longer visible upstream (an extra full enumeration pass). Default false on incremental syncs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.6.0
  2. Removedv2.3.0
  3. First observedv2.1.27

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden, and it does well: it reveals idempotency, that re-runs update changed issues without duplication, and that reconcile=true tombstones upstream-deleted issues. It does not describe return values or failure behavior, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with no filler: purpose is front-loaded, source-specific details are grouped, and the idempotency/reconcile caveat is placed last as operational guidance. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter, two-backend sync tool with no annotations and no output schema, the description provides the needed auth, idempotency, and reconciliation context. The only notable omission is the response/return shape, which would make post-call verification easier.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds value by binding source to repo/project, naming the env vars for auth, and clarifying reconcile's tombstone effect. It supplements the schema rather than merely repeating it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and result: 'Index an external system into Vestige as a durable, offline, semantically-searchable index'. It also names the two supported sources, so the agent knows exactly what scope the tool has and can separate it from generic search/memory tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Covers per-source invocation (GitHub needs repo, Redmine needs project), auth env vars, and the idempotent re-run behavior plus reconcile. It does not explicitly name sibling alternatives like smart_ingest or state when not to use this tool, so it stops just short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.