nima-career-mcp
Exposes Nima Karami's curated, public-safe career history. Allows AI to select and tailor pre-approved material for queries.
README
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 -q
Connecting clients
Claude Code / Cursor / Claude Desktop (remote, after deploy):
claude mcp add --transport http nima https://your-app.fly.dev/mcp
Local 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 |
|---|---|
get_profile |
Public-safe identity, links, bio |
list_roles / get_role |
Browse roles (flat); drill into one (evidence + approved bullets) |
list_experience |
Roles grouped into company tenures (title progressions; gaps split into stints) |
list_projects / get_project |
Browse/drill into projects |
list_skills |
Skills by category, each backed by evidence |
search_experience |
Rank roles/projects/bullets/skills for a query |
list_bullets |
Fetch pre-approved resume bullets |
assemble_resume |
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 deploy
The 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/mcp
License
MIT — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.