MCP Works with Claude, Cursor and ChatGPT

Turn your repository into instant answers.
Up to 95% fewer tokens, millisecond latency.

CodeMesh turns your repository into a live knowledge graph — files, classes, functions, imports and call edges — and serves answers to your AI tools over MCP instead of making them read source files to find out what's in them.

Set up in minutes · No credit card · Your code never leaves your infrastructure

85%+fewer tokens
Measured across 93 real questions on a 74,680-node repo — 91% at the median, worst quartile still 85%.
~1ms per answer
Median query latency — faster than a repo-wide grep (10.8 ms) or even cat on one file (2.8 ms).
100questions benchmarked
Every number verified against real source, nothing unflattering dropped.
See the full benchmark, question by question →
RepositoryCodeFileCodeFileCodeClassCodeFunctionCodeFunctionCodeImportCodeChunkCodeChunkCodeChunk

Connects to the tools you already use

Claude.aiClaude CodeCursorChatGPTWindsurfAny MCP client

Why this matters

Tokens, speed and freshness aren't three features. They're one problem.

An agent that doesn't know your codebase has exactly one way to learn it: read files. Every design decision below exists to make that unnecessary.

01

Token reduction isn't about cost. It's about attention.

A context window is a budget, not a hard drive. Every token spent pasting in a file the model didn't need to see is a token not spent reasoning about your actual problem — and long, file-dump-heavy contexts measurably degrade a model's recall of what's in them. Reading five files to answer “who calls this function” doesn't just cost money; it crowds out the part of the context window doing the actual thinking. Answering the same question in 200 tokens instead of 2,000 means the other 1,800 tokens are still available when the agent needs them three tool-calls later.

91% fewer tokens, median · see the data

02

Agents don't make one call. They make dozens — and latency compounds.

A single coding task can involve twenty or fifty tool calls chained in sequence: search, read, search again, check a caller, read again. A 3-second lookup is invisible once; paid fifty times in a row, it's the difference between an agent that feels instant and one you stop trusting to work unsupervised. CodeMesh's query path now answers in about a millisecond — measurably faster than the grep-and-read fallback it replaces — so the tax on every one of those calls is close to zero instead of compounding across the whole task.

Faster than grep, measured · see the data

03

A stale graph is worse than no graph — it answers confidently and wrong.

None of the above matters if the graph describes last week's code. An agent that queries a stale index doesn't know it's wrong; it just gives a fluent, confident answer about a function you already refactored. That's why ingestion speed isn't a secondary metric — it's what makes the first two numbers trustworthy. A blake3 manifest means only what actually changed gets re-parsed, so saving one file costs one file's worth of work, and the graph stays seconds behind your last keystroke instead of hours behind your last full re-index.

Sub-second incremental sync, every save

How it works

Three steps. Then never think about it again.

No pipelines to configure, no re-indexing to remember. The graph tracks your working tree as you type.

01

Install the extension

One click in VS Code or Cursor. It ships its own sync engine — no runtime to install, no PATH to configure.

02

Open your repositories

Every git repo you open connects itself and starts syncing. Save a file and the graph updates in about a second.

03

Point your agent at it

Paste one URL into Claude or Cursor, approve once, and your assistant can search and read your real code.

In practice

An answer from your code, not from training data

claude — connected to CodeMesh
▸ Where do we handle token refresh, and who calls it?
⚙ search-code query: "token refresh"
→ server/auth/tokens.ts:118  score 0.94
→ engine/src/auth.rs:47  score 0.81
⚙ query-context MATCH (c:CodeFunction)-[:CALLS]->(f) WHERE f.name = 'refreshTokens'
→ 3 callers
refreshTokens() in server/auth/tokens.ts rotates the token and revokes the whole family if a spent one is replayed. Called from the token endpoint, the daemon's retry path, and auth.rs on a 401.

Not a marketing number

100 real questions, benchmarked end to end

Reading source files vs. one CodeMesh query, on a real 74,680-node monorepo — including the questions where the graph didn't help and the one it got wrong. Nothing dropped.

See the full benchmark
11.6×
Median token reduction
1.0 ms
Median query latency
98/100
Answers under 500 ms
100%
Symbol-lookup accuracy

Built for real repositories

Fast enough to keep up with you

Sub-second incremental sync

A blake3 manifest means only what actually changed is re-parsed. Saving one file costs one file's worth of work, not a re-index of your monorepo.

Six languages, no LLM in the path

tree-sitter parses Python, TypeScript, JavaScript, Go, Rust and Java deterministically. The same input always produces the same graph.

Real relationships

Call edges, imports, class membership — resolved at ingest, not guessed at query time.

Every branch, every commit

Switch branches and the graph follows. Commit history, authors and file changes come along too.

Zero setup

The extension bundles its own engine. Install, sign in, done.

Your code stays yours

Every query is scoped to your organization by the credential itself — never by anything the client sends. Your machine never holds a database credential: the sync engine cannot reach the graph directly even if it wanted to. Agent access is granted per scope, audited, and revocable in one click.

Pricing

Start free. Pay only for the seats you use.

Every plan gets the same graph engine and the same token/speed advantage above. Plans differ on team size and database isolation, not on what the graph can do.

Security

Designed to be boring in an audit

Access is scoped by the credential, never by anything the client sends — so a compromised agent can only ever see what it was granted.

  • OAuth 2.1 with PKCE. The same flow Claude and ChatGPT already speak. Refresh tokens rotate, and replaying a spent one revokes the session.
  • Read-only by construction. Agent queries are checked before they run and executed in a read transaction. Writes are rejected twice over.
  • Tenancy from the token. Your organization id is never taken from a request body, so one account cannot read into another.
  • Revoke in one click. Disconnect an agent and its tokens die immediately, not at their next expiry.
scope
# what an agent is granted
codemesh:code.read search + read files
codemesh:query.read structural queries
codemesh:repos.read repo metadata
# what it is refused
MATCH (n) WHERE n.org_id = $org_id …
✕ MATCH (n) DETACH DELETE n
✕ MATCH (n) RETURN n — no tenant filter
✕ CALL apoc.load.json(…)

Give your agents the map

Install the extension, open a repo, and ask your assistant something it could never have answered before.