Skip to main content
Glama

AgentMailbox

Cut your AI agent's context tokens by 90%. One command to set up. Zero config files to edit.

npm version npm downloads PyPI npm langgraph CI License: MIT skills.sh

🌐 Website Β· ☁️ Cloud API Β· πŸ“– Docs


The Problem

Every time an AI agent starts a task, it re-reads your entire codebase to understand where to make changes. For a 10,000-file repo, that's 200,000+ tokens per session β€” just to figure out the architecture.

Multiply that by 50 developers, each running multiple agents daily:

Without AgentMailbox

With AgentMailbox

Tokens per session start

~200,000

~5,000–15,000

Daily cost (50 devs)

~$47/day

~$3.50/day

Session start latency

30–60 seconds

2–5 seconds

Context across restarts

❌ Lost

βœ… Persistent

Agent-to-agent messaging

❌ Custom plumbing

βœ… Built-in

Related MCP server: CacheTank MCP Server

How It Works

AgentMailbox is a context-sync protocol for AI agents. It sits beneath your agent framework and provides:

  1. Codebase Indexing β€” A CI bot statically analyzes your code (zero LLM cost) and pushes ~40-token summaries per file to the server. Agents read summaries instead of raw source.

  2. Knowledge Graph β€” Agents persist relationships (files β†’ symbols β†’ decisions) that survive restarts and are searchable by any agent.

  3. Smart Briefings β€” When an agent starts a task, it calls session_start("Add OAuth") and gets back a targeted JSON briefing with relevant files, stale-file warnings, and architecture context.

  4. Async Messaging β€” Agents leave messages for each other in threads (TO/CC/BCC), enabling parallel multi-agent workflows without blocking.

Quick Start β€” One Command

npx agentsmcp init

That's it. The wizard:

  1. Detects your MCP clients (Claude Desktop, Cursor, Continue)

  2. Opens GitHub login in your browser β€” one click to authorize

  3. Writes the config to each client (backs up existing configs first)

  4. Done. Restart your MCP client.

Scripted / CI-friendly:

# Fully unattended β€” GitHub OAuth
npx agentsmcp init --yes --github --all

# Use an existing API key
npx agentsmcp init --api-key sk_live_xxx --all

# Just one client
npx agentsmcp init --api-key sk_live_xxx --client cursor

After restart, your agent has all 24 MCP tools available β€” persistent memory, async messaging, codebase search, and more.

Platform Integration Guides

Add to Settings β†’ MCP β†’ Add (or let npx agentsmcp init do it):

{
  "mcpServers": {
    "agentsmcp": {
      "command": "npx",
      "args": ["-y", "agentsmcp"],
      "env": {
        "AGENTSMCP_AGENT_ID": "cursor@local",
        "AGENTSMCP_SERVER": "https://hdnxa5c8yr.us-east-1.awsapprunner.com",
        "AGENTSMCP_API_KEY": "sk_live_YOUR_KEY"
      }
    }
  }
}

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "agentsmcp": {
      "command": "npx",
      "args": ["-y", "agentsmcp"],
      "env": {
        "AGENTSMCP_AGENT_ID": "claude@desktop",
        "AGENTSMCP_SERVER": "https://hdnxa5c8yr.us-east-1.awsapprunner.com",
        "AGENTSMCP_API_KEY": "sk_live_YOUR_KEY"
      }
    }
  }
}
claude mcp add agentsmcp -- npx -y agentsmcp

Set environment variables:

AGENTSMCP_AGENT_ID=claude-code@local
AGENTSMCP_SERVER=https://hdnxa5c8yr.us-east-1.awsapprunner.com
AGENTSMCP_API_KEY=sk_live_YOUR_KEY
npx skills add RagavRida/agentsmcp

Same config shape: command: npx, args: ["-y", "agentsmcp"] with the three env vars: AGENTSMCP_AGENT_ID, AGENTSMCP_SERVER, AGENTSMCP_API_KEY.

Python

