Skip to main content
Glama
kaminocorp
by kaminocorp

Elephantasm

elephantasm-mcp

MCP server for long-term agent memory. Give any AI agent persistent memory, searchable knowledge, and an evolving identity.

PyPI version Python 3.10+ License

Website · Docs · PyPI · GitHub


Model Context Protocol server for Elephantasm Long-Term Agentic Memory. One line of config.

Installation

pip install elephantasm-mcp

Related 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-mcp

Configuration

Variable

Required

Default

Description

ELEPHANTASM_API_KEY

Yes

Your API key (starts with sk_live_)

ELEPHANTASM_ANIMA_ID

No

Default anima ID (can be overridden per tool call)

ELEPHANTASM_ENDPOINT

No

https://api.elephantasm.com/api

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

query

string

required

Natural language search query

anima_id

string

env default

Override default anima

sources

string[]

all

Filter: "memories", "knowledge", "identity"

max_tokens

int

2000

Token budget for results

limit

int

20

Max results

exclude_ids

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

query

string

required

Search query

anima_id

string

env default

Override default anima

limit

int

10

Max results

threshold

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

query

string

required

Search query

anima_id

string

env default

Override default anima

limit

int

10

Max results

threshold

float

0.7

Min similarity (0–1)

knowledge_type

string

Filter: FACT, CONCEPT, METHOD, PRINCIPLE, EXPERIENCE

get_identity — Read the agent's personality

Retrieve the agent's behavioral fingerprint: personality type, communication style, and self-reflection.

Parameter

Type

Default

Description

anima_id

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

content

string

required

Event content

event_type

string

message.in

message.in, message.out, tool.call, tool.result, system

anima_id

string

env default

Override default anima

role

string

user, assistant, system, tool

author

string

Who generated this event

session_id

string

Group related events

Resources

Two resources provide context that MCP clients can embed directly into system prompts:

URI

Type

Description

anima://{id}/pack

text/plain

Latest compiled memory pack — memories, knowledge, identity, and temporal context assembled into a single prompt-ready string

anima://{id}/identity

application/json

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 + pgVector

Write 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:

License

Apache 2.0

Available Tools

5 tools
get_identityB

Get an Anima's identity profile — personality type, communication style, and self-reflection data.

ParametersJSON Schema
NameRequiredDescriptionDefault
anima_idNo

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesEvent content (message text, tool output, etc.)
event_typeNoEvent type (default: message.in)
anima_idNo
roleNoMessage role (user, assistant, etc.)
authorNoAuthor identifier
session_idNoSession grouping ID

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesNatural language query to search the Anima's brain
anima_idNoAnima ID (optional, uses default if not set)
sourcesNoWhich layers to search (default: all)
max_tokensNoToken budget for results (default: 2000)
limitNoMax number of results (default: 20)
exclude_idsNoIDs to exclude (for multi-turn dedup)

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

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

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query
anima_idNo
limitNoMax results (default: 10)
thresholdNoMin similarity 0-1 (default: 0.7)
knowledge_typeNoFilter by knowledge type

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query
anima_idNo
limitNoMax results (default: 10)
thresholdNoMin similarity 0-1 (default: 0.7)

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 5 tool updatesv0.1.0
    • First observedget_identity
    • First observedingest_event
    • First observedquery
    • First observedsearch_knowledge
    • First observedsearch_memories

TDQS

A3.6/5.0
Disambiguation3/5

There is overlap between 'query', 'search_knowledge', and 'search_memories', as all three perform semantic search; descriptions help differentiate but ambiguity remains.

Naming Consistency3/5

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.

Tool Count5/5

5 tools is well-scoped for the domain of managing an Anima's identity, events, and memory; each tool serves a clear purpose.

Completeness3/5

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

ActivityInactive
ResponsivenessNo issues

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    An 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.
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    A persistent memory server for AI agents using MCP protocol, enabling semantic storage and retrieval of dialogues, documents, and agent states.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP 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.
    2
    MIT

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/kaminocorp/elephantasm-mcp'

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