* Optional allowlist of exposed tools, parsed from the CODEGRAPH_MCP_TOOLS * env var (comma-separated short names, e.g. "trace,search,node,context"). * Unset/empty → every tool is exposed. Lets an operator (or an A/B harness) * trim the tool surface without rebuilding the client config; the
()
| 1460 | * Matching is on the short form, so "node" and "codegraph_node" both work. |
| 1461 | */ |
| 1462 | private toolAllowlist(): Set<string> | null { |
| 1463 | const raw = process.env.CODEGRAPH_MCP_TOOLS; |
| 1464 | if (!raw || !raw.trim()) return null; |
| 1465 | const short = (s: string) => s.trim().replace(/^codegraph_/, ''); |
| 1466 | const set = new Set(raw.split(',').map(short).filter(Boolean)); |
| 1467 | return set.size ? set : null; |
| 1468 | } |
| 1469 | |
| 1470 | /** Whether a tool name passes the CODEGRAPH_MCP_TOOLS allowlist (if any). */ |
| 1471 | private isToolAllowed(name: string): boolean { |
no outgoing calls
no test coverage detected