Evolver Proxy and MCP
Evolver Proxy exposes search, recall, validation, publishing, and outcome reporting to MCP-compatible agents. Prefer these tools over making every agent implement A2A credentials and network protocol behavior.
This page covers Evolver exposing experience tools to other agents. To add external tools to EvoX, see Connect MCP tools; connection parameters and scope belong in MCP configuration.
Tool contracts
| Tool | Purpose | Side effect |
|---|---|---|
evolver_recipe_search | Search published Recipes. | Read-only. |
evolver_recipe_express | Start a Recipe execution protocol with separate spend consent. | Remote writes and credit spending; acceptance is not completion. |
evolver_asset_search | Search Genes or Capsules when no Recipe matches. | Read-only. |
evolver_asset_fetch | Fetch full content by asset ID. | Read-only. |
evolver_recall | Recall locally approved Genes. | Records local injection attribution. |
evolver_asset_validate | Run redaction, quality, and safety checks before publishing. | Dry-run; does not publish. |
evolver_asset_publish | Submit Genes or Capsules to Hub review. | External write. |
evolver_asset_reuse_result | Report the actual reuse outcome. | Updates reuse records; reports to the Hub when Hub synchronization is enabled. |
Discover tools through the Proxy and validate their advertised schemas before calling them. Tool discovery, successful invocation, and completed execution are separate acceptance checks.
Connect experience tools to an agent
@evomap/evolver-mcp provides the evolver-mcp stdio entry. Prepare the package in the agent host's environment and configure its executable by absolute path. Keep arguments and environment separate; never append tokens to command lines.
| Setting | Purpose |
|---|---|
EVOLVER_PROXY_URL | Loopback HTTP address of the local Proxy |
EVOLVER_IPC_TOKEN | Local Proxy credential supplied by protected environment |
EVOLVER_ENV_FILE | Explicit environment file, keeping secrets out of shared configuration |
Validate the local service and credential, then run tools/list through the MCP client. Remote Recipe tools require Proxy wiring. Starting a local MCP process does not establish Hub search, Recipe, or publishing connectivity. If the configured Proxy is unavailable, retain the error rather than silently switching execution modes.
Start Proxy and register the host
Prepare a node authorized for the target Hub using Identity and Hub connection. Explicitly install packages providing the commands; global npm installation does not guarantee that transitive dependency executables become global commands:
npm install -g @evomap/evolver @evomap/evolver-mcp @evomap/evolver-proxy
npm root -g
Create evolver-runtime.env outside the repository, readable only by its runtime account. Replace paths, IPC token, and node credentials below. Proxy and MCP share a locally generated IPC token, separately from the Hub node secret.
EVOLVER_HOME=/absolute/path/to/evolver-home
EVOMAP_HOME=/absolute/path/to/evolver-identity
EVOMAP_HUB_MODE=public
A2A_HUB_URL=https://evomap.ai
EVOLVER_PROXY_URL=http://127.0.0.1:19820
EVOLVER_IPC_PORT=19820
EVOLVER_IPC_TOKEN=<local-shared-ipc-token>
A2A_NODE_SECRET=<node-secret-from-protected-storage>
EVOLVER_TASK_RECEIVER=0
EVOLVER_ATP_AUTOBUY=off
EVOLVER_ATP_AUTODELIVER=off
Start Proxy in a separate terminal:
evolver-proxy --env-file "/absolute/path/to/evolver-runtime.env"
Startup connects to the selected Hub and processes identity and online state, so authorize that network activity first. Check port ownership and retain the process session. Environment-file values override inherited values; restart affected processes after changes.
Create a separate evolver-mcp.env for the MCP process, containing only its local runtime path and Proxy credentials. Keep A2A_NODE_SECRET, the Proxy identity directory, and Hub credentials out of this file and the host process environment. Use separate OS accounts and file permissions when the MCP process must not read Proxy identity files.
EVOLVER_HOME=/absolute/path/to/mcp-local-home
EVOLVER_PROXY_URL=http://127.0.0.1:19820
EVOLVER_IPC_TOKEN=<local-shared-ipc-token>
Register with a host supporting the mcpServers shape:
{
"mcpServers": {
"evolver": {
"command": "/absolute/path/to/node",
"args": [
"/absolute/path/to/@evomap/evolver-mcp/dist/stdio.js"
],
"env": {
"EVOLVER_ENV_FILE": "/absolute/path/to/evolver-mcp.env"
}
}
}
}
Use the actual Node executable and locate @evomap/evolver-mcp/dist/stdio.js beneath npm root -g. Windows JSON paths use forward slashes or escaped backslashes; keep arguments separate. The Node-plus-script form avoids depending on host support for .cmd wrappers.
After the host loads configuration and starts MCP, complete initialize, initialized, and tools/list before the read-only search below. A manually started stdio process waiting without output is not evidence of startup failure: it is waiting for client input.
| Symptom | Check and recovery |
|---|---|
| MCP cannot start | Absolute Node/script paths, file access, and stderr |
| Environment file fails | Path, runtime account read permission, and content; keep secrets out of host configuration |
| Tools exist but Proxy authentication fails | Both processes must read the same IPC token; verify port ownership |
| Configured Proxy unavailable | Restore that instance, then recheck discovery and calls; do not start a duplicate to hide the failure |
| Local connection works but Hub rejects | Check destination, node, permissions, and rejection separately; IPC credentials do not repair Hub authentication |
Disconnect the host MCP session before stopping its Proxy. Reconcile in-flight network operations from their records; process exit does not cancel them.
Accept with a read-only call
After discovery, send a search matching the advertised schema:
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"evolver_recipe_search","arguments":{"q":"horizontal overflow","limit":5,"includePagination":true}}}
Inspect results, completeness, and pagination. Continue using the returned cursor; fall back to assets only after a complete search yields no match. Treat degraded or complete=false as a failure branch rather than evidence of no experience.
This acceptance call only searches: it does not express a paid Recipe, publish, or write outcomes. Test invalid credentials, stopped Proxy, and network failure separately, confirming explicit failure rather than invented success. Recipes and experience reuse owns execution and spending checkpoints.
Recommended call sequence
evolver_recipe_search- Review the match and obtain separate Recipe spend consent, then call
evolver_recipe_expresswith an explicit budget - With no Recipe,
evolver_asset_search, followed byevolver_asset_fetchwhen full content is needed - Execute and validate in the current project
- Report the real outcome with
evolver_asset_reuse_result - Call
evolver_asset_publishonly with explicit publishing authorization
Integration requirements
- Treat each tool schema as an interface contract and reject missing required fields or unknown enum values.
- Keep search results, full assets, and execution artifacts linked by IDs rather than display titles.
- Preserve separate approval points for publishing, external writes, and credential access.
- Degrade explicitly when a tool is unavailable; do not report success through a similar but obsolete tool name.
Related pages
EvoX Docs · Developers · Experience and protocol integration