The split is stated by the tool itself and worth keeping: definitions, callers and impact go here, while strings and config values are still a text search. The interface is unusual in a useful way — you send code rather than arguments, so a question like what does changing this break and who depends on that file runs as one call with both queries in parallel. Start by asking it to list its own methods; the API is discoverable from inside the tool, so there is nothing to memorise before the first real question.
Code intelligence as a query surface. A CLI parses your source locally and uploads only structural metadata — functions, classes, imports, calls, references — and the single tool runs queries against the graph built from it.
- Symbol search across the codebase by name, as the entry point to almost every other question
- A symbol's details, its dependents and its dependencies — the callers-and-callees questions that text search answers badly
- Impact analysis for a symbol, which is the question actually being asked when someone says can I change this
- Usage traced through the code from a symbol, rather than found by grepping for its name
- Circular dependencies located, and orphaned code that nothing references identified
- An architecture overview of the project as a whole
- Several of these composed in one call, because the tool takes code rather than parameters — queries run together and return as one result
- The API discoverable from inside the tool: a method listing with signatures, and inline TypeScript definitions for any one of them
- Branch isolation, so each git branch carries its own code intelligence
A Constellation account and an access key in CONSTELLATION_ACCESS_KEY — every request is authenticated. The MCP server runs as npx -y @constellationdev/mcp@latest, but it only answers about a project the Constellation CLI has already analysed: the CLI parses your code locally and uploads metadata, and the graph is what queries run against. So source code stays in your environment while structure does not — the relationships, names and references are held by the service. Node.js v24 or newer. AGPL-3.0.
One command plus a key — npx -y @constellationdev/mcp@latest, then supply credentials
