nima-career-mcp
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., "@nima-career-mcpassemble a resume for a tech lead position"
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.
nima-career-mcp
A public, open-source, read-only MCP server that exposes Nima Karami's curated, public-safe career history. Point any MCP client at it — Claude Code, Cursor, Claude Desktop, or a custom website backend — and ask about his experience, or have it assemble a tailored resume draft on the fly.
The server only ever returns vetted data. The AI's job is to select, order, and tailor
pre-approved material for a query — never to author new facts. That guarantee is enforced in
code: every tool reads through a validated corpus, and the resume tool emits only corpus
values with provenance ids attached.
Quick start (local)
Requires uv.
uv sync --all-extras --dev
# Interactive dev + MCP Inspector (stdio):
uv run mcp dev src/nima_career_mcp/server.py
# Or run the HTTP server locally:
uv run nima-career-mcp --transport streamable-http # serves http://127.0.0.1:8080/mcp
# Tests (includes corpus integrity + the honesty guarantee):
uv run pytest -qConnecting clients
Claude Code / Cursor / Claude Desktop (remote, after deploy):
claude mcp add --transport http nima https://your-app.fly.dev/mcpLocal stdio (any client that spawns a process): run nima-career-mcp (no --transport).
Custom website backend: see examples/website_backend.py
for both the Claude API MCP-connector path and a raw ClientSession path.
Tool surface (all read-only)
Tool | Purpose |
| Public-safe identity, links, bio |
| Browse roles (flat); drill into one (evidence + approved bullets) |
| Roles grouped into company tenures (title progressions; gaps split into stints) |
| Browse/drill into projects |
| Skills by category, each backed by evidence |
| Rank roles/projects/bullets/skills for a query |
| Fetch pre-approved resume bullets |
| Assemble a tailored resume draft from approved material only |
Resource career://guidance returns the honesty/anti-injection rules a host should embed in
its system prompt. (Other career:// resources and prompt templates are stubbed opt-ins.)
The corpus
All data lives in corpus/ as curated YAML and is validated at startup. See
corpus/CORPUS.md for the schema and the evidence→bullet model. The
shipped content is placeholder — replace it with your own vetted facts. This repo holds
no secrets and no private data; application tracking lives in a separate private repo.
Safety posture
Intentionally public and unauthenticated, but bounded: read-only tool surface (no
write/exec), per-IP rate limiting, request body-size caps, and Origin validation
(DNS-rebinding defense) — see src/nima_career_mcp/security.py. Behavioral guardrails
(don't fabricate, treat queries as data) belong in the consuming host's system prompt and are
served from career://guidance.
Deploy (Fly.io)
fly launch --no-deploy # or edit fly.toml: set app name + region
fly deployThe container runs uvicorn nima_career_mcp.server:app (the middleware-wrapped Streamable-
HTTP app). Stateless mode means it scales to zero and back. After deploy, smoke-test with the
MCP Inspector:
npx @modelcontextprotocol/inspector # then connect to https://your-app.fly.dev/mcpLicense
MIT — see LICENSE.
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
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/nima-karami/nima-career-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server