carry
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., "@carrypush the latest context pack from my repo"
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.
carry
Carry a context pack between your Claude surfaces. Push your voice rules, system facts, or style guide from Claude Code at your desk; read them from Claude mobile on the go. One small remote MCP server, always live, no manual re-sync.
carry exists because there is no public API to write Claude Project knowledge, so keeping your mobile Claude in sync with the instructions you maintain in a repo means either re-uploading files by hand (which drifts the moment you do) or this: a server both surfaces attach to, holding one current pack per namespace.
Claude Code (your repo) Claude mobile app
compiles + pushes the pack connector attached once via web
│ │
│ push_context (write token) │ get_context (read token)
▼ ▼
┌─────────────────────────────────────────────────────┐
│ carry — the current pack for your namespace │
└─────────────────────────────────────────────────────┘Because Claude mobile can use remote MCP connectors (you add the URL once on claude.ai web; it syncs to your phone), your phone reads the live pack every time you draft. Update the pack from your desk, and mobile has it on the next call.
Status
Early. Slices 1 and 2 are done and verified: a runnable, auth-gated MCP server
(Slice 1, in-memory store) now backed by durable libSQL storage that survives a
restart (Slice 2). See docs/build-plan.md for what is built
and what is next.
Related MCP server: memory-mcp-server
What it exposes (MCP)
get_context— return the current pack for your namespace. Read this before drafting.push_context— replace the pack. Requires a write token.carry://context— the same pack as an MCP resource.
Auth model
A namespace owns two secrets: a read token (what your mobile connector presents) and a write token (what Claude Code / CI presents to push). They must differ, so a leaked read connector can never overwrite your pack. The token is the namespace: the model never supplies one, so it cannot touch anyone else's pack.
Run locally
npm install
cp .env.example .env # then set CARRY_NAMESPACES with your own tokens
npm run dev # starts on :8080Verify:
npm run smoke # storage + auth cores, no network
npm run typecheck
# end-to-end (server must be running): CARRY_URL, then tsx scripts/http-smoke.tsRoadmap
A carry CLI + pack compiler (repo files → stamped pack), a Render one-click
Blueprint, and optional multi-tenant signup. Tracked in
docs/build-plan.md.
License
Apache-2.0.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/emtcmca/carry'
If you have feedback or need assistance with the MCP directory API, please join our Discord server