project-graph-mcp 2.4.0 → 2.4.2
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 +25 -18
- package/package.json +1 -1
- package/src/network/server.js +1 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|

|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
The web dashboard has moved to [**mcp-agent-portal**](https://github.com/rnd-pro/mcp-agent-portal) — a unified MCP aggregator that includes project-graph-mcp as a child server with full visual UI.
|
|
14
14
|
|
|
15
15
|
> [!TIP]
|
|
16
16
|
> **18 MCP tools, zero config.** Add one line to your MCP config and the server downloads itself on the next IDE restart.
|
|
@@ -240,18 +240,13 @@ db({ action: "dead_tables", path: "src/" })
|
|
|
240
240
|
|
|
241
241
|
### Web Dashboard
|
|
242
242
|
|
|
243
|
-
|
|
243
|
+
> [!NOTE]
|
|
244
|
+
> The web dashboard has moved to [**mcp-agent-portal**](https://github.com/rnd-pro/mcp-agent-portal). Install it with `npx mcp-agent-portal` to get the full visual UI: file tree, code viewer, dependency graph, live monitoring, and marketplace.
|
|
244
245
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
- **Health panel** — analysis results
|
|
250
|
-
- **Live monitor** — real-time agent activity via WebSocket
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
With the optional gateway, all projects are accessible under `http://project-graph.local/{project-name}/`.
|
|
246
|
+
```bash
|
|
247
|
+
# Legacy serve command auto-redirects to mcp-agent-portal:
|
|
248
|
+
npx project-graph-mcp serve .
|
|
249
|
+
```
|
|
255
250
|
|
|
256
251
|
### Compression Metrics
|
|
257
252
|
|
|
@@ -364,18 +359,29 @@ npx project-graph-mcp help # All commands
|
|
|
364
359
|
|
|
365
360
|
## MCP Ecosystem
|
|
366
361
|
|
|
367
|
-
Best used
|
|
362
|
+
Best used as part of [**mcp-agent-portal**](https://github.com/rnd-pro/mcp-agent-portal) — a unified MCP aggregator that combines all RND-PRO servers behind a single config entry:
|
|
363
|
+
|
|
364
|
+
```json
|
|
365
|
+
{
|
|
366
|
+
"mcpServers": {
|
|
367
|
+
"agent-portal": {
|
|
368
|
+
"command": "npx",
|
|
369
|
+
"args": ["-y", "mcp-agent-portal"]
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
> [!TIP]
|
|
376
|
+
> One entry replaces separate configs for project-graph-mcp, agent-pool-mcp, and any other child servers.
|
|
368
377
|
|
|
369
|
-
|
|
370
|
-
|-------|-------------------|----------------|
|
|
371
|
-
| **Primary IDE agent** | Navigates codebase, runs analysis | Delegates tasks, consults peer |
|
|
372
|
-
| **Gemini CLI workers** | Available as MCP tool inside workers | Executes delegated tasks |
|
|
378
|
+
Also works standalone or alongside [**agent-pool-mcp**](https://www.npmjs.com/package/agent-pool-mcp) — multi-agent task delegation:
|
|
373
379
|
|
|
374
380
|
```bash
|
|
375
381
|
# Generate configs with correct paths for both servers:
|
|
376
382
|
npx -y project-graph-mcp config
|
|
377
383
|
npx -y agent-pool-mcp config
|
|
378
|
-
#
|
|
384
|
+
# Or use mcp-agent-portal which bundles both.
|
|
379
385
|
```
|
|
380
386
|
|
|
381
387
|
> [!IMPORTANT]
|
|
@@ -391,6 +397,7 @@ npx -y agent-pool-mcp config
|
|
|
391
397
|
- [ROADMAP.md](docs/ROADMAP.md) — Feature roadmap and backlog
|
|
392
398
|
|
|
393
399
|
## Related Projects
|
|
400
|
+
- [mcp-agent-portal](https://github.com/rnd-pro/mcp-agent-portal) — Unified MCP aggregator + web dashboard + AI agent runtime
|
|
394
401
|
- [agent-pool-mcp](https://github.com/rnd-pro/agent-pool-mcp) — Multi-agent orchestration via Gemini CLI
|
|
395
402
|
- [Symbiote.js](https://github.com/symbiotejs/symbiote.js) — Isomorphic Reactive Web Components framework
|
|
396
403
|
- [JSDA-Kit](https://github.com/rnd-pro/jsda-kit) — SSG/SSR toolkit for modern web applications
|
package/package.json
CHANGED
package/src/network/server.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// @ctx server.ctx
|
|
3
|
-
import e from"node:path";import t from"node:fs";let _v="0.0.0";try{const _d=e.dirname(new URL(import.meta.url).pathname);_v=JSON.parse(t.readFileSync(e.join(_d,"..","..","package.json"),"utf8")).version}catch{}if(process.argv[1]&&(process.argv[1].endsWith("server.js")||process.argv[1].endsWith("project-graph-mcp"))){const[,,o,...r]=process.argv;if("serve"===o){const t=r[0]||".";console.log("\n [redirect] UI has moved to 'agent-portal'.");console.log(" Running: npx agent-portal\n");const{spawn:s}=await import("child_process");s("npx",["agent-portal"],{stdio:"inherit",cwd:e.resolve(t)})}else if(o){const{runCLI:e}=await import("../cli/cli.js");e(o,r)}else if(process.env.PROJECT_GRAPH_BACKEND){const{startStdioServer:e}=await import("../mcp/mcp-server.js");console.error("Starting Project Graph MCP (stdio, direct)..."),e()}else{const{setRoots:e,getWorkspaceRoot:o}=await import("../core/workspace.js"),{ensureBackend:r,startStdioProxy:s}=await import("./backend-lifecycle.js"),{createInterface:i}=await import("node:readline"),n=t.createWriteStream("/tmp/pg-init-debug.log",{flags:"a"});n.write(`\n=== NEW SESSION ${(new Date).toISOString()} ===\n`);
|
|
3
|
+
import e from"node:path";import t from"node:fs";let _v="0.0.0";try{const _d=e.dirname(new URL(import.meta.url).pathname);_v=JSON.parse(t.readFileSync(e.join(_d,"..","..","package.json"),"utf8")).version}catch{}if(process.argv[1]&&(process.argv[1].endsWith("server.js")||process.argv[1].endsWith("project-graph-mcp"))){const[,,o,...r]=process.argv;if("serve"===o){const t=r[0]||".";console.log("\n [redirect] UI has moved to 'mcp-agent-portal'.");console.log(" Running: npx mcp-agent-portal\n");const{spawn:s}=await import("child_process");s("npx",["mcp-agent-portal"],{stdio:"inherit",cwd:e.resolve(t)})}else if(o){const{runCLI:e}=await import("../cli/cli.js");e(o,r)}else if(process.env.PROJECT_GRAPH_BACKEND){const{startStdioServer:e}=await import("../mcp/mcp-server.js");console.error("Starting Project Graph MCP (stdio, direct)..."),e()}else{const{setRoots:e,getWorkspaceRoot:o}=await import("../core/workspace.js"),{ensureBackend:r,startStdioProxy:s}=await import("./backend-lifecycle.js"),{createInterface:i}=await import("node:readline"),n=t.createWriteStream("/tmp/pg-init-debug.log",{flags:"a"});n.write(`\n=== NEW SESSION ${(new Date).toISOString()} ===\n`);
|
|
4
4
|
const c=i({input:process.stdin,terminal:!1}),a=[];
|
|
5
5
|
let l=!1,p=null,d=null;
|
|
6
6
|
const startProxy=async e=>{if(!l){l=!0,c.removeAllListeners("line"),c.close(),n.write(`RESOLVED: ${e}\n`),n.end();try{const t=await r(e);console.error(`[project-graph] Connected to backend on port ${t} (project: ${e})`),s(t,a)}catch(e){console.error(`[project-graph] Singleton failed (${e.message}), falling back to direct stdio`);const{startStdioServer:t}=await import("../mcp/mcp-server.js");t(a)}}};c.on("line",t=>{try{const r=JSON.parse(t);if(n.write(`IN: ${r.method||`response:${r.id}`}\n`),"initialize"===r.method){d=r.id,r.params?.roots?.length>0&&(e(r.params.roots),n.write("ROOTS from initialize.params\n"));
|