@ttsc/graph

Answers coding-agent questions about a TypeScript project from a compiler-resolved code graph

By Jeongho Nam (individual) TypeScript Local · stdio Developer tools

65 popularity score ★ 364 ↓ 5.2k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

FirstTerminal
npm install -D ttsc typescript @ttsc/graph
Claude CodeTerminal
claude mcp add ttsc-graph -- npx -y @ttsc/graph
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "ttsc-graph": {
      "command": "npx",
      "args": [
        "-y",
        "@ttsc/graph"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "ttsc-graph": {
      "command": "npx",
      "args": [
        "-y",
        "@ttsc/graph"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "ttsc-graph": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@ttsc/graph"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.ttsc-graph]
command = "npx"
args = ["-y", "@ttsc/graph"]
Gemini CLITerminal
gemini mcp add --scope user ttsc-graph npx -- -y @ttsc/graph

What it does

@ttsc/graph is the MCP server in the ttsc repository, a toolchain built on the native TypeScript 7 (typescript-go) compiler. When it starts in a project root it type-checks the project, keeps the resulting graph of declarations, calls, types and tests in memory, and updates the parts that change as files are edited. An agent asks it about the code instead of searching and reading files.

It has a single tool, inspect_typescript_graph. Each call carries the question, a drafted request, a review of that draft, and one final request chosen from seven kinds: tour (architecture and runtime flow), entrypoints, lookup (a named symbol, or the declarations whose docs cite a target such as a doc anchor or an HTTP route), trace (callers, callees, or the path between two symbols), details (signatures, members, implementations), overview (layers and folders) and escape (the answer lies outside the graph). Replies hold names, signatures, relationships and source spans, never file bodies, plus an audit field saying which facts came from the compiler, which the server derived and which came from lint plugins.

The launcher accepts two options, --cwd and --tsconfig, to point it at a project directory or a specific tsconfig file; any other argument is rejected with exit code 2 (launcherArgs.ts). The npm package installs a program named ttsc-graph, and its native graph builder comes as optional per-platform packages for Linux (x64, arm, arm64), macOS (x64, arm64) and Windows (x64, arm64), per package.json.

What it needs

RuntimeNode.js

Node.js with npx. The project must be TypeScript and have ttsc and typescript installed (npm install -D ttsc typescript, then npm install -D @ttsc/graph); ttsc needs the TypeScript 7 native compiler, not TypeScript 6.x. A native builder package for your platform (Linux, macOS or Windows on x64/arm64, Linux arm) installs as an optional dependency. Start the MCP client from the project root, or pass --cwd.

Limits

Works only on TypeScript projects that type-check with ttsc on TypeScript 7; it does not run on the TypeScript 6.x compiler and has no fallback parser, so if the type-check cannot build the graph there is no graph. It returns no source bodies or non-TypeScript file contents: for those the tool answers with escape and the agent must read files itself. lookup, entrypoints and tour return a ranked, capped shortlist chosen by heuristics, so coverage is not guaranteed complete. The token and indexing-time figures in its README are the makers' own benchmarks.

Who it suits

Suits developers running a coding agent on a sizeable TypeScript codebase that already uses, or can move to, ttsc and TypeScript 7, and who want architecture and call-flow answers without the agent reading whole files. It is read-only, runs locally and needs no account. It is not for other languages or for projects that must stay on TypeScript 6.x. Its README names Serena and codebase-memory-mcp, both also listed here, as the tools it was benchmarked against; look at those when this one's TypeScript 7 requirement rules it out.

Tools 1

inspect_typescript_graph
Takes a question, draft and review, then runs one request (tour, entrypoints, lookup, trace, details, overview or escape) against the compiler-built graph

Similar servers