Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/doobidoo/mcp-memory-service/http-genericgit clone --depth 1 https://github.com/doobidoo/mcp-memory-serviceWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.01577 |
| Opus 5 | $0.00000 | $0.00788 |
| Sonnet 5 | $0.00000 | $0.00315 |
| Haiku 4.5 | $0.00000 | $0.00158 |
Grade A, and why
http-generic scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl http://localhost:8000/api/memories How it starts
The opening of the file, as written. The whole thing — 214 lines — stays where its author put it; the contents beside it link to each section on GitHub.
HTTP Generic Integration Guide
Connect any agent framework or HTTP client to mcp-memory-service using the REST API.
Server Setup
pip install mcp-memory-service
MCP_ALLOW_ANONYMOUS_ACCESS=true memory server --http
# Running at http://localhost:8000
With API key authentication:
MCP_API_KEY=your-secret-key memory server --http
# Include header: Authorization: Bearer your-secret-key
All REST Endpoints
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/memories |
Store a new memory |
GET |
/api/memories |
List memories (paginated) |
GET |
/api/memories/{hash} |
Get memory by hash |
PATCH |
/api/memories/{hash} |
Update memory tags/type/metadata |
DELETE |
/api/memories/{hash} |
Delete a memory |
POST |
/api/memories/search |
Semantic + keyword search |
GET |
/api/memories/tags |
List all tags with counts |
GET |
/api/health |
Health check |
GET |
/api/stats |
Storage statistics |
POST |
/api/consolidation/run |
Trigger memory consolidation |
GET |
/api/consolidation/status |
Consolidation status |
GET |
/api/graph/associations/{hash} |
Get memory associations |
POST |
/api/graph/associations |
Store association between memories |
GET |
/api/analytics/relationship-types |
Graph relationship type stats |
GET |
/sse/events |
Server-Sent Events stream |
Authentication Patterns
# Anonymous (MCP_ALLOW_ANONYMOUS_ACCESS=true)
curl http://localhost:8000/api/memories
# API key
curl -H "Authorization: Bearer $MCP_API_KEY" http://localhost:8000/api/memories
# OAuth (see docs/oauth/)
curl -H "Authorization: Bearer $ACCESS_TOKEN" http://localhost:8000/api/memories
Python (httpx) Examples
Store a memory
import httpx
BASE_URL = "http://localhost:8000"
async def store_memory(content: str, tags: list[str], agent_id: str | None = None) -> dict:
headers = {"Content-Type": "application/json"}
if agent_id:
headers["X-Agent-ID"] = agent_id
async with httpx.AsyncClient() as client:
response = await client.post(
f"{BASE_URL}/api/memories",
json={"content": content, "tags": tags},
headers=headers,
)
response.raise_for_status()
return response.json()
# Usage
result = await store_memory(
content="API rate limit is 100 req/min for the Acme service",
tags=["api", "rate-limit", "acme"],
agent_id="researcher",
)
print(result["memory"]["content_hash"])
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 214 lines · 0 tokens per session scan A f7f41f7cb57e
http-generic is an agent published in the GitHub repository doobidoo/mcp-memory-service (1,919 stars, last pushed 5d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 1,577 tokens. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
codebase-explorer
Deep codebase exploration using SocratiCode. Combines semantic search, dependency graphs, and context artifacts to answer questions about code structure and behaviour. Use when delegating complex codebase understanding tasks that require tracing through multiple files and dependencies. Context: User wants to…
lilbee-worker
Runs long lilbee operations (add / sync / crawl / modelpull) and reports back. Does not answer user questions.
bench-evaluator
Adversarial Loop 3 evaluator for the vertical bench. Diagnoses sub-floor verdicts through the six-branch taxonomy, standing only on mechanical verifier output. WIN confirmation lives in bench-win-confirm.
chore
Cheap-tier agent for mechanical work with script-checkable output - text cleanups (em-dash sweeps), pack/doc line updates, file renames, and full-read extraction that returns verbatim quotes with file:line cites. NOT for judgment work - adversary probes, hand-audits, gold curation, scenario design, and anything…
codealive-context-explorer
Iterative code exploration across indexed repositories using CodeAlive semantic search, grep, artifact fetch, and relationship inspection. Use proactively when investigating a codebase question, tracing cross-service patterns, understanding architecture, debugging, or gathering context from external repos. Almost…
Demonstrate
Agent for demonstrating VS Code features.