pip install agentsmcp
from agentmailbox import AgentMailbox

agent = AgentMailbox(
    agent_id="my-agent@app",
    server="https://hdnxa5c8yr.us-east-1.awsapprunner.com",
    api_key="sk_live_YOUR_KEY",
)

# Send & receive
await agent.send("other-agent@app", {"task": "analyze data"})
messages = await agent.receive()

# Context graph
await agent.upsert_node(id="file:main.py", type="file", name="main.py",
                        description="Entrypoint")
result = await agent.query_graph("main")

# Codebase index
await agent.upsert_index(key="file:main.py", category="file",
                         summary="FastAPI entrypoint with lifespan handlers")
hits = await agent.search_index("FastAPI", category="file")

JavaScript / TypeScript

npm install agentsmcp
import { AgentMailbox } from "agentsmcp";

const agent = new AgentMailbox({
  agentId: "my-agent@app",
  server: "https://hdnxa5c8yr.us-east-1.awsapprunner.com",
  apiKey: "sk_live_YOUR_KEY",
});

await agent.send("other@app", { task: "done", result: data });
const { messages } = await agent.receive();

// Context graph
await agent.upsertNode({ id: "file:server.ts", type: "file", name: "server.ts" });
const { nodes, edges } = await agent.queryGraph("server");

// Codebase index
await agent.upsertIndex({ key: "api:POST /invoke", category: "api",
                           summary: "Invokes the compiled graph" });
const hits = await agent.searchIndex("invoke", "api");

LangGraph

npm install agentsmcp-langgraph @langchain/langgraph
import { AgentsmcpSaver } from "agentsmcp-langgraph";

const checkpointer = new AgentsmcpSaver({
  server: "https://hdnxa5c8yr.us-east-1.awsapprunner.com",
  agentId: "langgraph@my-app",
  apiKey: "sk_live_YOUR_KEY",
});
await checkpointer.connect();

const graph = workflow.compile({ checkpointer });
await graph.invoke(input, { configurable: { thread_id: "session-abc" } });

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Your Agents                             β”‚
β”‚  Claude Desktop  β”‚  Cursor  β”‚  Python Script  β”‚  LangGraph     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ MCP          β”‚ MCP         β”‚ SDK             β”‚ Saver
         β–Ό              β–Ό             β–Ό                 β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   AgentMailbox Server                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ Messagingβ”‚  β”‚ Knowledge β”‚  β”‚ Codebase β”‚  β”‚   Context     β”‚  β”‚
β”‚  β”‚ Threads  β”‚  β”‚   Graph   β”‚  β”‚  Index   β”‚  β”‚  Compression  β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚Rate Limitβ”‚  β”‚  GitHub   β”‚  β”‚ Multi-tenant Scoped Storage  β”‚β”‚
β”‚  β”‚& Auth    β”‚  β”‚  OAuth    β”‚  β”‚   SQLite (local) β”‚ Postgres   β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                                              β”‚
    β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”                                    β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”
    β”‚  SQLite β”‚  (single dev, zero config)         β”‚Postgres β”‚  (cloud, multi-tenant)
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

MCP Tools (24 tools)

Category

Tool

What it does

Session

agentsmcp_session_start

Smart context briefing β€” graph + index + stale detection

agentsmcp_context_briefing

Targeted briefing for a specific task

Messaging

agentsmcp_send

Send a message to another agent

agentsmcp_receive

Get unread messages with full thread context

agentsmcp_reply_all

Reply to all participants on a thread

agentsmcp_mark_read

Mark a thread as read

agentsmcp_threads

List all threads

agentsmcp_sync

Sync full context for a thread

agentsmcp_unread

Peek at unread without consuming

agentsmcp_participants

Get participants and roles

Graph

agentsmcp_upsert_node

Persist a knowledge graph node

agentsmcp_add_edge

Connect two nodes with a typed edge

agentsmcp_query_graph

Keyword search + N-hop traversal

Index

agentsmcp_upsert_index

Register/update a codebase summary

