@neat.is/mcp 0.7.5 → 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.
- package/README.md +78 -0
- 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.
|
|
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.
|
|
48
|
+
"@neat.is/types": "^0.7.6",
|
|
49
49
|
"zod": "^3.23.8"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|