Skip to main content
Glama

Central Intelligence

에이전트는 잊어버리지만, CI는 기억합니다.

AI 에이전트를 위한 영구 메모리입니다. 세션 간에 정보를 저장, 회상 및 공유하세요. Claude Code, Cursor, LangChain, CrewAI 및 MCP를 지원하는 모든 에이전트와 함께 작동합니다.

CI는 사용자의 기억을 절대 다시 쓰지 않습니다. 검색을 위해 사실이 추출되지만, 콘텐츠는 항상 원문 그대로 반환됩니다. 쓸모없는 기억, 환각에 의한 재작성, 데이터 손실은 없습니다.

npm License: Apache 2.0

Central Intelligence MCP server

LifeBench 52.2% LongMemEval 75.0% AMB 90/100

빠른 시작 (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:3141

Related MCP server: mcp-memory

Central Intelligence 사용 시기

휴리스틱: 미래의 자신에게 남기는 메모에 적을 내용이라면, Central Intelligence에 저장하세요.

시나리오

수행 작업

새로운 세션 시작, 이전 컨텍스트가 필요할 때

recall 또는 context

중요한 것을 발견했을 때 (아키텍처, 환경 설정, 수정 사항)

remember

여러 에이전트가 같은 프로젝트에서 작업할 때

사용자/조직 범위로 share

매 세션마다 같은 내용을 다시 학습할 때

한 번 remember, 영원히 recall

다른 에이전트나 세션으로 작업을 넘길 때

핵심 결정 사항을 remember, 다음 에이전트가 context 호출

사용자가 같은 환경 설정을 반복해서 말할 때

remember로 저장하고, 다음번에 recall로 확인

저장하지 마세요: 비밀번호, API 키, 개인정보(PII), 대용량 바이너리 파일 또는 일시적인 스크래치 데이터.

문제점

모든 AI 에이전트 세션은 0에서 시작합니다. 에이전트가 사용자의 환경 설정을 배우고, 코드베이스를 이해하고, 아키텍처를 파악해도 세션이 끝나면 모든 것을 잊어버립니다. 다음 세션은요? 같은 질문, 같은 실수, 처음부터 다시 쌓아야 하는 컨텍스트.

Central Intelligence가 이 문제를 해결합니다.

기능

5가지 MCP 도구가 에이전트에게 장기 기억을 제공합니다:

도구

설명

예시

remember

나중에 사용할 정보를 저장

"사용자는 TypeScript를 선호하고 Fly.io에 배포함"

recall

과거 기억에 대한 의미론적 검색

"사용자가 선호하는 것은 무엇인가?"

context

현재 작업을 위한 관련 기억 자동 로드

"인증 시스템 리팩토링 작업 중"

forget

오래되거나 잘못된 기억 삭제

forget("memory_abc123")

share

다른 에이전트가 기억을 사용할 수 있게 함

범위: "agent" → "org"

벤치마크

LifeBench (2026) — 장기 다중 소스 기억

CI는 가장 어려운 공개 메모리 벤치마크인 LifeBench에서 **52.2%**를 기록했습니다 (메시지, 캘린더, 건강 기록, 메모, 통화 등 10명의 사용자, 51,000개의 실제 이벤트에 걸친 2,003개의 질문).

전체

정보 추출

다중 홉

시간적

비선언적

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.

Agent Memory Benchmark (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

CLAUDE.md

섹션 기반 (## 제목)

Cursor

.cursor/rules

문단 기반

Windsurf

.windsurf/rules

문단 기반

Codex

codex.md

섹션 기반

GitHub Copilot

.github/copilot-instructions.md

섹션 기반

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으로 융합되고 로컬 크로스 인코더 모델로 재순위가 매겨집니다. 지원되는 모든 플랫폼의 설정 파일은 파싱, 임베딩 및 로컬 캐싱됩니다.

기억 범위

범위

가시성

사용 사례

agent

저장한 에이전트만

개인 컨텍스트, 세션 연속성

user

동일한 사용자를 서비스하는 모든 에이전트

사용자 환경 설정, 도구 간 컨텍스트

org

조직 내 모든 에이전트

공유 지식, 팀 결정 사항

MCP 서버 설정

Claude Code

~/.claude/settings.jsonmcpServers 아래에 추가:

{
  "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 서버는 npm에 central-intelligence-mcp로 게시되어 있습니다. CI_API_KEY 환경 변수를 설정하고 MCP 클라이언트를 연결하세요.

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.json

REST 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

가격

티어

가격

메모리

에이전트

Free

$0

500

무제한

Pro

$29/월

50,000

무제한

Team

$99/월

500,000

무제한

최신 정보는 centralintelligence.online/#pricing을 참조하세요.

기여

기여를 환영합니다. 이슈를 열거나 PR을 보내주세요.

라이선스

Apache 2.0

Available Tools

5 tools
contextA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
current_contextYesDescription 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_idNoAgent instance identifier. Must match the agent_id used when storing memories. Default: 'default'.default
user_idNoUser identifier. When provided, also retrieves user-scoped memories shared by other agents.
max_memoriesNoMaximum memories to return, 1-20. Default 5. Use 10-15 at session start for broad context loading, 3-5 for topic switches.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idYesUUID of the memory to delete. Get this from recall or context results (the 'id' field). Must be an exact match.

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesNatural 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_idNoAgent instance identifier. Must match the agent_id used when storing memories. Default: 'default'.default
user_idNoUser identifier. When provided with scope 'user', also searches user-scoped memories shared by other agents.
scopeNoSearch 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.
tagsNoFilter results to only memories with at least one matching tag. Omit to search all memories regardless of tags.
limitNoMaximum memories to return, 1-20. Default 5. Use higher values (10-20) for broad searches, lower (1-3) for targeted lookups.

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe 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_idNoUnique identifier for this agent instance. Use a consistent value across sessions so memories are retrievable. Default: 'default'.default
user_idNoUser identifier, required when scope is 'user'. Links the memory to a specific user across all their agents.
tagsNoCategorical labels for filtering during recall. Use lowercase, consistent terms: 'preference', 'decision', 'architecture', 'bug-fix'. Max 20 tags, each max 100 chars.
scopeNoVisibility: '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

A5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

shareA

Widen a memory's visibility scope so other agents can access it. This is a write operation that changes the memory's scope from agent-only to user-level or org-level. Use share when a memory contains knowledge valuable beyond the current agent: user preferences (share to user scope so all agents know), team conventions (share to org scope). Do not use to restrict scope (sharing is one-directional: agent to user to org). Requires the memory ID (from recall or remember) and the target scope. Does not duplicate the memory, only changes its visibility. Costs 1 operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idYesUUID of the memory to share. Get this from recall, context, or remember results.
target_scopeYesNew 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.
user_idNoRequired when target_scope is 'user'. Identifies which user's agents should see this memory.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description fully discloses behavioral traits: it's a write operation that changes scope, does not duplicate memory, is one-directional, and costs 1 operation. It also mentions prerequisites (memory ID from recall/remember) and scope limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise but dense, with every sentence contributing useful information. It could be slightly better structured with separators for use cases, but it remains clear and front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (3 params, no output schema, no annotations), the description covers all essential aspects: purpose, usage, behavior, parameters, side effects, and constraints. No gaps remain for an agent to understand the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds meaning by explaining where memory_id comes from, defining target_scope enum values with usage context, and clarifying when user_id is required. It adds value beyond the schema's property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Widen a memory's visibility scope so other agents can access it.' It specifies the verb (widen/share) and resource (memory), and distinguishes itself from sibling tools like recall and remember by focusing on visibility changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool (e.g., for user preferences share to user scope, for team conventions share to org scope) and when not to use it ('Do not use to restrict scope'). It also explains the directional nature (agent to user to org).

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.

  1. 5 tool updatesv0.1.1
    • Changedcontext4 fields changed
      • changedInput schema / properties / agent_id / description
        Previous value: -"Identifier for this agent instance"New value: +"Agent instance identifier. Must match the agent_id used when storing memories. Default: 'default'."
      • changedInput schema / properties / current_context / description
        Previous 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."
      • changedInput schema / properties / max_memories / description
        Previous 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."
      • changedInput schema / properties / user_id / description
        Previous value: -"User identifier to include user-scoped memories"New value: +"User identifier. When provided, also retrieves user-scoped memories shared by other agents."
    • Changedforget1 field changed
      • changedInput schema / properties / memory_id / description
        Previous 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."
    • Changedrecall6 fields changed
      • changedInput schema / properties / agent_id / description
        Previous value: -"Identifier for this agent instance"New value: +"Agent instance identifier. Must match the agent_id used when storing memories. Default: 'default'."
      • changedInput schema / properties / limit / description
        Previous 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."
      • changedInput schema / properties / query / description
        Previous 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."
      • changedInput schema / properties / scope / description
        Previous 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."
      • changedInput schema / properties / tags / description
        Previous 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."
      • changedInput schema / properties / user_id / description
        Previous 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."
    • Changedremember5 fields changed
      • changedInput schema / properties / agent_id / description
        Previous 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'."
      • changedInput schema / properties / content / description
        Previous 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."
      • changedInput schema / properties / scope / description
        Previous 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)."
      • changedInput schema / properties / tags / description
        Previous 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."
      • changedInput schema / properties / user_id / description
        Previous 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."
    • Changedshare3 fields changed
      • changedInput schema / properties / memory_id / description
        Previous value: -"The ID of the memory to share"New value: +"UUID of the memory to share. Get this from recall, context, or remember results."
      • changedInput schema / properties / target_scope / description
        Previous 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."
      • changedInput schema / properties / user_id / description
        Previous value: -"Required when sharing to user scope"New value: +"Required when target_scope is 'user'. Identifies which user's agents should see this memory."
  2. 5 tool updatesv0.1.0
    • First observedcontext
    • First observedforget
    • First observedrecall
    • First observedremember
    • First observedshare

TDQS

A4.6/5.0
Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

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/AlekseiMarchenko/central-intelligence'

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