@neat.is/mcp 0.7.4 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +78 -0
  2. package/package.json +2 -2
package/README.md ADDED
@@ -0,0 +1,78 @@
1
+ # @neat.is/mcp
2
+
3
+ The MCP server that puts NEAT's fused code graph in front of your coding agent.
4
+
5
+ [NEAT](https://github.com/neat-technologies/neat) keeps a live semantic graph of a software system — static code (`EXTRACTED` via tree-sitter) and runtime behavior (`OBSERVED` from OpenTelemetry) fused into one model. This package exposes that graph over the [Model Context Protocol](https://modelcontextprotocol.io) as a stdio server, so an agent can ask about dependencies, blast radius, root cause, and where declared intent diverges from production traffic — and get an answer with provenance on every edge, instead of grepping files and guessing.
6
+
7
+ ## It needs a running NEAT daemon
8
+
9
+ This server is a **bridge**, not a standalone graph. It talks to a NEAT daemon over the daemon's local REST API; on its own, with no daemon behind it, its tools have nothing to answer from. So the order matters: **start NEAT in your project first, then wire in this server.**
10
+
11
+ ## Quickstart
12
+
13
+ 1. **Start NEAT in your project.** From your project root:
14
+
15
+ ```bash
16
+ npx neat.is
17
+ ```
18
+
19
+ This extracts the static graph, wires in OpenTelemetry, and starts the daemon (REST on `http://localhost:8080`). Leave it running, and run your app so the `OBSERVED` edges populate. See the [main README](https://github.com/neat-technologies/neat) for the full flow and a global install (`npm i -g neat.is`).
20
+
21
+ 2. **Wire this server into your MCP client.** Most clients take a `command` + `args`:
22
+
23
+ ```json
24
+ {
25
+ "mcpServers": {
26
+ "neat": {
27
+ "command": "npx",
28
+ "args": ["-y", "@neat.is/mcp"],
29
+ "env": { "NEAT_CORE_URL": "http://localhost:8080" }
30
+ }
31
+ }
32
+ }
33
+ ```
34
+
35
+ With a global install, the `neat-mcp` binary is equivalent to `npx -y @neat.is/mcp`. In Claude Code: `claude mcp add neat -- neat-mcp`.
36
+
37
+ ## How it finds the daemon
38
+
39
+ The base URL resolves in this order:
40
+
41
+ 1. **`NEAT_CORE_URL`** (or the `NEAT_API_URL` alias) if set — this is how you pin the server at a specific or hosted daemon.
42
+ 2. Otherwise, the nearest `neat-out/daemon.json`, walking up from the working directory — so a server launched from inside a project finds that project's daemon and its REST port automatically.
43
+ 3. Otherwise, the default `http://localhost:8080`.
44
+
45
+ Setting `NEAT_CORE_URL` explicitly is the reliable choice when the client launches the server from a directory other than your project.
46
+
47
+ ## The tools
48
+
49
+ Every result is a **graph fact**, not a live call to the underlying system, and carries a provenance — `OBSERVED`, `INFERRED`, `EXTRACTED`, or `STALE` — plus a confidence, so the agent knows how far to trust it.
50
+
51
+ **Graph & traversal**
52
+ - `get_dependencies` — what a node depends on (static structure).
53
+ - `get_observed_dependencies` — the same, but from runtime traffic.
54
+ - `get_blast_radius` — everything a change to a node could reach.
55
+ - `get_root_cause` — trace a failure back through the graph.
56
+ - `semantic_search` — find nodes by meaning, not just name.
57
+ - `get_graph_diff` — how the graph changed between two points.
58
+
59
+ **Divergence & provenance**
60
+ - `get_divergences` — where declared code and observed reality disagree.
61
+ - `check_policies` / `get_policy_violations` — evaluate and list policy breaches over the graph.
62
+ - `get_incident_history` — past failures recorded against nodes.
63
+ - `get_recent_stale_edges` — edges that were `OBSERVED` and have gone quiet.
64
+
65
+ **Instrumentation**
66
+ - `neat_describe_project_instrumentation` — what's wired for OTel and what isn't.
67
+ - `neat_list_uninstrumented` — code the runtime layer can't yet see.
68
+ - `neat_lookup_instrumentation` — find the instrumentation recipe for a dependency.
69
+ - `neat_dry_run_extension` / `neat_apply_extension` / `neat_rollback_extension` — preview, apply, and undo an instrumentation change.
70
+
71
+ ## Links
72
+
73
+ - [NEAT on GitHub](https://github.com/neat-technologies/neat) — the CLI, the daemon, and how the graph is built.
74
+ - [Model Context Protocol](https://modelcontextprotocol.io)
75
+
76
+ ## License
77
+
78
+ Business Source License 1.1 (BUSL-1.1) — see the [repository](https://github.com/neat-technologies/neat).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neat.is/mcp",
3
- "version": "0.7.4",
3
+ "version": "0.7.6",
4
4
  "description": "NEAT MCP server: exposes graph queries to AI agents over stdio",
5
5
  "mcpName": "io.github.neat-technologies/neat",
6
6
  "license": "BUSL-1.1",
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@modelcontextprotocol/sdk": "^1.0.0",
48
- "@neat.is/types": "^0.7.4",
48
+ "@neat.is/types": "^0.7.6",
49
49
  "zod": "^3.23.8"
50
50
  },
51
51
  "devDependencies": {