Model Context Protocol
EntityO MCP Server
Connect EntityO to Claude Desktop, Cursor, or any MCP-compatible LLM client. Your assistant gains access to everything EntityO has accumulated about you and can feed, query, and reason from your lived experience.
Requirements
- Node.js 18 or later. Check with
node --version - An EntityO account at app.entityo.com
- Claude Desktop, Cursor, Windsurf, or any MCP-compatible client
Setup
Step 1: Get your API key
Sign up at app.entityo.com. Open Settings (gear icon in the top right of the Feed screen). Click "Regenerate API key" and copy the full key immediately. It is shown once and not stored.
Your key looks like: sk-eo-... (74 characters total)
Step 2: Add EntityO to your LLM client
Claude Desktop
Find your config file at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows.
Add the EntityO block. If you already have other MCP servers, add entityo inside the existing mcpServers object.
{
"mcpServers": {
"entityo": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.entityo.com/mcp/",
"--header",
"X-API-Key:sk-eo-your-key-here"
]
}
}
}
sk-eo-your-key-here with your actual API key.
No spaces around the colon in X-API-Key:sk-eo-....
Restart Claude Desktop after saving.
On first run, mcp-remote downloads automatically via npx.
Cursor
Create or edit .cursor/mcp.json in your project root with the same config structure above.
Windsurf and others
Any MCP-compatible client that supports stdio transport with npx commands works with the same pattern. Check your client's MCP documentation for the config file location.
Available tools
Feed a meaningful experience, observation, or decision to EntityO memory. EntityO interprets the emotional valence of what you feed and updates its model of your world. Write naturally, i.e., the way you would in a diary entry.
content: the experience in natural language (required)
entity: which entity to feed, defaults to "Self"
feedback: optional; "positive", "negative", or "neutral"
Query EntityO for patterns relevant to a topic using semantic similarity. You do not need exact matches, but a phrase like "morning walk" will find patterns about clarity, routine, and Kai even without those exact words appearing. Returns patterns with strength, activation count, and uncertainty.
text: what to search for in natural language (required)
top_n: how many patterns to return, defaults to 5
Return stored inferences, i.e., conclusions EntityO has derived from the relationships between accumulated patterns. These are not retrieved facts. They are derived understandings that EntityO concluded from patterns over time, not from any single experience. Each inference shows its confidence level and the pattern chain that produced it.
entity: which entity to get inferences for, defaults to "Self"
Return world health: entity count, pattern count, feedback count, resolution rate, average bias, and a summary of each entity with its top patterns. Useful for getting an overview of what has accumulated.
How Claude uses these tools
Claude decides when to call EntityO tools based on the conversation context and the tool descriptions. You do not need to explicitly ask Claude to use EntityO.
To make Claude use the tools more proactively, add this to your system prompt in Claude Desktop settings:
You have access to EntityO, my persistent associative memory. Before answering questions about my life, preferences, or history, query EntityO first. When I share something meaningful, e.g., a decision, an experience, a feeling, feed it to EntityO. When I ask what you know about me or ask for patterns in my life, call entityo_infer.
Tips
Feed richly
"I took Kai for a walk this morning and it cleared my head" is better than "walked dog". Natural language captures context that bare facts miss.
Use feedback
After Claude responds, correct it if the valence was wrong. "That was negative, not positive." Contradiction is how EntityO learns nuance.
Run inference periodically
Go to app.entityo.com after a week or two of feeding and click "Run inference". Then entityo_infer returns fresh derived insights.
Use multiple entities
EntityO defaults to "Self". Feed "Work" or "Projects" separately to build distinct experiential models for different domains of your life.
Disable per-tool approval
In Claude Desktop Settings > Developer, find EntityO and enable auto-approval so tools run silently without confirmation dialogs.
Check the dashboard
app.entityo.com shows your full world: patterns, strength bars, bias, resolution rate. Query it directly without Claude.
Rate limits
- 10 inference runs per day per user, resets at midnight UTC
- No limits on feed or query operations
Privacy
Your API key authenticates you to your private EntityO instance. All experience data is stored in your isolated database in Ireland (EU). The MCP server contains no business logic and stores no data of its own.
When inference runs, EntityO sends truncated pattern summaries (max 60 characters each) to Claude Haiku for natural language articulation. No raw stimulus content or account data leaves EntityO. Full details at entityo.com/privacy.
Troubleshooting
Server disconnected in Claude Desktop
Check that Node.js is installed (node --version). Restart Claude Desktop after editing the config. Check Settings > Developer > entityo for error details.
No EntityO API key provided
Your key is not reaching the server. Confirm there are no spaces around the colon in X-API-Key:sk-eo-... in your config.
Tools time out
The EntityO backend loads your world on each request. If you have many patterns this can take a few seconds. This is a known limitation being addressed in a future update.
Inference returns nothing
Run inference from the dashboard at app.entityo.com first. The entityo_infer tool returns stored inferences, so it does not trigger the inference engine itself.
Questions or issues? Email hello@entityo.com. Early access! Free while we build!