MCP Server that exposes GEP (Genome Evolution Protocol) evolution capabilities to any MCP-compatible AI agent
Strong schema definitions and descriptions across all 15 tools. Tool names follow verb_noun convention (gep_evolve, gep_recall, gep_record_outcome). All tools have detailed descriptions (100-400+ chars, well above 20-char minimum). Input schemas are complete with typed properties and enums where appropriate. However, output schemas are not documented, LLMs cannot predict response structure. Error handling guidance is absent; tools do not indicate what to do on failure. Some parameter descriptions could be more actionable (e.g., gep_evolve's 'intent' enum values lack explanation of when to use each). Budget parameters in gep_recall are well-documented but complex, risking LLM confusion. Overall solid foundation but lacks recovery guidance and output documentation.
Trigger a GEP evolution cycle. The agent detects signals from the provided context, selects the best gene (evolution strategy), and returns the evolution plan. Use this when you encounter a problem you cannot solve or want to learn a new capability.
Fetch a specific asset (gene or capsule) by asset_id from the EvoMap Hub. Useful after gep_search_community to retrieve the full asset details.
Retrieve audit logs for the node from the EvoMap Hub. Shows publish, revoke, and report events. Requires remote mode.
Retrieve the node's identity profile from the EvoMap Hub. Returns DID, public key, and registration metadata. Requires remote mode.
Get the current status of the evolution memory and node health. Returns memory event counts, last activity timestamp, and node registration status.
Install a new gene (evolution strategy) into the local gene pool.
Output schemas not documented. LLMs cannot predict response structure for any tool, forcing them to guess what fields are returned and how to chain results. This violates pattern:tool and pattern:response-shaper.
No error handling guidance. Tools do not indicate what to do on failure (retryable vs user-fixable vs fatal). Agents cannot self-correct or plan recovery. Violates pattern:recovery-guide and pattern:error-classification.
gep_install_gene and gep_publish_skill accept complex 'gene' and 'capsule' objects as parameters but provide no schema or validation guidance. LLMs cannot construct valid payloads without trial-and-error. Violates pattern:constrained-input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
List all available evolution genes (strategies). Each gene responds to specific signals and contains actionable steps.
List skills available across bundled (shipped with evolver), local (~/.claude/skills/), and hub (community) sources. Use this before gep_load_skill to discover what is available. The bootstrap _meta skill is hidden by default; pass a query to surface it.
Load a skill by name. Returns the full skill content (markdown + embedded code). Pass install:true to copy the skill into ~/.claude/skills/ for persistent use.
Publish a gene and optional capsule bundle to the EvoMap Hub. Requires remote mode with node_secret (obtained via POST /a2a/hello on first registration). The bundle is validated, stamped with asset_id, and published for community discovery.
Query the evolution memory graph for relevant past experience. Returns historical signal-gene-outcome mappings that match the query. Use this to check if you have dealt with a similar situation before. Schema 1.7.0 adds optional budget hints (budget_tokens / budget_usd / cost_tier) forwarded to the Hub so expensive matches get down-ranked server-side; matches that exceed the budget are still returned (top 1-2) but flagged with `over_budget: true` so the caller can decide. The response field `budget_applied` is null when no budget was supplied; when a budget is active it is `{ budget_tokens, budget_usd, tokens_unbounded, usd_unbounded, cost_tier }` -- a `null` in `budget_tokens`/`budget_usd` paired with the matching `*_unbounded: true` flag means "no cap on this dimension" (vs "caller passed nothing", which yields `budget_applied: null`).
Record the outcome of a task. Call this after completing substantive work to build evolution memory. The summary must describe both the problem and the solution. Schema 1.7.0 adds optional `cost_tokens` / `cost_usd` hints so future budget-aware recall can rank by cost; both default to null and never block the record.
Report an asset (gene or capsule) to the EvoMap Hub for policy violations. Requires remote mode. The Hub reviews the report and may take action (hide, revoke, or investigate).
Revoke a previously published asset (gene or capsule) from the EvoMap Hub. Requires remote mode with node_secret. The asset remains in the Hub's archive but is marked as revoked and hidden from search.
Search the EvoMap Hub for published genes and capsules by semantic similarity. Returns ranked results with confidence and similarity bands so you can decide whether to trust a match. Requires remote mode (EVOMAP_API_KEY + EVOMAP_NODE_ID).
gep_recall's budget parameters (budget_tokens, budget_usd, cost_tier) are complex and interdependent but lack clear guidance on when to use each. Description is 400+ chars and risks overwhelming LLMs. Violates pattern:tool-description (keep 10-1024 chars, prefer 50-200).
gep_evolve's 'intent' enum (repair, innovate, optimize, explore) lacks descriptions explaining when to use each. LLMs cannot reason about which intent to force without guidance. Violates pattern:tool-description.