Labsco
MCP SERVER

Code Reason

by ph0smet

Nine program-analysis tools that let a coding agent trace data flow, walk the call graph, and return a full source-to-sink evidence chain instead of grepping for one.

Code Intelligence & Repository Indexing
Summary
The vulnerability scanner is the least interesting thing in here.

The author calls the catalog scan tools a convenience baseline for first-pass triage; the value is in the navigation and data-flow primitives the agent composes itself to answer whole-program questions. Two things to weigh before wiring it in: the project is v0.1.0 and research-grade, with the build pinned to CPG main-SNAPSHOT until Fraunhofer publishes a stable 11.x to Maven Central, and only Java and Python are turned on — other languages mean adding a dependency in build.gradle.kts and rebuilding.

What it is

Code-reason gives a coding agent real program-analysis primitives: data-flow reachability, call-graph traversal and evidence-chain construction. It parses the target codebase once into a code property graph, then answers queries against that graph, returning locations, paths, confidence and evidence rather than files to read. Where a traditional SAST tool produces a findings report for a human to triage, this exposes the analysis primitives so the agent drives its own investigation. Built on Fraunhofer AISEC's Code Property Graph and the Kotlin MCP SDK; Apache 2.0.

What you get
  • One analysis pass per service, then unlimited cheap queries — reason_analyze_project builds the graph, every other tool reads it
  • The places external input enters the codebase: HTTP handlers, CLI entries and framework hooks — reason_find_entry_points
  • Call-graph traversal in both directions — who calls this function, and what this function calls — reason_find_callers, reason_find_callees
  • Forward and backward reachability over the data-flow graph — reason_query_dataflow
  • The complete source-to-sink path between any two points, with intermediate steps and code context — reason_trace_taint_path
  • A catalog-driven first pass over SQL injection, XSS and command injection, the list of built-in checks behind it, and the description and remediation for any finding it returns — reason_scan_injections, reason_list_supported_checks, reason_get_finding_detail
  • Compact structured answers instead of file dumps: a call-graph query returns the reachable methods as JSON
  • Java and Python are supported; other CPG frontends (C/C++, Go, TypeScript, JVM, LLVM, Ruby) can be enabled by adding the matching cpg-language-* dependency
Requirements

JDK 21, and no account or credentials of any kind. You build it yourself: ./gradlew installDist puts a launcher at build/install/code-reason/bin/code-reason, which your client runs with --stdio. The build pulls CPG artifacts from Maven Central and Sonatype Central Snapshots, and needs no sibling checkouts. Restart your client and the reason_* tools appear in its tool list.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary