A side-by-side look at the Constellation and Trace MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Constellation for developer tools work as a local process; choose Trace MCP 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 | 56/100 · Good | 63/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | No auth required |
| Pricing | Not declared | Free |
| Required env vars | CONSTELLATION_ACCESS_KEY | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 3 | 193 |
| Directory activity | 2 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 1 | Not listed |
| Full listing | View Constellation | View Trace MCP |
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.No tool names declared yet. Check the project README from the listing page.
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": {
"constellation": {
"command": "npx",
"args": [
"-y",
"@constellationdev/mcp@latest"
],
"env": {
"CONSTELLATION_ACCESS_KEY": "YOUR_CONSTELLATION_ACCESS_KEY_HERE"
}
}
}
}
{
"mcpServers": {
"nikolai-vysotskyi-trace-mcp": {
"command": "npx",
"args": [
"-y",
"trace-mcp"
]
}
}
}