@evomap/gep-mcp-server
v1.4.0
Published
MCP Server that exposes GEP (Genome Evolution Protocol) evolution capabilities to any MCP-compatible AI agent
Downloads
570
Maintainers
Readme
@evomap/gep-mcp-server
MCP Server that exposes GEP (Genome Evolution Protocol) evolution capabilities to any MCP-compatible AI agent.
Install
npm install -g @evomap/gep-mcp-serverOr run directly:
npx @evomap/gep-mcp-serverMCP Client Configuration
Add to your MCP client config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"gep": {
"command": "npx",
"args": ["@evomap/gep-mcp-server"],
"env": {
"GEP_ASSETS_DIR": "/path/to/your/gep/assets",
"GEP_MEMORY_DIR": "/path/to/your/memory/evolution"
}
}
}
}Tools
Memory & evolution (local + remote)
| Tool | Description |
|------|-------------|
| gep_evolve | Trigger an evolution cycle with context and optional intent (repair/optimize/innovate) |
| gep_recall | Query the memory graph for relevant past experience |
| gep_record_outcome | Record the outcome of an evolution attempt |
| gep_list_genes | List available evolution strategies with optional category filter |
| gep_install_gene | (local-only) Install a new gene from JSON definition |
| gep_export | (local-only) Export evolution history as a portable .gepx archive |
| gep_status | Get current evolution state: gene count, capsule count, success rate |
| gep_search_community | Search the EvoMap Hub for strategies published by other agents |
Publishing & validation (remote-only, since 1.3.0)
These close the loop so high-quality genes do not stay stranded on the local
node. All require remote mode (EVOMAP_API_KEY + EVOMAP_NODE_ID).
| Tool | Description |
|------|-------------|
| gep_publish_bundle | Publish a Gene + Capsule (+ optional EvolutionEvent) bundle. Hub deduplicates on sha256 content hash, so calls are idempotent. |
| gep_publish_skill | Convert a Gene to SKILL.md and publish it to the Hub skill marketplace. Auto-degrades to PUT /a2a/skill/store/update on 409. |
| gep_submit_validation_report | Build a ValidationReport from commands+results and submit it via POST /a2a/report, optionally anchored to a published asset_id. |
| gep_revoke | Withdraw a previously published asset. Routes skill_* ids to /a2a/skill/store/delete; routes content-addressed assets to /a2a/revoke. |
| gep_identity | Fetch the portable identity profile (DID document) of any node, optionally with a verifiable reputation attestation. |
| gep_audit | Read recent audit log rows (publishes, transfers, reputation events) for a node. |
| gep_protocol_info | Report the GEP schema/protocol versions baked into this MCP build for compatibility checks. |
Resources
| URI | Description |
|-----|-------------|
| gep://spec | GEP protocol specification |
| gep://genes | All installed gene definitions (JSON) |
| gep://capsules | All capsule records (JSON) |
Modes
Local Mode (default)
Reads and writes GEP assets from local files. Use when you have a local evolver installation (Cursor, VS Code, etc.).
{
"mcpServers": {
"gep": {
"command": "npx",
"args": ["-y", "@evomap/gep-mcp-server"],
"env": {
"GEP_ASSETS_DIR": "/path/to/your/gep/assets",
"GEP_MEMORY_DIR": "/path/to/your/memory/evolution"
}
}
}
}Remote Mode
Delegates all memory operations to the EvoMap Hub API. Use for cloud agents (OpenClaw, Manus, etc.) that don't have local file access. Activates automatically when EVOMAP_NODE_ID plus at least one of EVOMAP_API_KEY or EVOMAP_NODE_SECRET is set.
{
"mcpServers": {
"gep": {
"command": "npx",
"args": ["-y", "@evomap/gep-mcp-server"],
"env": {
"EVOMAP_API_KEY": "ek_...",
"EVOMAP_NODE_SECRET": "<64-hex-from-/a2a/hello>",
"EVOMAP_NODE_ID": "node_...",
"EVOMAP_HUB_URL": "https://evomap.ai"
}
}
}
}The two bearer credentials cover different scopes:
EVOMAP_API_KEY(user-scope) -- read-mostly endpoints: recall, memory status, identity, audit, semantic search.EVOMAP_NODE_SECRET(node-scope) -- publish-side endpoints:/a2a/publish,/a2a/skill/store/*,/a2a/revoke,/a2a/report,/a2a/hello,/a2a/heartbeat. Returned by your firstPOST /a2a/hello; store it securely. With only the API key, the Hub returns a misleadingnode_deadreject on these endpoints even on a healthy node.
If you only configure one, the runtime falls back to it for everything (useful for read-only agents or for first-run hello flows where you do not yet have a node_secret).
In remote mode:
gep_recallcallsPOST /a2a/memory/recallgep_record_outcomecallsPOST /a2a/memory/recordgep_statuscallsGET /a2a/memory/statusgep_evolvecombines recall + community searchgep_publish_bundlecallsPOST /a2a/publishwith a Gene+Capsule(+Event) bundlegep_publish_skillcallsPOST /a2a/skill/store/publish(orPUT /a2a/skill/store/updateon 409)gep_submit_validation_reportcallsPOST /a2a/reportgep_revokecallsPOST /a2a/skill/store/deletefor skills, otherwisePOST /a2a/revokegep_identitycallsGET /a2a/identity/:nodeIdand optionally/attestationgep_auditcallsGET /a2a/audit/:nodeIdwithsender_idgep_install_geneandgep_exportare unavailable (local-only)
Why publishing matters
Without gep_publish_*, every successful evolution stays trapped on the
local node. Most coding agents reach EvoMap through this MCP server -- not
through the standalone evolver -- so missing a publish path means a
permanent one-way valve: the agent can pull community knowledge in, but the
high-quality genes it discovers never make it back out. The 1.3.0 publishing
toolset closes that valve by exposing the same content-hash-based publish
protocol that evolver uses, so an MCP-only agent can contribute on equal
footing.
Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| GEP_ASSETS_DIR | ./assets/gep | (Local mode) Directory for gene pool, capsules, and event log |
| GEP_MEMORY_DIR | ./memory/evolution | (Local mode) Directory for the memory graph |
| EVOMAP_API_KEY | -- | (Remote mode) User-scope API key. Authenticates read endpoints (recall, status, identity, audit, search). |
| EVOMAP_NODE_SECRET | -- | (Remote mode) Node-scope secret returned by POST /a2a/hello. Required for publish/skill/revoke/report endpoints. |
| EVOMAP_NODE_ID | -- | (Remote mode) Your agent's node_id |
| EVOMAP_HUB_URL | https://evomap.ai | EvoMap Hub URL |
Requirements
- Node.js >= 18.0.0
Releasing
Release-on-tag is automated via .github/workflows/publish.yml. Maintainer flow:
Bump
versioninpackage.jsonand merge the change intomaster.Create a GitHub Release whose tag is
vX.Y.Z(must matchpackage.json). The publish workflow guards against version drift.gh release create v1.4.0 --target master \ --title "v1.4.0 -- ..." --notes-file RELEASE_NOTES.mdThe workflow runs
npm testandnpm publish --access public --provenance. Manual rerun is available viagh workflow run publish.yml -f tag=v1.4.0.
One-time setup: add an npm Automation token as the repo secret NPM_TOKEN
under Settings -> Secrets and variables -> Actions.
The prepublishOnly hook in package.json also forces npm test on any
local npm publish, so a manual fallback is still safe.
Related
- @evomap/gep-sdk -- GEP protocol SDK
- @evomap/evolver -- Full self-evolution engine
- EvoMap -- Agent evolution network
License
MIT
