# candor [Health: Active]

**Category:** 🧬 Biology & Bioinformatics  
**Repository:** https://github.com/tombaldwin/candor-ts  
**GitHub Stars:** 3  
**npm Downloads (last month):** 4311  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/candor

## Description
Per-function effect analysis for agents: blast radius, what reaches the network, gate verdicts.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "candor": {
    "command": "npx",
    "args": ["-y","candor-ts"]
  }
}
```

## Documentation

## What candor MCP server does

candor MCP server gives coding agents a read-only interface to candor-ts analysis data. candor-ts uses the TypeScript compiler API to resolve calls and calculates the effects reachable from each function, including effects inherited through call chains that cross files. Recognized effect categories include `Net`, `Fs`, `Db`, `Exec`, `Env`, and `Clock`.

The resulting report records function-level effects, a call graph, and literal details where static analysis can determine them. Network calls can carry host information, database calls can carry table information, executable commands can carry command details, and filesystem operations can carry path-shaped values. These details support architectural checks such as keeping a domain layer away from network access or limiting a service to approved tables.

The analysis also marks unresolved behavior as `Unknown` rather than treating it as pure. Callback values, `any`-typed callees, and other unresolved calls can therefore remain visible to an agent reviewing a report.

## How it works

A separate candor-ts scan produces `.candor/report.json` and `.callgraph.json` for a project. The scan honors `tsconfig.json` and excludes tests. The MCP layer exposes the report’s read-only query surface so an agent can inspect existing analysis rather than run mutations against the source tree.

Available query operations cover several review tasks:

- Show the effects associated with a function, using the report’s function-name matching rules.
- Find direct effect sources and functions that inherit those effects transitively.
- List transitive callers to estimate a function’s blast radius.
- Summarize effects by module.
- Show boundary-effect containment and dispersion.
- Rank `Unknown` sources by the blast radius they can affect.
- Evaluate a hypothetical added effect against a policy.
- Compare a report with a baseline and identify effect changes.
- Apply a policy to an existing report without rescanning its source.

Function keys use module-qualified names such as `src.db.save`. Namespace segments are retained in function and call-graph keys, which allows policies to target namespaces. The report also preserves an `invisible` list for transitively reached packages that the classifier does not classify or mark as reviewed-pure.

## Limitations and notes

candor is a static, curated classifier rather than a complete runtime-effects inventory. An unlisted npm package contributes no inferred effect, although the report identifies calls to packages outside the classifier. Node core is handled as a denylist: an unclassified native member is reported as `Unknown` instead of silently reading as pure.

The MCP interface is read-only. Policy gates and baseline guards belong to the scan and command-line surfaces: a policy violation exits with status 1, while an unreadable or unusable policy or baseline exits with status 2. The separate report comparison can disclose a producing-build mismatch, whereas the scan-time baseline guard fails closed for an invalid baseline. Reports and baselines should therefore be interpreted with their producing engine build in mind.

Results describe what static resolution can establish. Runtime-computed hosts, tables, commands, and paths are not turned into literal surfaces, and unresolved calls remain uncertainty rather than evidence of purity.

_Full upstream README: https://allmcps.com/mcp/candor/readme_

