{"_id":"@_karanhanda/context-passport","name":"@_karanhanda/context-passport","dist-tags":{"latest":"1.1.0"},"versions":{"1.1.0":{"name":"@_karanhanda/context-passport","version":"1.1.0","description":"A personal context layer MCP server — carry your profile across any AI tool without re-explaining yourself every session.","type":"module","bin":{"context-passport":"server.js"},"scripts":{"start":"node server.js"},"keywords":["mcp","model-context-protocol","ai","claude","context","personal","productivity"],"author":{"name":"Karan Handa"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/karanhanda/context-passport.git"},"engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","zod":"^3.0.0"},"_id":"@_karanhanda/context-passport@1.1.0","bugs":{"url":"https://github.com/karanhanda/context-passport/issues"},"homepage":"https://github.com/karanhanda/context-passport#readme","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-495/xRfPUzgM2ntWIAyggn3NpaxcSNLkwqkIt4IdVL9phYxQwaN+PgX4bEIO06gCinZkhgnXwG25j6BzwGm5PQ==","shasum":"c94c8d46c3f98f19c2364e2856f997dbedb48714","tarball":"https://registry.npmjs.org/@_karanhanda/context-passport/-/context-passport-1.1.0.tgz","fileCount":4,"unpackedSize":27109,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC77y25mxcVkOa6AjSKhoAahQEhI7I8XXirqMh0E6gJUwIhAJoDp+Bq51/K9AsNG42uivQccfdqRxAbinFC/dzA7I9S"}]},"_npmUser":{"name":"_karanhanda","email":"karanhanda592@gmail.com"},"directories":{},"maintainers":[{"name":"_karanhanda","email":"karanhanda592@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/context-passport_1.1.0_1776448937099_0.737501155549517"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-17T18:02:16.978Z","1.1.0":"2026-04-17T18:02:17.229Z","modified":"2026-04-17T18:02:17.470Z"},"maintainers":[{"name":"_karanhanda","email":"karanhanda592@gmail.com"}],"description":"A personal context layer MCP server — carry your profile across any AI tool without re-explaining yourself every session.","homepage":"https://github.com/karanhanda/context-passport#readme","keywords":["mcp","model-context-protocol","ai","claude","context","personal","productivity"],"repository":{"type":"git","url":"git+https://github.com/karanhanda/context-passport.git"},"author":{"name":"Karan Handa"},"bugs":{"url":"https://github.com/karanhanda/context-passport/issues"},"license":"MIT","readme":"# Context Passport\n\nA personal context layer MCP server. Fill in your profile once, then any MCP-compatible AI (Claude Desktop, Cursor, etc.) instantly knows who you are, what you're working on, and how you like to work — without you re-explaining yourself every session.\n\nEverything is stored locally in `context.json`. Nothing leaves your machine (except when you explicitly call `sync_from_github`, which reads from the GitHub API).\n\n---\n\n## Setup\n\n### 1. Install\n\n```bash\n# Option A — clone and install\ngit clone https://github.com/karanhanda/context-passport\ncd context-passport\nnpm install\n\n# Option B — run directly with npx (no clone needed)\nnpx context-passport\n```\n\n### 2. Fill in your context\n\nOpen `context.json` and fill in your details:\n\n```json\n{\n  \"name\": \"Jane Smith\",\n  \"role\": \"Senior Product Manager\",\n  \"working_on\": [\"Q2 roadmap\", \"mobile redesign\"],\n  \"expertise\": [\"product strategy\", \"SQL\", \"user research\"],\n  \"work_style\": \"Prefer concise answers. Always give me the 'why' before the 'how'.\",\n  \"goals\": \"Ship mobile v2 by end of Q2, get promoted to Director by EOY\",\n  \"do_not\": [\"don't give me bullet points for everything\", \"don't be sycophantic\"],\n  \"current_project\": {\n    \"name\": \"Mobile Redesign v2\",\n    \"description\": \"Full redesign of the iOS and Android apps for 2M+ users\",\n    \"status\": \"In design review\",\n    \"next_steps\": [\"Finalize nav patterns\", \"Handoff to eng by May 1\"]\n  },\n  \"last_updated\": \"\"\n}\n```\n\nOr skip this entirely and call `sync_from_github` to auto-populate from your GitHub activity.\n\n### 3. Connect to Claude Desktop\n\nOpen your Claude Desktop config file (locations below) and add the `mcpServers` block:\n\n```json\n{\n  \"mcpServers\": {\n    \"context-passport\": {\n      \"command\": \"/usr/local/bin/node\",\n      \"args\": [\"/ABSOLUTE/PATH/TO/context-passport/server.js\"],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"ghp_your_token_here\"\n      }\n    }\n  }\n}\n```\n\nThe `env` block is optional — only needed for GitHub sync. Leave it out if filling in `context.json` manually.\n\n---\n\n## Config file locations\n\n| Platform | Path |\n|----------|------|\n| **Mac**  | `~/Library/Application Support/Claude/claude_desktop_config.json` |\n| **Windows** | `%APPDATA%\\Claude\\claude_desktop_config.json` |\n\nAfter saving, **restart Claude Desktop** for the changes to take effect.\n\n---\n\n## GitHub auto-sync\n\nInstead of filling in `context.json` by hand, call `sync_from_github` and Context Passport will automatically pull in:\n\n- Your recently active repos → `working_on`\n- Languages used across those repos → merged into `expertise`\n- Your open pull requests → stored in `github.open_prs`\n- Your GitHub display name → `name` (if not already set)\n\n### Getting a GitHub token\n\n1. Go to [github.com/settings/tokens](https://github.com/settings/tokens)\n2. Click **Generate new token (classic)**\n3. Name it `context-passport`\n4. Check the `repo` scope (or `public_repo` for public repos only)\n5. Copy the token and paste it into `env.GITHUB_TOKEN` in your MCP config\n\n---\n\n## How to test it\n\nOnce Claude Desktop is restarted, open a new conversation and type:\n\n```\nLoad my context passport.\n```\n\nClaude will call `get_context` and greet you with a summary of your profile. Also try:\n\n```\nSync my GitHub activity into my context.\n```\n\n```\nWhat am I currently working on?\n```\n\n```\nUpdate my context — I just started a new project called \"API overhaul\".\n```\n\n---\n\n## The four tools\n\n| Tool | What it does |\n|------|-------------|\n| `get_context` | Returns your full profile as formatted markdown — name, role, expertise, goals, work style, and current project |\n| `update_context` | Updates any field(s) and saves to disk. Pass only the fields you want to change. |\n| `get_current_project` | Returns just your current project block. If empty, prompts the AI to ask you. |\n| `sync_from_github` | Pulls your repos, languages, and open PRs from GitHub and merges them into your profile. Requires `GITHUB_TOKEN`. |\n\n---\n\n## Publishing / using via npx\n\nAnyone can run Context Passport without cloning:\n\n```bash\nnpx context-passport\n```\n\nOr install globally:\n\n```bash\nnpm install -g context-passport\n```\n\nThen use `context-passport` as the command in the MCP config instead of a full `node /path/to/server.js`.\n\n---\n\n## Listing on Smithery\n\n[Smithery](https://smithery.ai) is the public registry for MCP servers. To list Context Passport:\n\n1. Push this repo to GitHub\n2. Go to [smithery.ai](https://smithery.ai) and sign in with GitHub\n3. Click **Submit a server** and paste your GitHub repo URL\n4. Smithery reads `smithery.yaml` automatically — config schema and install instructions are already set up\n\n---\n\n## Privacy\n\nAll data is stored in `context.json` on your local machine. The server runs as a local process communicating only over stdin/stdout with your AI client. **No data is sent to any external server.** The only outbound network call is to `api.github.com` when you explicitly call `sync_from_github`.\n","readmeFilename":"README.md","_rev":"1-497a4669dd294353db098be56978ae57"}