Cosmos
your ai exocortex
cosmos-mcp
One exocortex. Every agent.
MCP server for your Cosmos graph.
Every AI you use is building its own private graph of you. Claude has one. ChatGPT has one. Cursor has one. None of them talk to each other, and none of them are yours.
Cosmos inverts that. Your knowledge graph lives in one place, and any MCP-capable client (Claude Code, Claude Desktop, Cursor, Codex, Zed, Continue) reads and writes to the same one. When an agent notices something durable about you, it lands in the graph. When you switch tools, the graph follows. The user, not the platform, owns the integration layer.
The thing you carry is a .polarity file. Yours.
Provisioning
There are two ways to get a pmk_… key onto your Mac.
Automatic. Sign in at cosmos.polarity-lab.com/connectors, tap "open in cosmos-mcp." The OS opens a one-shot handler that writes the key into your system keychain. You never see the raw key.
For that deep link to work, register the URL scheme once:
npx -y @polarity-lab/cosmos-mcp install-handler
This drops a tiny .app into ~/Library/Application Support/cosmos-mcp/ and registers cosmos-mcp:// with Launch Services. macOS-only.
Manual. If you already have a pmk_… key, or you do not want to install the handler:
npx -y @polarity-lab/cosmos-mcp provision pmk_xxx
The CLI validates the key against cosmos, then stores it in the macOS system keychain under service cosmos-mcp-key. Subsequent imessage sync, browser sync, calendar sync calls read from the keychain. No env var needed.
Confirm iMessage access.
npx -y @polarity-lab/cosmos-mcp imessage probe
Verifies Full Disk Access is granted and reports how many chats are visible. If you see an EACCES message, open System Settings, Privacy & Security, Full Disk Access, and add Terminal (or whichever app runs the CLI).
CI and self-hosters. Set COSMOS_TOKEN=pmk_… in env. It takes precedence over the keychain, so existing pipelines keep working untouched.
Install
npx -y @polarity-lab/cosmos-mcp init
Opens your browser. Sign in at cosmos.polarity-lab.com, approve a per-user key, and the token lands at ~/.config/cosmos-mcp/token (0600). Then point any MCP client at it:
{
"mcpServers": {
"cosmos": {
"command": "npx",
"args": ["-y", "@polarity-lab/cosmos-mcp"]
}
}
}
That config drops into ~/Library/Application Support/Claude/claude_desktop_config.json for Claude Desktop, your .cursor/mcp.json for Cursor, the equivalent for whichever client.
What you get
Eleven tools, four read, seven write.
Read
| Tool | Calls | What it returns |
|---|---|---|
polarity_whoami | GET /api/polarity/whoami | Bound user + scopes. Cheap probe. |
polarity_export | POST /api/polarity/export | Full personal graph as polarity/v1 JSON. |
polarity_get_graph | GET /api/polarity | Graph view, scoped by entity (user, cosmos, polarity). |
polarity_ask | POST /api/polarity/ask | NL question synthesized over the graph. |
Write
| Tool | Calls | What it does |
|---|---|---|
polarity_observe | POST /api/polarity/observe | Freeform observation. Cosmos extracts. |
polarity_record_event | POST /api/polarity/observe (kind=event) | Something happened at a point in time. |
polarity_record_preference | POST /api/polarity/observe (kind=preference) | A like, dislike, working-style rule. |
polarity_capture_turn | POST /api/polarity/capture-turn | Hand a whole user/assistant exchange to cosmos. Pulls every durable observation in one call. Prefer over multiple polarity_observe calls. |
polarity_dump | POST /api/polarity/dump | Location-anchored short message. |
polarity_checkin | POST /api/polarity/checkin | Check-in at a waypoint. Triggers co-presence detection. |
polarity_declare | POST /api/polarity/declare | Declare future presence at a waypoint. |
Sources
The MCP server is one way to write to the graph. Cosmos accepts source pages from anywhere you keep notes, and the MCP read tools see all of it through the same view.
| Source | How it connects | What lands |
|---|---|---|
| iMessage | Local CLI: npx -y @polarity-lab/cosmos-mcp imessage sync. Mac only. Grant Terminal Full Disk Access first. | Conversational turns from chat.db, with text content. People appear as person nodes in your graph, sized by conversation weight, named via your local AddressBook, dated by your real message timestamps. |
| Notion | OAuth at cosmos.polarity-lab.com/connectors. Pick the pages and databases you want shared. | Each Notion page becomes a source_page node, keyed by Notion id, kept fresh by a daily sync. |
| Obsidian | Community plugin: polarity-lab/obsidian-cosmos. Paste your pmk_ key, point at your vault. | Each note becomes a source_page node keyed by vault-relative path. Tags and wikilinks resolve into edges. |
| MCP clients | This package. | Observations, events, preferences, location dumps, check-ins, declarations. |
| Direct API | POST /api/polarity/observe with your key. | Anything you can express as an observation. |
Unchanged pages are skipped server-side, so re-syncing a quiet vault or stable Notion workspace costs almost nothing. The iMessage sync is incremental too, watermarked on the last successful run, so re-running it is a no-op until new messages arrive.
iMessage sync
cosmos-mcp ships an imessage subcommand that reads your local Messages database and lands every conversation in your graph.
# default: incremental sync, 90-day window on first run
npx -y @polarity-lab/cosmos-mcp imessage sync
# re-sync the original 90-day window regardless of watermark
npx -y @polarity-lab/cosmos-mcp imessage sync --backfill
# pull everything since a specific date
npx -y @polarity-lab/cosmos-mcp imessage sync --since 2024-01-01
# check what the last run did
npx -y @polarity-lab/cosmos-mcp imessage status
A three-rule slop filter (no-reply senders, short-code numbers, low-volume contacts) keeps the graph clean. Your AddressBook resolves phone numbers and emails into real contact names. The reading is local to your Mac; only the extracted, normalized turns go into your cosmos graph, which is your account.
Configuration
| Env var | Default | When you set it |
|---|---|---|
COSMOS_URL | https://cosmos.polarity-lab.com | Pointing at your own cosmos. |
COSMOS_TOKEN | (from keychain) | pmk_... per-user key for CLI subcommands. Takes precedence over the macOS keychain entry. Set this in CI. |
COSMOS_MCP_KEY | (from token file) | pmk_... per-user key. Honored for back-compat. |
COSMOS_USER_ID | (from token file) | Polarity user id. |
COSMOS_SYSTEM_KEY | (unset) | Single-tenant mode. Sends X-System-Key instead of X-MCP-Key. Requires COSMOS_USER_ID. For self-hosters or testing before per-user keys are deployed. |
Self-hosting
The cosmos backend is open. Run taiscoding/cosmos on your own Cloudflare account, mint a key against your instance, set COSMOS_URL to your domain. The graph stays on your D1. The .polarity export still works.
The pitch in three lines
Your AI tools each know fragments of you. They are not allowed to share. Cosmos is the layer that lets them. You hold the key. The graph is portable. When you leave, you take the understanding with you.
License
MIT.
Servidores relacionados
ShippingRates
Ocean container shipping intelligence — D&D tariffs, freight rates, vessel schedules, and total cost calculation across 6 major carriers.
Cotrader
AI-powered stock screener for 11,000+ US stocks. Screen using natural language and detect chart patterns via MCP.
AHME MCP
Asynchronous Hierarchical Memory Engine
Poof
Background removal API - remove backgrounds from images with a simple API call. Supports PNG, JPEG, WebP output with transparency or custom backgrounds.
Chainlink MCP Server
MCP server for Chainlink — query any price feed via the Feed Registry contract across all supported assets.
MCP Location Services for LLM
Provides geocoding, reverse geocoding, routing, and driving distance calculations for LLMs using pgGeocoder and pgrServer.
Canvelete
API-first platform for image optimization and document design. Generate optimized images, PDFs, and documents at scale with our visual editor and REST API.
Pace
Pace is the first MCP connector that brings wearable health data directly into Claude — no third-party dashboards, no manual exports, no extra apps. Most health apps lock your data behind their own UI. Pace breaks that wall: connect once, and Claude can analyze your sleep, activity, workouts, nutrition and recovery in natural language — with full visualizations inline.
MCP HUB
The Ultimate Control Plane for MCP Unlock the full power of Model Context Protocol with zero friction. One-Click GPT Integration: Bridge the gap between MCP servers and ChatGPT/LLMs instantly. No more manual config hunting. Pro-Level Orchestration: Manage, monitor, and toggle multiple MCP tools from a single, intuitive dashboard. Secure by Design: Built-in support for complex auth flows and 2FA, making enterprise-grade tool integration seamless. Streamlined Debugging: Test queries and inspect tool responses in real-time without leaving the hub. Stop wrestling with JSON configs. Start building agentic workflows that actually work.
FLUX
Official FLUX MCP server from Black Forest Labs. Generate, edit, vary, and browse FLUX.2 images directly in any MCP-compatible client