Central Intelligence
Central Intelligence
代理会遗忘。CI 会记住。
AI 代理的持久化记忆。在会话间存储、检索和共享信息。适用于 Claude Code、Cursor、LangChain、CrewAI 以及任何支持 MCP 的代理。
CI 绝不会重写你的记忆。 事实会被提取用于搜索,但你的内容始终以原样返回。没有垃圾记忆,没有幻觉重写,没有数据丢失。
快速入门 (30 秒)
# One command — gets API key + auto-configures your AI tools
npx central-intelligence-local signup
# Done. Your agent now has persistent memory.
# Restart Claude Code / Cursor / Windsurf to activate.或者在本地运行,无需云端:
npm i -g central-intelligence-local && ci dashboard
# Installs and opens the dashboard at localhost:3141Related MCP server: mcp-memory
何时使用 Central Intelligence
启发式建议: 如果你会把它写在给未来的自己的笔记里,那就把它存储在 Central Intelligence 中。
场景 | 操作 |
开始新会话,需要之前的上下文 |
|
发现了重要信息(架构、偏好、修复方案) |
|
多个代理在同一个项目上工作 | 使用用户/组织作用域进行 |
你在每个会话中重复学习相同的内容 | 存储一次 |
将任务移交给另一个代理或会话 |
|
用户反复告诉你相同的偏好 |
|
不要存储: 密钥、密码、API 密钥、个人身份信息 (PII)、大型二进制文件或临时草稿数据。
问题所在
每个 AI 代理会话都从零开始。你的代理学习你的偏好、理解你的代码库、弄清你的架构——然后会话结束,它就忘记了一切。下一次会话?同样的问题。同样的错误。同样从零开始构建上下文。
Central Intelligence 解决了这个问题。
功能介绍
五个 MCP 工具为你的代理提供长期记忆:
工具 | 描述 | 示例 |
| 存储信息以备后用 | "用户偏好 TypeScript 并部署到 Fly.io" |
| 对过往记忆进行语义搜索 | "用户有什么偏好?" |
| 为当前任务自动加载相关记忆 | "正在进行身份验证系统重构" |
| 删除过时或错误的记忆 |
|
| 使记忆可供其他代理使用 | 作用域:"agent" → "org" |
基准测试
LifeBench (2026) — 长期多源记忆
CI 在 LifeBench 上得分 52.2%,这是目前已发布的最难的记忆基准测试(涵盖 10 个用户的 2,003 个问题,包含 5.1 万个真实世界事件,包括消息、日历、健康记录、笔记和通话)。
总体 | 信息提取 | 多跳推理 | 时间维度 | 非陈述性记忆 |
52.2% | 47.2% | 52.9% | 46.4% | 64.1% |
回答模型:gpt-5.4-mini。评判模型:gpt-4.1-mini。评估工具:lifebench-eval。
LongMemEval (ICLR 2025) — 对话记忆
CI 在 LongMemEval 上得分 75.0%,测试了跨越 500 个问题的对话记忆,包括单会话检索、多会话推理、时间推理、知识更新和偏好跟踪。
总体 | 单会话 | 多会话 | 时间维度 | 偏好 |
75.0% | 91.9% | 66.2% | 69.9% | 76.7% |
回答模型:gpt-5.4-mini。评判模型:gpt-4o。评估工具:lifebench-eval。
代理记忆基准测试 (AMB) — 基础设施测试
使用开源的 Agent Memory Benchmark 测试 CI 与其他提供商的对比:
npx agent-memory-benchmark --provider central-intelligence --api-key $CI_API_KEY注意: AMB 由 Central Intelligence 的作者维护。你可以自行运行并验证结果。欢迎提交包含新提供商适配器的 PR。
路线图
高级检索(事实提取、实体图、多跳推理、时间推断、可解释性追踪)已在代码库中完成原型设计,即将引入企业版。架构详情:v1.0.0 原型发布。商业可用性:定价。
跨工具记忆
CI Local 读取来自 5 个 AI 编码平台 的配置文件,并使其与你存储的记忆一起可被搜索:
平台 | 配置文件 | 解析方式 |
Claude Code |
| 基于章节 (## 标题) |
Cursor |
| 基于段落 |
Windsurf |
| 基于段落 |
Codex |
| 基于章节 |
GitHub Copilot |
| 基于章节 |
通过 Claude Code 存储的记忆在使用 Cursor 时可以被发现,反之亦然。你的 AI 记忆在任何地方都有效,而不仅仅是在一个工具中。
检索响应现在包含 source(记忆来源的工具)、freshness_score(新鲜度)和 duplicate_group(跨工具的近重复检测)。
工作原理
Agent (Claude, Cursor, Windsurf, Copilot, Codex)
↓ MCP protocol
Central Intelligence MCP Server (local, thin client)
↓
SQLite + vector embeddings + config file parsing
↓
Hybrid search: vector + FTS5 + fuzzy + temporal decay
↓
Central Intelligence API (hosted)
↓
PostgreSQL + pgvector + fact decomposition + entity graph
↓
4-way retrieval: vector + BM25 + graph traversal + temporal
↓
Local ONNX cross-encoder reranker (zero API cost)每个记忆都被分解为包含实体、时间信息和因果关系的结构化事实。检索运行双路径架构:基于事实的 4 路搜索(向量、BM25、图遍历、时间)和基于记忆的 2 路搜索并行运行。查询类型分类器将每个问题路由到最佳检索路径,结果通过倒数排名融合 (Reciprocal Rank Fusion) 进行融合,并使用本地交叉编码器模型进行重排序。来自所有支持平台的配置文件都会被解析、嵌入并缓存在本地。
记忆作用域
作用域 | 可见对象 | 用例 |
| 仅限存储该记忆的代理 | 个人上下文,会话连续性 |
| 服务于同一用户的所有代理 | 用户偏好,跨工具上下文 |
| 组织内的所有代理 | 共享知识,团队决策 |
MCP 服务器设置
Claude Code
添加到 ~/.claude/settings.json 中的 mcpServers:
{
"central-intelligence": {
"command": "npx",
"args": ["-y", "central-intelligence-mcp"],
"env": {
"CI_API_KEY": "your-api-key"
}
}
}Cursor
添加到 ~/.cursor/mcp.json:
{
"mcpServers": {
"central-intelligence": {
"command": "npx",
"args": ["-y", "central-intelligence-mcp"],
"env": {
"CI_API_KEY": "your-api-key"
}
}
}
}任何兼容 MCP 的客户端
MCP 服务器已作为 central-intelligence-mcp 发布在 npm 上。将你的 MCP 客户端指向它,并设置 CI_API_KEY 环境变量。
CLI 使用
# Install globally
npm install -g central-intelligence-local
# Get API key + auto-configure AI tools
ci signup
# Open local memory dashboard
ci dashboard
# Sync local memories to cloud
ci sync
# Audit memory health (duplicates, staleness, health score)
ci audit
# Import from ChatGPT data export
ci chatgpt-import conversations.json
# Export/import memory bundles
ci export -o memories.json
ci import memories.jsonREST API
基础 URL:https://central-intelligence-api.fly.dev
所有端点都需要 Authorization: Bearer <api-key> 请求头。
创建 API 密钥
curl -X POST https://central-intelligence-api.fly.dev/keys \
-H "Content-Type: application/json" \
-d '{"name": "my-key"}'POST /memories/remember
{
"agent_id": "my-agent",
"content": "User prefers TypeScript over Python",
"tags": ["preference", "language"],
"scope": "agent"
}POST /memories/recall
{
"agent_id": "my-agent",
"query": "what programming language does the user prefer?",
"limit": 5
}响应:
{
"memories": [
{
"id": "uuid",
"content": "User prefers TypeScript over Python",
"relevance_score": 0.434,
"tags": ["preference", "language"],
"scope": "agent",
"created_at": "2026-03-22T21:42:34.590Z"
}
]
}POST /memories/context
{
"agent_id": "my-agent",
"current_context": "Setting up a new web project for the user",
"max_memories": 5
}DELETE /memories/:id
POST /memories/:id/share
{
"target_scope": "org"
}GET /usage
返回已认证 API 密钥的记忆计数、使用事件和活跃代理。
自托管
# Clone and install
git clone https://github.com/AlekseiMarchenko/central-intelligence.git
cd central-intelligence
npm install
# Set up PostgreSQL
createdb central_intelligence
psql -d central_intelligence -f packages/api/src/db/schema.sql
# Configure
cp .env.example .env
# Edit .env: set DATABASE_URL and OPENAI_API_KEY
# Run
npm run dev:api部署到 Fly.io
fly apps create my-ci-api
fly postgres create --name my-ci-db
fly postgres attach my-ci-db
fly secrets set OPENAI_API_KEY=sk-...
fly deploy然后将 MCP 服务器指向你的实例:
{
"env": {
"CI_API_KEY": "your-key",
"CI_API_URL": "https://your-app.fly.dev"
}
}架构
central-intelligence/
├── packages/
│ ├── api/ # Backend API (Hono + PostgreSQL + pgvector)
│ │ ├── src/
│ │ │ ├── db/ # Schema, migrations (facts, entities, pgvector, hybrid)
│ │ │ ├── middleware/ # Auth, rate limiting, billing, x402 payments
│ │ │ ├── routes/ # REST endpoints, dashboard, docs, demo
│ │ │ └── services/ # Core logic:
│ │ │ ├── memories.ts # Store + v2 hybrid recall (pgvector + BM25 + RRF + reranker)
│ │ │ ├── rerank.ts # bge-reranker-v2-m3 (local ONNX), Cohere API fallback
│ │ │ ├── embeddings.ts # OpenAI text-embedding-3-small
│ │ │ ├── encryption.ts # AES-256-GCM at rest
│ │ │ ├── date-parser.ts # Temporal extraction from memory content
│ │ │ ├── auth.ts # API key validation
│ │ │ ├── fact-extraction.ts # [Enterprise] Structured fact decomposition via GPT-4o-mini
│ │ │ ├── entity-resolution.ts # [Enterprise] Trigram + co-occurrence entity merging
│ │ │ ├── observations.ts # [Enterprise] Auto-synthesized higher-level facts
│ │ │ └── query-decompose.ts # [Enterprise] Query expansion via GPT-4o-mini
│ │ └── tests/ # Vitest
│ ├── mcp-server/ # MCP server (npm: central-intelligence-mcp)
│ ├── cli/ # Cloud CLI (npm: central-intelligence-cli, legacy)
│ ├── local/ # Local memory with cross-tool config parsing
│ ├── node-sdk/ # Node.js/TypeScript SDK (npm: central-intelligence-sdk)
│ ├── python-sdk/ # Python SDK (PyPI: central-intelligence)
│ └── openclaw-skill/ # OpenClaw skill file
├── .github/workflows/ # CI (typecheck + test) + Deploy (Fly.io)
├── benchmark/ # LifeBench VM (self-contained Fly machine)
├── db/ # Custom Postgres image with pgvector baked in
├── landing/ # Landing page
├── Dockerfile # API container (non-root, ONNX model pre-cached)
├── fly.toml # Fly.io config (iad region, health checks)
└── README.md定价
层级 | 价格 | 记忆容量 | 代理数量 |
免费版 | $0 | 500 | 无限制 |
专业版 | $29/月 | 50,000 | 无限制 |
团队版 | $99/月 | 500,000 | 无限制 |
查看 centralintelligence.online/#pricing 获取最新信息。
贡献
欢迎贡献。请提交 issue 或 PR。
许可证
Available Tools
5 toolscontextA
Load relevant memories for the current task, designed for session bootstrapping. This is a read-only operation identical to recall internally, but optimized for broad context loading rather than specific questions. Call context at the start of every conversation, passing a description of what you are working on, to retrieve past decisions, preferences, and project knowledge. Also call when switching topics mid-session. Use context (not recall) for "what do I need to know about X?" and recall for "what specifically was decided about Y?". Returns up to max_memories results ranked by relevance. Costs 1 operation. Returns empty list (not error) if no relevant memories exist.
| Name | Required | Description | Default |
|---|---|---|---|
| current_context | Yes | Description of what you are currently working on. Be specific: 'refactoring the authentication middleware in the Express API' retrieves better context than 'working on auth'. This is the search query for memory retrieval. | |
| agent_id | No | Agent instance identifier. Must match the agent_id used when storing memories. Default: 'default'. | default |
| user_id | No | User identifier. When provided, also retrieves user-scoped memories shared by other agents. | |
| max_memories | No | Maximum memories to return, 1-20. Default 5. Use 10-15 at session start for broad context loading, 3-5 for topic switches. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully covers behavior: read-only operation, costs 1 operation, returns up to max_memories, empty list if no relevant memories, and internal similarity to recall. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with key purpose and usage, then provides additional details. Each sentence adds value, but it could be slightly more concise. Still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description covers return behavior (up to max_memories, empty list not error). For a read-only retrieval tool with good parameter guidance, this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value beyond schema: examples for specific context query, usage suggestions for max_memories (e.g., 10-15 at start).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it loads relevant memories for session bootstrapping, distinguishes from recall by noting it's optimized for broad context vs specific questions. Verb 'load' plus resource 'memories' is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call at start of every conversation and when switching topics. Contrasts with recall for specific queries, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgetA
Permanently delete a memory by ID. This is a destructive, irreversible operation that soft-deletes the memory record (it will no longer appear in recall or context results). Use forget before storing a corrected version of a fact, to prevent contradictory memories from coexisting. Do not use for bulk cleanup (delete one at a time). Do not use if you are unsure whether the memory is outdated, as deletion cannot be undone. Requires the exact memory ID (UUID), which is returned by recall and context. Costs 1 operation. Returns confirmation on success, or an error if the ID does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | UUID of the memory to delete. Get this from recall or context results (the 'id' field). Must be an exact match. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description fully discloses the destructive, irreversible nature of the operation, the soft-delete behavior, the exact ID requirement, operation cost, and return behavior (confirmation or error).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough and every sentence adds value, but it is relatively long. It could be slightly more compact without losing information, but it remains clear and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema and annotations, the description covers all critical aspects: purpose, parameters, behavior, usage constraints, and return values. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes memory_id, but the description adds valuable context: the source of the ID (recall or context results), its format (UUID), and the requirement for exact match.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'permanently delete a memory by ID'. It also contrasts with sibling tools like 'context', 'recall', 'remember', and 'share' by being the dedicated deletion tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance on when to use ('before storing a corrected version of a fact'), when not to use ('bulk cleanup', 'if unsure'), and implied alternatives (e.g., 'remember' for storing, 'recall' for retrieval).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recallA
Search persistent memory by meaning, returning the most relevant past memories ranked by semantic similarity. This is a read-only operation that runs a 4-way hybrid search (vector similarity, BM25 full-text, entity graph traversal, temporal proximity) and reranks results with a cross-encoder model. Use recall (not context) when you need to answer a specific question: "what language does the user prefer?", "how was auth implemented?", "what was decided about the database?". Do not use for broad session bootstrapping (use context instead). Returns up to limit memories with relevance scores (0-1). Costs 1 operation per call. If no memories match, returns an empty list, not an error.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language search query. Semantic, not keyword-based: 'what programming language does the user prefer?' works better than 'language preference'. More specific queries return more relevant results. | |
| agent_id | No | Agent instance identifier. Must match the agent_id used when storing memories. Default: 'default'. | default |
| user_id | No | User identifier. When provided with scope 'user', also searches user-scoped memories shared by other agents. | |
| scope | No | Search scope. 'agent' (default): only this agent's memories. 'user': also includes memories shared to user scope. 'org': includes org-wide memories. Broader scope returns more results but may include less relevant memories. | |
| tags | No | Filter results to only memories with at least one matching tag. Omit to search all memories regardless of tags. | |
| limit | No | Maximum memories to return, 1-20. Default 5. Use higher values (10-20) for broad searches, lower (1-3) for targeted lookups. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description thoroughly discloses behavior: it's a read-only operation, uses a 4-way hybrid search, reranks with cross-encoder, costs 1 operation per call, returns empty list on no match, and returns relevance scores between 0-1. No contradictions with annotations (none provided).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise. It starts with purpose, then algorithm, usage guidance, examples, return format, cost, and error handling – all in logical order. Every sentence contributes meaning; no filler. Front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains return format (memories with relevance scores 0-1, up to limit, empty list on no match). It covers behavioral context (cost, algorithm). However, it does not detail the structure of each memory (e.g., fields like text, timestamp). A minor gap, but overall complete for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds little beyond what the schema already provides for parameters. It mentions 'limit' in context of results, but the schema already describes each parameter similarly. No net gain in parameter understanding from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search persistent memory by meaning, returning the most relevant past memories ranked by semantic similarity.' It identifies the specific verb (search) and resource (memory), and distinguishes it from siblings (context) by explaining when to use recall vs context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use recall (not context) when you need to answer a specific question... Do not use for broad session bootstrapping (use context instead).' It also gives concrete query examples like 'what language does the user prefer?' and explains when to use higher or lower limit values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rememberA
Store a fact, decision, or preference in persistent memory so it survives across sessions. This is a write operation that creates a new memory record, encrypts the content at rest, and generates a vector embedding for semantic search. Use remember (not recall) when you learn something worth keeping: architecture decisions, user preferences, bug root causes, project conventions, or task outcomes. Do not use for ephemeral scratch data, secrets, or large files. Returns the memory ID and timestamp. Costs 1 operation against the API key's monthly quota (500 free, then paid). Use forget to delete outdated memories before storing corrections, to prevent contradictions.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The information to store. Write as a complete, self-contained statement (not fragments). Include context: 'User prefers TypeScript for backend services' not just 'TypeScript'. Max 10,000 characters. | |
| agent_id | No | Unique identifier for this agent instance. Use a consistent value across sessions so memories are retrievable. Default: 'default'. | default |
| user_id | No | User identifier, required when scope is 'user'. Links the memory to a specific user across all their agents. | |
| tags | No | Categorical labels for filtering during recall. Use lowercase, consistent terms: 'preference', 'decision', 'architecture', 'bug-fix'. Max 20 tags, each max 100 chars. | |
| scope | No | Visibility: 'agent' (only this agent sees it, default), 'user' (all agents for this user, requires user_id), 'org' (all agents in the organization, requires org membership). | agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Details write operation, encryption at rest, vector embedding generation, return values (ID and timestamp), and API quota cost. No annotations present, so description fully covers behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Six succinct sentences, each adding distinct value. Front-loaded with purpose, followed by usage, behavior, parameters, and cost. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with 5 parameters and no output schema, description covers return value, quota, security features, and optimal usage patterns. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3, but description adds valuable guidance: content format (self-contained with context), tag conventions (lowercase, consistent terms), scope visibility, and agent_id consistency for session persistence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it stores facts/decisions/preferences in persistent memory as a write operation. Distinguishes from recall and forget by name, making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use (learned lasting info) vs not (ephemeral, secrets, large files). Names sibling tools recall and forget as alternatives for reading and deleting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.1- Changed
context4 fields changed- changed
Input schema / properties / agent_id / descriptionPrevious value: -"Identifier for this agent instance"New value: +"Agent instance identifier. Must match the agent_id used when storing memories. Default: 'default'." - changed
Input schema / properties / current_context / descriptionPrevious value: -"A summary of what you're currently working on or discussing. The more specific, the better the recalled memories will be."New value: +"Description of what you are currently working on. Be specific: 'refactoring the authentication middleware in the Express API' retrieves better context than 'working on auth'. This is the search query for memory retrieval." - changed
Input schema / properties / max_memories / descriptionPrevious value: -"Maximum number of memories to return"New value: +"Maximum memories to return, 1-20. Default 5. Use 10-15 at session start for broad context loading, 3-5 for topic switches." - changed
Input schema / properties / user_id / descriptionPrevious value: -"User identifier to include user-scoped memories"New value: +"User identifier. When provided, also retrieves user-scoped memories shared by other agents."
- Changed
forget1 field changed- changed
Input schema / properties / memory_id / descriptionPrevious value: -"The ID of the memory to delete"New value: +"UUID of the memory to delete. Get this from recall or context results (the 'id' field). Must be an exact match."
- Changed
recall6 fields changed- changed
Input schema / properties / agent_id / descriptionPrevious value: -"Identifier for this agent instance"New value: +"Agent instance identifier. Must match the agent_id used when storing memories. Default: 'default'." - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum number of memories to return"New value: +"Maximum memories to return, 1-20. Default 5. Use higher values (10-20) for broad searches, lower (1-3) for targeted lookups." - changed
Input schema / properties / query / descriptionPrevious value: -"What to search for. Use natural language — the search is semantic, not keyword-based."New value: +"Natural language search query. Semantic, not keyword-based: 'what programming language does the user prefer?' works better than 'language preference'. More specific queries return more relevant results." - changed
Input schema / properties / scope / descriptionPrevious value: -"Search scope: agent (only this agent's memories), user (include user-scoped), org (include org-scoped)"New value: +"Search scope. 'agent' (default): only this agent's memories. 'user': also includes memories shared to user scope. 'org': includes org-wide memories. Broader scope returns more results but may include less relevant memories." - changed
Input schema / properties / tags / descriptionPrevious value: -"Filter by tags"New value: +"Filter results to only memories with at least one matching tag. Omit to search all memories regardless of tags." - changed
Input schema / properties / user_id / descriptionPrevious value: -"User identifier to include user-scoped memories"New value: +"User identifier. When provided with scope 'user', also searches user-scoped memories shared by other agents."
- Changed
remember5 fields changed- changed
Input schema / properties / agent_id / descriptionPrevious value: -"Identifier for this agent instance"New value: +"Unique identifier for this agent instance. Use a consistent value across sessions so memories are retrievable. Default: 'default'." - changed
Input schema / properties / content / descriptionPrevious value: -"The information to remember. Be specific and include context so it's useful when recalled later."New value: +"The information to store. Write as a complete, self-contained statement (not fragments). Include context: 'User prefers TypeScript for backend services' not just 'TypeScript'. Max 10,000 characters." - changed
Input schema / properties / scope / descriptionPrevious value: -"Visibility scope: agent (only this agent), user (all agents for this user), org (all agents in the organization)"New value: +"Visibility: 'agent' (only this agent sees it, default), 'user' (all agents for this user, requires user_id), 'org' (all agents in the organization, requires org membership)." - changed
Input schema / properties / tags / descriptionPrevious value: -"Tags for categorizing the memory (e.g., 'preference', 'decision', 'fact')"New value: +"Categorical labels for filtering during recall. Use lowercase, consistent terms: 'preference', 'decision', 'architecture', 'bug-fix'. Max 20 tags, each max 100 chars." - changed
Input schema / properties / user_id / descriptionPrevious value: -"User identifier for user-scoped memories"New value: +"User identifier, required when scope is 'user'. Links the memory to a specific user across all their agents."
- Changed
share3 fields changed- changed
Input schema / properties / memory_id / descriptionPrevious value: -"The ID of the memory to share"New value: +"UUID of the memory to share. Get this from recall, context, or remember results." - changed
Input schema / properties / target_scope / descriptionPrevious value: -"Who to share with: user (all agents for this user) or org (all agents in the organization)"New value: +"New visibility level. 'user': all agents serving this user can recall it. 'org': all agents in the organization can recall it. Cannot go back to 'agent' once shared." - changed
Input schema / properties / user_id / descriptionPrevious value: -"Required when sharing to user scope"New value: +"Required when target_scope is 'user'. Identifies which user's agents should see this memory."
5 tool updates
v0.1.0- First observed
context - First observed
forget - First observed
recall - First observed
remember - First observed
share
TDQS
While the descriptive text explicitly distinguishes 'context' (broad bootstrap) from 'recall' (specific query), and 'recall' (read) from 'remember' (write), the names 'recall' and 'remember' are near-synonyms in English which could cause initial agent confusion. The boundaries are clear once descriptions are read, but the naming similarity creates slight friction.
Four tools use imperative verbs (forget, recall, remember, share) while 'context' uses a noun, breaking the pattern. Additionally, 'recall' and 'remember' are semantically similar (both relate to retrieving memories in common parlance), whereas the server uses them for opposite operations (read vs write). A consistent verb_noun scheme (e.g., load_context, search_memories, create_memory) would be clearer.
Five tools is ideal for this domain: two read modes (broad context vs specific search), one write, one delete, and one permission/scope modifier. Each tool earns its place without redundancy, covering the full memory lifecycle without bloat.
Covers CRUD operations well (create via remember, read via context/recall, delete via forget), with update handled intentionally via delete-then-recreate workflow. The 'share' tool adds necessary permission control. Minor gap: no bulk forget operation for cleanup, though descriptions explicitly warn against bulk use.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Persistent personal memory for AI assistants — save, search, and recall across every MCP client.
Persistent memory for AI agents — log and recall conversation context over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceGives AI agents persistent memory with semantic search, automatic extraction, and memory decay, accessible via MCP protocol.13MIT
- AlicenseAqualityDmaintenanceProvides persistent memory with semantic search for MCP-based AI agents, enabling them to store and recall information across sessions using vector embeddings.41MIT
- AlicenseNot gradedqualityBmaintenanceProvides long-term memory for AI agents via MCP tools to store, recall, and delete memories, with per-user scoping and usage limits.AGPL 3.0
- AlicenseCqualityCmaintenancePersistent semantic memory for MCP-compatible agents, enabling them to remember and recall text, audio, and documents across sessions.10211MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/AlekseiMarchenko/central-intelligence'
If you have feedback or need assistance with the MCP directory API, please join our Discord server