Evidence-first, LLM-augmented static code analysis: graph indexing, MCP server, audit workflows
Project description
llm-sca-tooling
Evidence-first, LLM-augmented static code analysis.
llm-sca-tooling gathers typed evidence from your repository — AST symbols,
call graphs, SARIF alerts, tests, runtime traces — grades it
(parser > analyser > heuristic > unknown), and only then lets an LLM reason
over the graded context. Findings carry their evidence grade; the tool never
upgrades confidence on its own, and it never edits your source. Humans decide
on remediation.
Five product surfaces
- MCP server — the primary integration surface: 45+ tools, 14 resources, 12 prompts over stdio or Streamable HTTP. Point Claude Code (or any MCP client) at it and ask questions about your repository with evidence-graded answers.
- Workflow orchestrator — bug resolve, patch review, SAST alert repair, implementation check (spec-vs-code compliance), and fault localisation. Every run produces a structured report, a run record, and a harness condition sheet.
- Evaluation harness — a T1–T4 benchmark ladder with calibration reports; T1 runs in null mode (no LLM) and gates every CI check.
- Operational harness plane — run records, incident tracking, trajectory memory with experience replay, operational reviews, release gates.
- Operational guardrails — permission profiles, doom-loop and budget monitoring, governance-drift checks, privacy redaction, session replay.
Install
pipx install llm-sca-tooling # CLI + MCP server
# optional capabilities:
pipx inject llm-sca-tooling fastembed # semantic retrieval (embeddings)
pipx inject llm-sca-tooling anthropic # live LLM boundaries (llm_mode)
or in a project:
pip install "llm-sca-tooling[embeddings,llm]"
Graph indexing uses universal-ctags (apt install universal-ctags /
brew install universal-ctags).
Quickstart
llm-sca-tooling config validate
llm-sca-tooling mcp serve --transport stdio # start the MCP server
Register with Claude Code:
claude mcp add llm-sca-tooling -- llm-sca-tooling mcp serve
Then, from your MCP client:
register_repo(repo_path="/path/to/repo")
graph_build(repo_path="/path/to/repo") # async — poll task_status
get_relevant_files(issue_text="NullPointerException in UserService.authenticate")
run_implementation_check(spec="<your architecture doc>", task=true)
run_issue_resolution(issue_text="<bug report>")
LLM mode
Workflows run in null mode by default — deterministic heuristics only,
suitable for CI. With the llm extra installed and ANTHROPIC_API_KEY
exported, pass llm_mode: true to run_implementation_check to enable the
LLM boundaries (clause grounding, contract generation). Runs degrade to null
mode when no provider is available and report llm_mode_active so a degraded
run is never mistaken for an LLM-graded one. Model selection via
LLM_SCA_MODEL (default claude-opus-4-8).
Evidence hierarchy
| Grade | Source | Confidence |
|---|---|---|
parser |
ctags AST, language servers, exact SARIF locations | High |
analyser |
dataflow, cross-file call graph | Medium-high |
heuristic |
pattern matching, keyword search, LLM-classified groundings | Medium |
unknown |
no hard evidence — reported honestly, never auto-passed | Low |
Every LLM-derived artefact is fail-closed: unparseable output degrades to the
deterministic null path, citations are filtered to evidence actually
provided, generated predicates must compile before they count, and LLM
groundings carry a derivation="llm" audit field.
Governance
Development of this repository is governed by AGENTS.md: hard
constraints (no secrets, write allowlists, deny-by-default egress), a
verify-before-commit gate (make verify), live session telemetry, and
harness condition sheets for every evaluation and release run.
Documentation
- Installation · Quickstart · Architecture
- Evaluation guide · Harness setup · Plugin authoring · Incident response
- CHANGELOG
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llm_sca_tooling-0.12.0.tar.gz.
File metadata
- Download URL: llm_sca_tooling-0.12.0.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e4abaffbe672a8d5b699f0928fd1051e8fb39f01621f47c1e9bc19a05fcfad9
|
|
| MD5 |
1de5005872126b1e1d54638279a091da
|
|
| BLAKE2b-256 |
641ba8e6cfd201b803dc039c1f0bd6bbda861ab99b76ee9934a2c28d160a1c97
|
File details
Details for the file llm_sca_tooling-0.12.0-py3-none-any.whl.
File metadata
- Download URL: llm_sca_tooling-0.12.0-py3-none-any.whl
- Upload date:
- Size: 529.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b366c2f7638614cc9cc415af524fba3add0ca090c5fc184a7b4586773a65cbbe
|
|
| MD5 |
6fed3f10007954ecf2a852d5772bdfcb
|
|
| BLAKE2b-256 |
360fa81f90e956ebcd74fde580c46c1cbfa4d1a6355bcb2b8938e71b57075501
|