A side-by-side look at the Trace MCP and Constellation MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Trace MCP for developer tools work as a local process; choose Constellation for developer tools as a local process. You can also run both side by side in one mcpServers block.
CONSTELLATION_ACCESS_KEY.code_intel.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Developer Tools | Developer Tools |
| Quality signal | 63/100 · Good | 56/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | API key required |
| Pricing | Free | Not declared |
| Required env vars | None listed | CONSTELLATION_ACCESS_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 193 | 3 |
| Directory activity | 2 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | Not listed | 1 |
| Full listing | View Trace MCP | View Constellation |
No tool names declared yet. Check the project README from the listing page.
code_intelDECISION RULE: Structure questions → this tool. Text search → Grep.
Before using Grep, ask: Is this a STRUCTURE question (definitions, callers, impact) or a TEXT question (strings, config)?
QUICK START: `return await api.searchSymbols({query: "AuthService"})` — simple queries are one-liners.
Run `api.listMethods()` for full API reference with signatures and descriptions.
Run `api.help("methodName")` for inline TypeScript type definitions — no resource reads needed.
Compose: `const [impact, deps] = await Promise.all([api.impactAnalysis({symbolId}), api.getDependents({filePath})]);`
WHY THIS TOOL: Graph-backed intelligence finds indirect relationships, transitive dependencies, and breaking change risks that text search cannot detect.
"What uses X?" disambiguation: getDependents (file imports) vs getCallGraph (call chain) vs traceSymbolUsage (all usages).
USE IMMEDIATELY WHEN:
• BEFORE using Edit on a function/class → run impactAnalysis({symbolId}) first
• BEFORE exploring an unfamiliar codebase → run getArchitectureOverview()
• BEFORE refactoring → trace getDependencies + getDependents for blast radius
• Running 3+ Grep calls for structure? STOP → use code_intel instead
TOP 5 QUESTIONS (query is case-insensitive substring match):
• "Where is X defined?" / "Find function Y" → searchSymbols({query})
• "What calls X?" / "What imports this?" → getDependents({filePath}) or getCallGraph({symbolId})
• "What does X depend on?" → getDependencies({filePath})
• "Safe to modify X?" / "Blast radius?" → impactAnalysis({symbolId})
• "Find dead code" / "Unused exports?" → findOrphanedCode()
• "Complex functions?" / "Refactoring targets?" → searchSymbols results include complexity.cyclomaticComplexity + complexityRisk per function
NOT FOR: literal string search, log messages, config values, or reading source code. Use Grep/Glob/Read for those.
Supports TypeScript, JavaScript, Python, and more — run api.getCapabilities() to check your project.
File-path-scoped methods (getDependencies, getDependents, getCallGraph, traceSymbolUsage, impactAnalysis) reject calls whose `filePath` extension is not in the project's configured languages with `UNSUPPORTED_LANGUAGE` — check api.getCapabilities() first.
WRONG TOOL SIGNAL: If you've run 3+ Grep calls for structure (callers, dependencies, impact), STOP and use code_intel instead.
Typical workflow: code_intel to find (results include source snippets) → Edit to modify
Sandbox limits: 50 api.* calls per execution, 128 MB memory, 100 KB max code size, `limit` max 100 on any method with a `limit` param. Pure JS only — no require/import/fs/net/process (see constellation://docs/guide for full restrictions).
IMPORTANT: The `cwd` parameter is required — always set it to the target project directory path.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"nikolai-vysotskyi-trace-mcp": {
"command": "npx",
"args": [
"-y",
"trace-mcp"
]
}
}
}
{
"mcpServers": {
"constellation": {
"command": "npx",
"args": [
"-y",
"@constellationdev/mcp@latest"
],
"env": {
"CONSTELLATION_ACCESS_KEY": "YOUR_CONSTELLATION_ACCESS_KEY_HERE"
}
}
}
}