cosmos-mcp
MCP server and local sync package for Cosmos. Connects agents, iMessage, browser history, calendar, Claude Desktop, and shell history to a shared personal graph.
Install / Use
claude mcp add teampolarity -- npx -y github:teampolarity/cosmos-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of cosmos-mcp
cosmos-mcp scores 81/100 on our quality scale, 3442nd of 4,613 Development & Engineering skills we index.
Its MCP Server is 11 KB long, well organised into 19 sections with 10 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 2 months ago, so cosmos-mcp is actively maintained.
- Our last check on 2026-08-09 found the source still online.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (1 minor note below). An AI review of the same text found nothing harmful.
- noteInstalls by piping a downloaded script into a shellline 30
curl -fsSL https://mcp.polarity-lab.com/install.sh | sh
AI review by kimi-k2.7-code on 2026-10-19. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
cosmos-mcp compared with similar skills
All 4 of these similar skills score higher than cosmos-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| cosmos-mcp (this skill)by teampolarity | 81 | 3 | 2mo ago | MCP Server |
| taste-skillby Leonxlnx | 100 | 111.0k | 1d ago | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 109.5k | 1d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 79.0k | today | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 70.0k | today | CLAUDE.md |
Frequently asked questions
- How do I install cosmos-mcp?
- Run
claude mcp add teampolarity -- npx -y github:teampolarity/cosmos-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does cosmos-mcp work with?
- It is written for Claude Code, Claude Desktop and Cursor, as a MCP Server file. Other agents that read the same format can often use it too.
- Is cosmos-mcp safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (1 minor note below). An AI review of the same text found nothing harmful. It is MIT-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is cosmos-mcp still maintained?
- The repository was last updated about 2 months ago, so cosmos-mcp is actively maintained.
Skill content
View source on GitHubEvery 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.
One-line install
curl -fsSL https://mcp.polarity-lab.com/install.sh | sh
On macOS this installs the MCP server, registers cosmos-mcp://, wires Claude Desktop, Claude Code, Cursor, Codex, Zed, and Continue, then installs Cosmos Sync.app so iMessage, browser history, calendar, Claude Desktop transcripts, and shell history can sync in the background. On linux and windows it installs the MCP server path only.
If you want to inspect before changing anything:
curl -fsSL https://mcp.polarity-lab.com/install.sh -o install.sh
bash install.sh --dry-run
bash install.sh
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. Set COSMOS_TOKEN=pmk_… in env. It takes precedence over the keychain, so existing pipelines keep working untouched.
Manual MCP config
The installer handles this for common clients. If you want to wire a client by hand, point it at the package.
npx -y @polarity-lab/cosmos-mcp init
This 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. |
| Claude Desktop | Local CLI: npx -y @polarity-lab/cosmos-mcp claude-desktop sync. Reads Claude Code session transcripts at ~/.claude/projects/. | Every Claude Code session becomes a thread node; user and assistant turns land in conversation_turns with full text. Tool-use plumbing is stripped client-side. |
| Shell history | Local CLI: npx -y @polarity-lab/cosmos-mcp shell-history sync. Reads ~/.zsh_history (falls back to bash/fish) with a byte-offset watermark. | Each sync window lands as one source_page keyed by shell-history:<sync-iso>, body = newline-joined commands. Trivial commands (ls, cd .., single chars) and consecutive duplicates are filtered client-side. |
| 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.
Claude Desktop sync
cosmos-mcp ships a claude-desktop subcommand that watches Claude Code session transcripts and lands each turn in your graph. The desktop chat surface itself stores conversations server-side, so the live, watchable on-disk source is ~/.claude/projects/<encoded-cwd>/<session-id>.jsonl.
# default: incremental, watermarked per session
npx -y @polarity-lab/cosmos-mcp claude-desktop sync
# limit to recent activity
npx -y @polarity-lab/cosmos-mcp claude-desktop sync --since 2026-05-01
# scan and report without shipping
npx -y @polarity-lab/cosmos-mcp claude-desktop sync --dry-run
# see what the last run did
npx -y @polarity-lab/cosmos-mcp claude-desktop status
Tool-use blocks, hook plumbing, and sub-agent (sidechain) turns are stripped client-side; only the visible text the user and the assistant exchanged is shipped. Each session id becomes its own thread node, keyed by (user_id, "claude-desktop", session_id).
Background sync (macOS)
cosmos-mcp daemon install drops a LaunchAgent that ticks every four hours and runs the browser, iMessage, calendar, claude-desktop, and shell-history syncs back-to-back. The agent fires a signed, notarized Cosmos Sync.app bundle that ships inside the npm package and gets copied into ~/Applications/Cosmos Sync.app at install time.
npx -y @polarity-lab/cosmos-mcp daemon install
After install, grant the bundle Full Disk Access once:
- open System Settings → Privacy & Security → Full Disk Access
- click +, then drag
~/Applications/Cosmos Sync.appinto the list - make sure the checkbox next to it is on
- run
cosmos-mcp daemon kickto fire a tick now
Browser sync works without that step. iMessage and Calendar need it because they read TCC-protected SQLite databases on the user side. cosmos-mcp daemon status reports the signing team id, the plist + runner paths, and whether launchd has the agent loaded. cosmos-mcp daemon uninstall removes the plist, runner, and ~/Applications/Cosmos Sync.app.
Configuration
| Env var | Default | When you set it |
|---|---|---|
| COSMOS_URL | https://cosmos.polarity-lab.com | Override the cosmos API endpoint. |
| 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 internal testing before per-user keys are deployed. |
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.
Related Skills
taste-skill
111.0kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
Agent-Reach
109.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
79.0kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ai-job-search
70.0kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