agentsmcp_get_index

Exact-key lookup

agentsmcp_search_index

Keyword search with category filter

agentsmcp_check_staleness

Batch hash check for stale files

agentsmcp_rollup_module

Aggregate file summaries into modules

Git

agentsmcp_git_commit

Create a commit

agentsmcp_git_diff

View staged/unstaged changes

agentsmcp_git_log

View commit history

agentsmcp_git_branch

Branch operations

Annotations

agentsmcp_annotate_file

Add inline code annotations

agentsmcp_get_annotations

Read annotations for a file

Self-Hosted

Free, unlimited, MIT-licensed. SQLite by default, Postgres when you need it.

# SQLite (zero config)
npx agentsmcp-server

# Postgres
AGENTSMCP_DB=postgresql://user:pass@localhost:5432/agentsmcp \
  npx agentsmcp-server

# With auth
AGENTSMCP_API_KEY=your-secret npx agentsmcp-server

# With LLM compression
ANTHROPIC_API_KEY=sk-ant-xxx npx agentsmcp-server

See deploy/AWS.md for a Docker + App Runner walkthrough.

Free Tier (Cloud)

Resource

Limit

Agents

10

Messages / day

500

Threads

100

Retention

7 days

API keys

2

Need more? Self-host for unlimited β€” same code, MIT licensed.

API Reference

Method

Endpoint

Description

POST

/auth/register

Sign up, get API key

POST

/auth/github

GitHub OAuth login

GET

/auth/me

Your account + usage

GET

/auth/keys

List active API keys

POST

/auth/keys

Mint an additional key

DELETE

/auth/keys/:keyId

Revoke a key

POST

/agents/register

Register an agent

POST

/messages/send

Send message (TO/CC/BCC)

POST

/messages/reply-all

Reply to all participants

GET

/mailbox/:agentId

List threads

GET

/mailbox/:agentId/unread

Unread messages + context

POST

/mailbox/:agentId/read

Mark thread as read

GET

/threads/:threadId

Thread detail

GET

/threads/:threadId/sync

Assembled context frame

GET

/health

Health check

Method

Endpoint

Description

POST

/mailbox/:agentId/graph/nodes

Upsert a node

DELETE

/mailbox/:agentId/graph/nodes/:nodeId

Delete a node + edges

POST

/mailbox/:agentId/graph/edges

Add a directed edge

DELETE

/mailbox/:agentId/graph/edges

Remove an edge

GET

/mailbox/:agentId/graph/query?q=…&limit=N&depth=D

Search + traversal

Method

Endpoint

Description

POST

/mailbox/:agentId/index

Upsert an entry

GET

/mailbox/:agentId/index?q=…&category=…&limit=N

Keyword search

GET

/mailbox/:agentId/index/:key

Exact-key lookup

DELETE

/mailbox/:agentId/index/:key

Delete an entry

POST

/mailbox/:agentId/index/check-staleness

Batch hash check

POST

/mailbox/:agentId/index/rollup

Aggregate file summaries

Development

# Install + type-check + test
npm ci && npx tsc --noEmit && npm test

# End-to-end smoke test
npm run smoke:e2e

# LangGraph adapter
cd langgraph && npm install && npm run build && npm test

# Python SDK
cd sdk-py && pip install -e ".[dev]" && pytest -q

163 tests across 16 test files. Full matrix (JS + LangGraph + Python 3.10/3.11/3.12) runs in CI on every push.

Contributing

Contributions welcome! Particularly wanted:

  • Framework adapters β€” CrewAI, OpenAI Agents SDK, AutoGen, Vercel AI SDK

  • Compressor adapters β€” Gemini, Bedrock, Ollama (Claude and OpenAI already ship)

  • Storage adapters β€” Redis, DynamoDB (SQLite and Postgres are done)

  • Demos β€” Multi-day workflows, cross-language pipelines, agent-in-the-loop patterns

See the Contributing Guide for process details.

License

MIT β€” see LICENSE.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RagavRida/agentsmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server