MCP Integration
Agentverse Memory is MCP-native. Connect any JSON-RPC 2.0 client — Claude Desktop, Cursor, Windsurf, LangChain, CrewAI — without installing any SDK.
io.github.fetchai/agentverse-memory on the MCP Registry.What is MCP?
The Model Context Protocol (MCP) is an open standard for exposing tools and resources to AI agents over JSON-RPC 2.0. Rather than building a bespoke SDK for every framework, MCP lets any compatible client — Claude Desktop, Cursor, LangChain, a custom agent loop — discover and call tools via a single HTTPS endpoint.
Agentverse Memory exposes all 35 memory tools over a single MCP endpoint. No SDK required, though Python and TypeScript SDKs are available for convenience.
Connection Details
| Property | Value |
|---|---|
| Endpoint | https://am-server-jbneh74b5q-uc.a.run.app/mcp |
| Protocol | JSON-RPC 2.0 over HTTPS (POST) |
| Auth header | Authorization: Bearer avmem_sk_your_key_here |
| Content-Type | application/json |
| Tool discovery | POST /mcp with method tools/list |
Give Claude Persistent Memory in 5 Minutes
This walkthrough gives Claude Desktop access to all 35 Agentverse Memory tools — episodic, semantic, graph, procedural, working, and shared — with zero code.
Get your API key
Sign up at memory.agentverse.ai. The Explorer tier is free and includes graph memory. No credit card required. Your key looks like: avmem_sk_...
Find your Claude Desktop config file
| OS | Config file path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
If the file does not exist, create it.
Add the MCP server
Option A — Direct HTTP (recommended, no install needed):
{ "mcpServers": { "agentverse-memory": { "url": "https://am-server-jbneh74b5q-uc.a.run.app/mcp", "headers": { "Authorization": "Bearer avmem_sk_your_key_here" } } }}Option B — Local proxy via npx (useful for local dev, request logging, custom routing):
npm install -g agentverse-memory-mcp{ "mcpServers": { "agentverse-memory": { "command": "npx", "args": ["-y", "agentverse-memory-mcp", "--agent-id", "claude-desktop"], "env": { "AVMEM_API_KEY": "avmem_sk_your_key_here" } } }}The proxy starts automatically when Claude Desktop launches. Logs: ~/.agentverse-memory-mcp/proxy.log
Restart Claude Desktop
Fully quit and relaunch Claude Desktop (Cmd+Q / Alt+F4 — not just close the window). The config is loaded at startup.
Verify it's working
Open a new conversation and ask Claude:
memory_health and tell me the result.”Claude will list all 35 tools and return the health check:
{ "status": "ok", "version": "0.1.0", "uptime_s": 12345 }Store your first memory
Claude calls memory_store_procedure automatically. From this point forward, every conversation can reference this preference — across sessions and across restarts.
Client Configurations
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or equivalent Windows/Linux path:
{ "mcpServers": { "agentverse-memory": { "url": "https://am-server-jbneh74b5q-uc.a.run.app/mcp", "headers": { "Authorization": "Bearer avmem_sk_your_key_here" } } }}Restart Claude Desktop after saving. All 35 tools appear automatically in Claude's tool list.
Cursor IDE
Create or edit .cursor/mcp.json in your project root:
{ "mcpServers": { "agentverse-memory": { "url": "https://am-server-jbneh74b5q-uc.a.run.app/mcp", "headers": { "Authorization": "Bearer avmem_sk_your_key_here" } } }}Cursor hot-reloads the config — no restart needed.
For a project-scoped agent_id shared by all team members, add "X-Agent-Id": "project-myapp-dev" to the headers object.
Windsurf / Codeium
Add via Settings → MCP Servers:
{ "agentverse-memory": { "serverUrl": "https://am-server-jbneh74b5q-uc.a.run.app/mcp", "headers": { "Authorization": "Bearer avmem_sk_your_key_here" } }}Generic MCP Client (cURL)
Any client implementing JSON-RPC 2.0 can connect. Discover all tools with tools/list:
curl -X POST https://am-server-jbneh74b5q-uc.a.run.app/mcp \ -H "Authorization: Bearer avmem_sk_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {} }'Call a tool:
curl -X POST https://am-server-jbneh74b5q-uc.a.run.app/mcp \ -H "Authorization: Bearer avmem_sk_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "memory_store_episode", "arguments": { "agent_id": "my-agent", "content": "Completed Q1 analysis for user_42." } } }'All 35 MCP Tools
All tools are available at every plan tier unless noted. Graph traversal tools (memory_traverse_graph, memory_find_path) are available on all tiers including Explorer (free). See the API Reference for full parameter schemas.
| Tool | Description |
|---|---|
| memory_store_episode | Store a time-stamped event — what happened, when, and to whom. No LLM at write time — sub-ms in-process engine write op. |
| memory_get_episodes | Retrieve episodes for an agent, with filtering by time range, metadata, or pagination. |
| memory_search_episodes | Search episodes by natural language using BM25 + TF-IDF hybrid retrieval with pheromone weighting. |
| memory_search_timeline | Search episodes within a bounded time window — useful for "what happened last Tuesday?" queries. |
| memory_consolidate_episodes | Merge two or more related episodes into a single consolidated record, preserving provenance. |
| Tool | Description |
|---|---|
| memory_store_entity | Store a named entity with type and metadata. Automatically linked in the knowledge graph. |
| memory_get_entity | Retrieve a specific entity by name or ID. |
| memory_list_entities | List all entities for an agent, with optional type/metadata filters. |
| memory_store_relation | Store a directed relationship (subject → predicate → object) between entities. No LLM at write — sub-ms in-process engine write op. |
| memory_get_relations | Get all relations for a given entity — inbound, outbound, or both. |
| Tool | Description |
|---|---|
| memory_query_graph | Run a structured query over the knowledge graph — filter by entity types, relations, and metadata. |
| memory_semantic_search | Semantic similarity search across all memory types using BM25 + TF-IDF + pheromone reranking. |
| memory_get_neighbors | Get immediate neighbors of a node — entities directly connected by one edge. |
| memory_graph_add_triple | Add a (subject, predicate, object) triple directly to the graph. Batch-friendly. |
| memory_graph_neighbors | Extended neighbor query with depth, direction, and relation-type filters. |
| memory_graph_shortest_path | Find the shortest path between two entities in the knowledge graph. |
| Tool | Description |
|---|---|
| memory_store_procedure | Store a skill definition: goal description → ordered steps → expected outcome. |
| memory_get_procedure | Retrieve a specific procedure by its ID (proc_...). |
| memory_match_procedure | Search procedures by goal — returns the most relevant skill for a given objective. |
| memory_update_procedure | Update a procedure's steps (versioned) or record an execution outcome (success/failure rate). |
| Tool | Description |
|---|---|
| memory_set_working | Set a key-value pair in the agent's working memory, with optional TTL for auto-expiry. |
| memory_get_working | Get the current value for a working memory key. Returns null if key doesn't exist or has expired. |
| memory_list_working | List all active working memory keys for the agent — useful for state inspection. |
| memory_clear_working | Clear all working memory for the agent. Called at task completion or session teardown. |
| Tool | Description |
|---|---|
| memory_deposit_pheromone | Manually deposit a pheromone trace on a node or edge — boost retrieval weight for specific memories. |
| memory_get_pheromone | Read the current pheromone weight on a node or edge, including decay-adjusted value. |
| Tool | Description |
|---|---|
| memory_create_shared_space | Create a shared memory space — a multi-agent knowledge pool with JWT/DID-based access control. |
| memory_join_shared_space | Join an existing shared space using an invite token issued by the space creator. |
| memory_shared_store_entity | Store an entity into a shared space — visible to all agents that have joined. |
| memory_shared_query | Query facts and episodes in a shared space — all agents in the space see the same graph. |
| memory_list_shared_spaces | List all shared spaces the agent belongs to, with member counts and metadata. |
| Tool | Description |
|---|---|
| memory_get_stats | Get usage statistics: memory counts by type, storage size, op counts, rate limit status, pheromone summary. |
| memory_delete_agent | Permanently delete all memories for an agent. Irreversible — use with caution. |
| Tool | Description |
|---|---|
| memory_find_path | Pheromone-weighted A* pathfinding between two concepts. Available on all tiers including Explorer (free). |
| memory_traverse_graph | Multi-hop graph traversal from a seed concept — follows pheromone-weighted edges up to max_depth hops. |
Authentication
All requests must include an Authorization header:
Authorization: Bearer avmem_sk_your_key_hereexport AVMEM_API_KEY="avmem_sk_your_key_here"API keys are scoped to your account. You can issue multiple keys (one per agent, one per environment) and revoke individual keys without affecting others.
Rate Limits
Applied per API key (not per agent_id).
| Plan | Monthly ops | Burst (req/min) |
|---|---|---|
| Explorer(Free) | 50,000 | 60 |
| Builder($19/mo) | 500,000 | 300 |
| Pro($99/mo) | 5,000,000 | 1,200 |
| Enterprise(Custom) | Custom | Custom |
"Ops" are counted per MCP tool call. A memory_traverse_graph call counts as one op regardless of how many edges it traverses. When you exceed rate limits, the server returns HTTP 429 with a Retry-After header (rolling 30-day window).
Error Codes
| HTTP | JSON-RPC code | Meaning | Action |
|---|---|---|---|
| 401 | -32001 | Unauthorized — invalid API key | Check Authorization header |
| 403 | -32002 | Forbidden — feature not on your plan | Upgrade at /pricing |
| 404 | -32004 | Not Found — resource ID missing | Check the ID in request |
| 422 | -32602 | Invalid params — malformed args | Check parameter types |
| 429 | -32029 | Rate Limited — ops limit exceeded | Respect Retry-After; upgrade |
| 500 | -32000 | Internal error — server fault | Retry with backoff; report if persistent |
| 503 | -32503 | Service Unavailable | Check status.memory.agentverse.ai |
Example 429 error response:
{ "jsonrpc": "2.0", "id": 3, "error": { "code": -32029, "message": "Rate limit exceeded", "data": { "limit": 50000, "used": 50001, "reset_at": "2026-06-14T00:00:00Z", "retry_after": 1814400 } }}