elephantasm-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@elephantasm-mcpsearch my knowledge for best practices in error handling"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

elephantasm-mcp
MCP server for long-term agent memory. Give any AI agent persistent memory, searchable knowledge, and an evolving identity.
Website · Docs · PyPI · GitHub
Model Context Protocol server for Elephantasm Long-Term Agentic Memory. One line of config.
Installation
pip install elephantasm-mcpRelated MCP server: Selti
Quick Start
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"elephantasm": {
"command": "elephantasm-mcp",
"env": {
"ELEPHANTASM_API_KEY": "sk_live_...",
"ELEPHANTASM_ANIMA_ID": "your-anima-id"
}
}
}
}Claude Code
Add to .claude/settings.json or ~/.claude/settings.json:
{
"mcpServers": {
"elephantasm": {
"command": "elephantasm-mcp",
"env": {
"ELEPHANTASM_API_KEY": "sk_live_...",
"ELEPHANTASM_ANIMA_ID": "your-anima-id"
}
}
}
}Cursor / Windsurf
Add to your MCP config (Settings > MCP Servers):
{
"elephantasm": {
"command": "elephantasm-mcp",
"env": {
"ELEPHANTASM_API_KEY": "sk_live_...",
"ELEPHANTASM_ANIMA_ID": "your-anima-id"
}
}
}Any MCP-Compatible Agent
The server uses stdio transport — any MCP client that can spawn a subprocess works out of the box:
ELEPHANTASM_API_KEY=sk_live_... ELEPHANTASM_ANIMA_ID=... elephantasm-mcpConfiguration
Variable | Required | Default | Description |
| Yes | — | Your API key (starts with |
| No | — | Default anima ID (can be overridden per tool call) |
| No |
| API endpoint |
Get your API key and anima ID from the Elephantasm dashboard.
Tools
Five tools give your agent full read/write access to its memory:
query — Search the brain
Cross-source semantic search across memories, knowledge, and identity in one call. Returns a pre-formatted context string ready for system prompt injection.
query("what does the user prefer for error handling")Parameter | Type | Default | Description |
| string | required | Natural language search query |
| string | env default | Override default anima |
| string[] | all | Filter: |
| int | 2000 | Token budget for results |
| int | 20 | Max results |
| string[] | — | Exclude IDs for multi-turn dedup |
search_memories — Find past experiences
Semantic search across structured memories (reflections on past interactions).
Parameter | Type | Default | Description |
| string | required | Search query |
| string | env default | Override default anima |
| int | 10 | Max results |
| float | 0.7 | Min similarity (0–1) |
search_knowledge — Look up what the agent knows
Semantic search across canonicalized knowledge — facts, concepts, methods, principles, and experiences.
Parameter | Type | Default | Description |
| string | required | Search query |
| string | env default | Override default anima |
| int | 10 | Max results |
| float | 0.7 | Min similarity (0–1) |
| string | — | Filter: |
get_identity — Read the agent's personality
Retrieve the agent's behavioral fingerprint: personality type, communication style, and self-reflection.
Parameter | Type | Default | Description |
| string | env default | Override default anima |
ingest_event — Record an interaction
Capture a message, tool call, or system event. Queued for automatic memory synthesis.
Parameter | Type | Default | Description |
| string | required | Event content |
| string |
|
|
| string | env default | Override default anima |
| string | — |
|
| string | — | Who generated this event |
| string | — | Group related events |
Resources
Two resources provide context that MCP clients can embed directly into system prompts:
URI | Type | Description |
|
| Latest compiled memory pack — memories, knowledge, identity, and temporal context assembled into a single prompt-ready string |
|
| Identity profile — personality type, communication style, self-reflection |
How It Works
Elephantasm is a Long-Term Agentic Memory framework. The MCP server connects your agent to its memory backend:
Your Agent ←→ elephantasm-mcp ←→ api.elephantasm.com ←→ PostgreSQL + pgVectorWrite path: ingest_event → Events accumulate → Memory Synthesis (LLM) → Knowledge Synthesis (LLM) → Identity evolution
Read path: query / search_memories / search_knowledge → pgVector semantic search → scored, formatted results
Memory is curated automatically by two background loops:
Dreamer — decays, merges, splits, and archives memories
Meditator — clusters, merges, reclassifies, and refines knowledge
SDKs
For programmatic access without MCP, use the native SDKs:
Python:
elephantasm—pip install elephantasmTypeScript:
@elephantasm/client—npm install @elephantasm/client
Links
License
Apache 2.0
Available Tools
5 toolsget_identityB
Get an Anima's identity profile — personality type, communication style, and self-reflection data.
| Name | Required | Description | Default |
|---|---|---|---|
| anima_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It implies a read operation ('Get') but does not disclose any potential side effects, authentication needs, or rate limits. The behavior is simple, so score is adequate but not enhanced.
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 a single concise sentence that front-loads the main purpose. While it lacks detail, there is no unnecessary fluff.
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 low complexity (1 optional parameter, no output schema), the description is minimally complete. However, it fails to document the parameter or return value, leaving gaps for an agent.
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?
The sole parameter 'anima_id' is not described in the description text. Schema coverage is 0%, so the description should explain the parameter's purpose, but it only implies it identifies the Anima. No format or examples are provided.
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 verb 'Get' and the resource 'Anima's identity profile', listing specific data components (personality type, communication style, self-reflection data). It distinguishes well from sibling tools like query or search_knowledge.
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?
No guidance is given on when to use this tool vs alternatives like search_memories or query. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ingest_eventA
Record an interaction event for future memory synthesis. Use this to capture messages, tool calls, or other signals that should become part of the Anima's long-term memory.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Event content (message text, tool output, etc.) | |
| event_type | No | Event type (default: message.in) | |
| anima_id | No | ||
| role | No | Message role (user, assistant, etc.) | |
| author | No | Author identifier | |
| session_id | No | Session grouping ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It reveals the tool is a write operation for memory storage, but lacks details on idempotency, side effects, rate limits, or what happens on duplicate events.
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?
Two sentences with no wasted words. The first sentence defines purpose, the second extends usage guidance. Front-loaded and 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?
While the description covers purpose and basic usage, it lacks details about return values or behavioral guarantees. For a logging tool with 6 parameters, some additional context (e.g., what the response looks like) would improve completeness.
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?
Description adds no parameter information beyond the schema. Schema coverage is high (83%), so baseline 3 is appropriate. The description does not clarify any parameters further.
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 verb 'Record' and the resource 'interaction event', explaining its purpose for future memory synthesis. This distinguishes it from sibling tools like 'query' or 'search' which are read-oriented.
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 clear context: 'Use this to capture messages, tool calls, or other signals' for memory synthesis. It does not explicitly exclude scenarios, but the context is sufficient given sibling tools are all reads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queryA
Search an Anima's brain across memories, knowledge, and identity. Returns relevant results ranked by semantic similarity to your query. Use this for general questions about what the Anima knows or remembers.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language query to search the Anima's brain | |
| anima_id | No | Anima ID (optional, uses default if not set) | |
| sources | No | Which layers to search (default: all) | |
| max_tokens | No | Token budget for results (default: 2000) | |
| limit | No | Max number of results (default: 20) | |
| exclude_ids | No | IDs to exclude (for multi-turn dedup) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it returns results ranked by semantic similarity. No annotations provided, so description carries burden; it adequately conveys read-only behavior through the term 'search' but lacks details on limitations or edge cases.
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?
Two sentences with no wasted words. Front-loaded with purpose and output behavior immediately.
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 mentions 'returns relevant results ranked by semantic similarity,' which gives a general idea. Could be more specific about return format, but sufficient for a search tool with many parameters.
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 each parameter is already described. The tool description does not add significant meaning beyond what the schema provides, meeting baseline expectations.
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 searches across memories, knowledge, and identity, returning results ranked by semantic similarity. Distinguishes from siblings like search_knowledge and search_memories by being a general cross-layer query.
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 says 'Use this for general questions about what the Anima knows or remembers,' providing clear context. Does not explicitly mention when not to use or alternatives, but sibling tools imply specialization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_knowledgeA
Semantic search across an Anima's knowledge base. Returns canonicalized truths (facts, concepts, methods, principles, experiences) ranked by similarity. Use this for structured knowledge retrieval.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| anima_id | No | ||
| limit | No | Max results (default: 10) | |
| threshold | No | Min similarity 0-1 (default: 0.7) | |
| knowledge_type | No | Filter by knowledge type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full burden. It discloses the semantic search behavior and return type but omits details on read-only nature, pagination, error handling, or permission requirements.
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 concise with three sentences: purpose, return type, and usage guidance. It is front-loaded with the most critical information and contains no redundant text.
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 5 parameters, no output schema, and no annotations, the description covers core purpose and return type but lacks details on parameter usage (e.g., anima_id, limits) and return format, leaving 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?
The description adds context about return types (facts, concepts, etc.) which complements the 'knowledge_type' parameter, but does not elaborate on other parameters beyond the schema's 80% coverage. The added value is moderate.
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 performs 'semantic search across an Anima's knowledge base' and returns 'canonicalized truths' ranked by similarity. It distinguishes from siblings like 'search_memories' by specifying structured knowledge retrieval and listing knowledge types.
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 advises 'Use this for structured knowledge retrieval,' providing clear context for when to use the tool. However, it does not explicitly mention when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_memoriesA
Semantic search across an Anima's memories. Returns memories ranked by similarity to your query. Use this when you want to find specific past experiences or interactions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| anima_id | No | ||
| limit | No | Max results (default: 10) | |
| threshold | No | Min similarity 0-1 (default: 0.7) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions semantic search and ranking by similarity, which is helpful, but doesn't disclose whether it's read-only, required auth, rate limits, or behavior on empty results. Adequate but not comprehensive.
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?
Two sentences, front-loaded with purpose, no redundant words. Efficient and to the point.
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?
Lacks output schema or description of return format. The tool is simple, but missing details about response structure (e.g., returns memory IDs and similarity scores) reduces completeness for an agent.
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 covers 75% of parameters with descriptions. The description adds context (semantic search, ranking) but does not elaborate on anima_id or parameter specifics beyond schema. Marginal added value over schema.
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 it performs semantic search across memories and returns ranked results. It distinguishes itself from siblings like search_knowledge (for knowledge) and get_identity, making the 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 says 'Use this when you want to find specific past experiences or interactions,' providing clear usage context. Lacks explicit exclusions or alternatives, but the sibling list and resource type imply when not to use.
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.0- First observed
get_identity - First observed
ingest_event - First observed
query - First observed
search_knowledge - First observed
search_memories
TDQS
There is overlap between 'query', 'search_knowledge', and 'search_memories', as all three perform semantic search; descriptions help differentiate but ambiguity remains.
Most tools follow a verb_noun pattern (get_identity, ingest_event, search_knowledge, search_memories), but 'query' is a single verb without a noun, breaking consistency.
5 tools is well-scoped for the domain of managing an Anima's identity, events, and memory; each tool serves a clear purpose.
Core operations (get identity, record events, search) are present, but missing update/delete for identity and events, and no explicit tool to add knowledge directly.
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
An MCP memory server. One memory your agents share — across models, devices and apps.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides persistent long-term memory for AI agents via local SQLite storage with low token overhead, enabling memory storage, retrieval, and management across sessions.1MIT
- FlicenseNot gradedqualityBmaintenanceA persistent memory server for AI agents using MCP protocol, enabling semantic storage and retrieval of dialogues, documents, and agent states.-
- AlicenseAqualityBmaintenanceAn MCP server providing long-term memory for AI agents with forgetting curves, consolidation, and graph-based retrieval.1014MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that provides AI agents with persistent memory, cross-agent sharing, and context management, enabling them to remember conversations, track complex tasks, and evolve skills across tools.2MIT
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/kaminocorp/elephantasm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server