{"_id":"@cardgo/mcp","name":"@cardgo/mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@cardgo/mcp","version":"0.1.0","description":"CardGo MCP server: use your end-to-end encrypted CardGo cards from Claude, Cursor, and any MCP client.","license":"MIT","author":{"name":"CardGo"},"homepage":"https://cardgo.ai","repository":{"type":"git","url":"git+https://github.com/cardgo/cardgo-mcp.git"},"bugs":{"url":"https://github.com/cardgo/cardgo-mcp/issues"},"keywords":["mcp","modelcontextprotocol","cardgo","claude","cursor","ai","end-to-end-encryption"],"type":"module","bin":{"cardgo-mcp":"dist/cli.js"},"engines":{"node":">=20.19.0"},"scripts":{"build":"tsc -p tsconfig.build.json","dev":"tsx src/cli.ts","typecheck":"tsc --noEmit","lint":"eslint src","test":"vitest run","prepublishOnly":"npm run build"},"dependencies":{"@modelcontextprotocol/sdk":"^1.17.0","zod":"^3.25.0"},"devDependencies":{"@types/node":"^22.0.0","tsx":"^4.20.0","typescript":"^5.9.0","vitest":"^3.2.0","eslint":"^9.0.0","typescript-eslint":"^8.0.0"},"publishConfig":{"access":"public"},"gitHead":"237765b1fff42172915ef9b082dbe8eb2731f44b","_id":"@cardgo/mcp@0.1.0","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-1f3QNUsZ4ezZFUQh5ZdVnHzlIg5tMwisKp4aBfbeu/Qjk87RnEDQ3vK7wAuDE1OWTAY4BePqShLGXNNT7HccJw==","shasum":"3b32d9f687c1b7c8a84d55862662844d8a36471f","tarball":"https://registry.npmjs.org/@cardgo/mcp/-/mcp-0.1.0.tgz","fileCount":19,"unpackedSize":130798,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDX++odXwFhLTJyw8uUm2CSUYhayb0tHrUjtZu3saPx8gIgLox3JH5du0G/Mkc8A/oYoE0Z4wQNhiHoI51aYNj1WtU="}]},"_npmUser":{"name":"trinhngocdieu","email":"contact@trinhngocdieu.com"},"directories":{},"maintainers":[{"name":"trinhngocdieu","email":"contact@trinhngocdieu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.1.0_1787584389580_0.7770647167409528"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-24T15:13:09.324Z","0.1.0":"2026-08-24T15:13:09.752Z","modified":"2026-08-24T15:13:09.989Z"},"maintainers":[{"name":"trinhngocdieu","email":"contact@trinhngocdieu.com"}],"description":"CardGo MCP server: use your end-to-end encrypted CardGo cards from Claude, Cursor, and any MCP client.","homepage":"https://cardgo.ai","keywords":["mcp","modelcontextprotocol","cardgo","claude","cursor","ai","end-to-end-encryption"],"repository":{"type":"git","url":"git+https://github.com/cardgo/cardgo-mcp.git"},"author":{"name":"CardGo"},"bugs":{"url":"https://github.com/cardgo/cardgo-mcp/issues"},"license":"MIT","readme":"# @cardgo/mcp\n\nUse your [CardGo](https://cardgo.ai) cards from Claude, Cursor, and any other\n[MCP](https://modelcontextprotocol.io) client — without your cards ever leaving\nend-to-end encryption.\n\nCardGo cards are encrypted in your browser before they sync, and the server\ncan't read them. That is why this is a *local* MCP server: it runs on your\nmachine, signs in as one more device on your account, and decrypts cards\nthere. Nothing in plaintext ever reaches a CardGo server.\n\n**Requires a Pro or Max plan.** Node.js 20.19 or newer.\n\nPublished as `@cardgo/mcp`. The unscoped `cardgo-mcp` is the same package under\nan older name and stays in step; new setups should prefer `@cardgo/mcp`.\n\n## Set up\n\n1. In a terminal on the computer where you use your AI app:\n\n   ```sh\n   npx @cardgo/mcp connect\n   ```\n\n   This opens `cardgo.ai` (sign in and unlock your vault if asked) and shows\n   an approval panel. Approve it; the terminal confirms within a second.\n\n2. Add CardGo to your app.\n\n   **Claude Code**\n\n   ```sh\n   claude mcp add cardgo -- npx -y @cardgo/mcp\n   ```\n\n   **Claude Desktop** — Settings › Developer › Edit config:\n\n   ```json\n   { \"mcpServers\": { \"cardgo\": { \"command\": \"npx\", \"args\": [\"-y\", \"@cardgo/mcp\"] } } }\n   ```\n\n   **Cursor** — Settings › MCP › Add server (`.cursor/mcp.json`):\n\n   ```json\n   { \"mcpServers\": { \"cardgo\": { \"command\": \"npx\", \"args\": [\"-y\", \"@cardgo/mcp\"] } } }\n   ```\n\n   Restart the app. Ask it something like *\"read my Work card before you\n   answer\"* or *\"remember on my Apollo card that the launch moved to Friday\"*.\n\n## What the AI gets\n\n| Tool             | Does                                                                         |\n| ---------------- | ---------------------------------------------------------------------------- |\n| `list_cards`     | Every card: id, name, breadcrumb, one-line summary. Call first.              |\n| `read_card`      | One card in full, plus the cards it is based on (a child inherits context). |\n| `search_cards`   | Cards whose name or sections mention the query.                              |\n| `create_card`    | A new card, optionally based on another.                                     |\n| `update_card`    | Change name, icon, colour, parent, or whole sections.                        |\n| `append_to_card` | Add one line to a section — the \"remember that…\" tool.                       |\n| `delete_card`    | Permanently delete a card.                                                   |\n\nAlso: resources `cardgo://cards` and `cardgo://cards/{id}` (Markdown), and a\n`use_cards` prompt that loads cards as context.\n\nYour AI app asks you before running a tool that changes a card. To hide the\nwrite tools entirely, run the server with `--read-only` (or set\n`CARDGO_MCP_READ_ONLY=1`):\n\n```json\n{ \"mcpServers\": { \"cardgo\": { \"command\": \"npx\", \"args\": [\"-y\", \"@cardgo/mcp\", \"--read-only\"] } } }\n```\n\n## Commands\n\n```\ncardgo-mcp connect [--name \"My laptop\"] [--no-browser]   enrol this machine\ncardgo-mcp [serve] [--read-only]                          run the server (stdio)\ncardgo-mcp status                                         what is connected\ncardgo-mcp disconnect                                     revoke this device, forget the key\n```\n\n## Security notes\n\n- **Where the key lives.** `~/.cardgo/mcp.json` (`0600`; override the\n  directory with `CARDGO_MCP_HOME`) holds the session tokens and the raw vault\n  key. Anything that can read that file can read your cards — the same trade\n  the browser extension and the web app's \"stay unlocked\" make. Use\n  `cardgo-mcp disconnect`, or **Settings › Devices** on cardgo.ai, to revoke.\n- **How the key gets here.** The web app encrypts it to a P-256 key this\n  process generated (ECDH → HKDF-SHA-256 → AES-256-GCM, bound to your account,\n  key version, a one-time `state`, and the sign-in code) and redirects the\n  browser to `127.0.0.1:<port>`. Only the port comes from the link; the host is\n  fixed, so the ciphertext can only land on the machine that started the flow.\n- **Revocation.** Revoking the device ends its session immediately. Like\n  every E2EE client, a revoked device keeps whatever key it already held;\n  rotate your recovery code on cardgo.ai if a machine was compromised.\n- **Plan.** Connecting needs Pro or Max. If the plan lapses, CardGo revokes\n  MCP devices automatically.\n\n## Development\n\n```sh\nnpm install\nnpm test             # protocol vectors shared with the web app, handoff, sanitisers\nnpm run dev -- status\nnpm run build        # dist/\n```\n\n`src/crypto` and `src/cards` mirror `cardgo-lp/src/lib`; `src/test/card-vectors.test.ts`\nproves the copy still decrypts what the web app encrypts.\n","readmeFilename":"README.md","_rev":"1-3185f062156386bff2e9bc58ef4591a0"}