Connect OpenThunder to Claude Code, Cursor, and other AI agents

OpenThunder ships an MCP (Model Context Protocol) server that lets your AI coding agent work against your repo's real architecture graph, with file:line evidence, instead of burning tokens re-reading files. It is keyless and deterministic: no API key, and nothing leaves your machine.

It exposes three MCP capabilities: tools (30+ callable actions, highlighted below), read-only resources (openthunder:// context an agent pulls on demand), and prompts (reusable workflows). The guiding rule: your agent declares intent and requests; OpenThunder observes reality and decides. An agent can ask OpenThunder to verify a change; it can never tell OpenThunder the change is verified.

What your agent can ask (tools)

These are the highlights of the deep-graph toolset; the server registers 30+ tools in total (add change-coordination and verification tools like get_repository_context, verify_change, and can_i_ship).

Context your agent can pull (resources)

Resources are read-only context the agent fetches on demand instead of you pasting it in. Each reflects the current repo and is keyless and deterministic:

Reusable workflows (prompts)

Prompts steer the agent to call OpenThunder's own tools in the right order. They never act on their own:

Install

Install it into your agent with one command (from a repo, or pass OT_REPO_PATH):

openthunder mcp install --client claude    # or: cursor, codex, all

This writes the correct config for that client (merge-safe, with a .bak backup) and pins the repo. Prefer to configure it by hand, or use a different client? The manual paths below all work. The server ships as @openthunder/mcp (binary: openthunder-mcp); openthunder mcp print outputs a copy-paste config.

Claude Code

claude mcp add openthunder \
  --env OT_REPO_PATH=/path/to/your/repo \
  -- node /absolute/path/to/openthunder/packages/mcp/dist/index.js

Then, in a session, ask things like "trace the flow for POST /api/orders" or "what does the graph say is broken?" and the agent will call the tools.

Cursor

Add to ~/.cursor/mcp.json (global) or the project's .cursor/mcp.json:

{
  "mcpServers": {
    "openthunder": {
      "command": "node",
      "args": ["/absolute/path/to/openthunder/packages/mcp/dist/index.js"],
      "env": { "OT_REPO_PATH": "/path/to/your/repo" }
    }
  }
}

Any MCP client

The server speaks MCP over stdio. Launch node packages/mcp/dist/index.js; the repo defaults to the OT_REPO_PATH environment variable or the current directory, and every tool also accepts a repoPath argument so one server can answer for multiple repos.

Languages

The graph is built from real code across TypeScript/JavaScript, Python, Go, C#/.NET, and Java, and it correlates across languages , so in a polyglot repo a TypeScript frontend fetch links to the Python, Go, C#, or Java route that serves it, all the way down to the data layer (SQL tables, MongoDB collections, and Prisma models). Every extractor is keyless and deterministic; unsupported files are simply skipped.

Privacy

Everything runs locally and keyless. The server reads your code on your machine to build the graph and returns only derived facts (routes, flows, findings) with file:line pointers. Your source is never uploaded.