@gwdn/nexus-mcp 0.10.2 → 0.10.4
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 +42 -7
- package/dist/tools/classify-document.d.ts +1 -0
- package/dist/tools/classify-document.d.ts.map +1 -1
- package/dist/tools/classify-document.js +1 -0
- package/dist/tools/classify-document.js.map +1 -1
- package/dist/tools/ingest-document.d.ts +2 -0
- package/dist/tools/ingest-document.d.ts.map +1 -1
- package/dist/tools/ingest-document.js +6 -0
- package/dist/tools/ingest-document.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -48,7 +48,7 @@ Nexus API (nexus.gatewarden.eu)
|
|
|
48
48
|
Supabase (PostgreSQL + RLS)
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
### Layer 1 -- Knowledge Access (
|
|
51
|
+
### Layer 1 -- Knowledge Access (6 tools)
|
|
52
52
|
|
|
53
53
|
| Tool | Description |
|
|
54
54
|
|------|-------------|
|
|
@@ -57,18 +57,19 @@ Supabase (PostgreSQL + RLS)
|
|
|
57
57
|
| `kb_get` | Retrieve a specific entity by type and ID |
|
|
58
58
|
| `kb_related` | Find entities related to a given entity |
|
|
59
59
|
| `project_list` | List accessible projects |
|
|
60
|
+
| `project_update` | Patch a project's readme and/or description (partial update) |
|
|
60
61
|
|
|
61
|
-
### Layer 2 -- Coordination (
|
|
62
|
+
### Layer 2 -- Coordination (48 tools)
|
|
62
63
|
|
|
63
64
|
| Group | Tools |
|
|
64
65
|
|-------|-------|
|
|
65
|
-
| **Projects** | `project_update` |
|
|
66
|
-
| **Sessions** | `session_create`, `session_close`, `session_list`, `session_append` |
|
|
67
|
-
| **Tasks** | `task_create`, `task_update`, `task_note`, `task_delete`, `task_list` |
|
|
68
66
|
| **Vault Letters** | `vl_create`, `vl_reply`, `vl_inbox`, `vl_outbox`, `vl_ack` |
|
|
67
|
+
| **Dispatches** | `dispatch_create`, `dispatch_reply`, `dispatch_inbox`, `dispatch_outbox`, `dispatch_ack`, `dispatch_assign`, `dispatch_forward`, `dispatch_resolve`, `dispatch_close`, `dispatch_sweep`, `dispatch_get`, `dispatch_related` |
|
|
68
|
+
| **Tasks** | `task_create`, `task_update`, `task_note`, `task_list`, `task_delete` |
|
|
69
69
|
| **Documents** | `doc_ingest`, `doc_list`, `doc_classify`, `doc_update`, `doc_delete` |
|
|
70
|
-
| **
|
|
70
|
+
| **Sessions** | `session_create`, `session_append`, `session_close`, `session_list` |
|
|
71
71
|
| **Decision Comments** | `dc_add`, `dc_list` |
|
|
72
|
+
| **Skills** | `sk_list`, `sk_get`, `sk_create`, `sk_update`, `sk_activate`, `sk_assign`, `sk_unassign`, `sk_export` |
|
|
72
73
|
| **Directives** | `pd_list`, `pd_get`, `pd_create`, `pd_update`, `pd_delete`, `pd_toggle`, `directive_export` |
|
|
73
74
|
|
|
74
75
|
### Layer 3 -- Governance (3 tools)
|
|
@@ -108,6 +109,40 @@ identity and enforces project-scoped RBAC.
|
|
|
108
109
|
|
|
109
110
|
## Development
|
|
110
111
|
|
|
112
|
+
### Recommended: Devbox
|
|
113
|
+
|
|
114
|
+
We recommend using [Devbox](https://www.jetify.com/devbox) to get a fully reproducible, isolated development environment with all required tools pre-installed (Node.js 22, git, ripgrep, tmux, lazygit, and more).
|
|
115
|
+
|
|
116
|
+
**Install Devbox** (once, system-wide):
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
curl -fsSL https://get.jetify.com/devbox | bash
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Enter the dev shell:**
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
devbox shell
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
This drops you into a Nix-managed shell with every tool pinned to the versions declared in `devbox.json`. No global installs, no version drift.
|
|
129
|
+
|
|
130
|
+
**Available Devbox scripts:**
|
|
131
|
+
|
|
132
|
+
| Script | Command | Description |
|
|
133
|
+
|--------|---------|-------------|
|
|
134
|
+
| `dev` | `devbox run dev` | Start MCP server via tsx (watch mode) |
|
|
135
|
+
| `build` | `devbox run build` | Compile TypeScript to `dist/` |
|
|
136
|
+
| `test` | `devbox run test` | Run full test suite |
|
|
137
|
+
| `typecheck` | `devbox run typecheck` | TypeScript type-check only |
|
|
138
|
+
| `validate` | `devbox run validate` | Full pre-commit validation (typecheck + tests) |
|
|
139
|
+
| `check-local` | `devbox run check-local` | Local environment health check |
|
|
140
|
+
| `sec-scan` | `devbox run sec-scan` | Security scan (gitleaks + audit) |
|
|
141
|
+
| `tmux-2w` | `devbox run tmux-2w` | Open 2-window tmux workspace |
|
|
142
|
+
| `tmux-3w` | `devbox run tmux-3w` | Open 3-window tmux workspace |
|
|
143
|
+
|
|
144
|
+
> **Without Devbox**, you can still run commands directly:
|
|
145
|
+
|
|
111
146
|
```bash
|
|
112
147
|
npm install
|
|
113
148
|
npm run typecheck # TypeScript check
|
|
@@ -126,7 +161,7 @@ nexus-mcp/
|
|
|
126
161
|
│ ├── auth.ts # Token-based identity resolution via Nexus API
|
|
127
162
|
│ ├── nexus-api.ts # HTTP client for Nexus API (nexusGet, nexusPost)
|
|
128
163
|
│ ├── machine-id.ts # Machine identification for session metadata
|
|
129
|
-
│ ├── tools/ #
|
|
164
|
+
│ ├── tools/ # 27 tool modules (62 tools total)
|
|
130
165
|
│ └── __tests__/ # 12 test files (127 unit + 34 E2E)
|
|
131
166
|
├── LICENSE # Apache-2.0
|
|
132
167
|
├── SECURITY.md # Security policy
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify-document.d.ts","sourceRoot":"","sources":["../../src/tools/classify-document.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"classify-document.d.ts","sourceRoot":"","sources":["../../src/tools/classify-document.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,sBAAsB;;;;;;;;;;;CAalC,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB;;;;;;;;;;;;GAwBhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify-document.js","sourceRoot":"","sources":["../../src/tools/classify-document.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACpE,cAAc,EAAE,CAAC;SACd,IAAI,CAAC;QACJ,cAAc;QACd,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,WAAW;QACX,SAAS;
|
|
1
|
+
{"version":3,"file":"classify-document.js","sourceRoot":"","sources":["../../src/tools/classify-document.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACpE,cAAc,EAAE,CAAC;SACd,IAAI,CAAC;QACJ,cAAc;QACd,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,WAAW;QACX,SAAS;QACT,mBAAmB;KACpB,CAAC;SACD,QAAQ,CAAC,qCAAqC,CAAC;CACnD,CAAA;AAQD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAA0B;IAC/D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,EAAE;QACnD,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvD;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;SACtE;KACF,CAAA;AACH,CAAC"}
|
|
@@ -13,6 +13,7 @@ export declare const ingestDocumentSchema: {
|
|
|
13
13
|
source: z.ZodOptional<z.ZodString>;
|
|
14
14
|
source_url: z.ZodOptional<z.ZodString>;
|
|
15
15
|
agent_id: z.ZodOptional<z.ZodString>;
|
|
16
|
+
parent_id: z.ZodOptional<z.ZodString>;
|
|
16
17
|
};
|
|
17
18
|
type IngestDocumentArgs = {
|
|
18
19
|
project_id: string;
|
|
@@ -22,6 +23,7 @@ type IngestDocumentArgs = {
|
|
|
22
23
|
source_url?: string;
|
|
23
24
|
user_id: string;
|
|
24
25
|
agent_id?: string;
|
|
26
|
+
parent_id?: string;
|
|
25
27
|
};
|
|
26
28
|
export declare function ingestDocument(args: IngestDocumentArgs): Promise<{
|
|
27
29
|
content: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-document.d.ts","sourceRoot":"","sources":["../../src/tools/ingest-document.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"ingest-document.d.ts","sourceRoot":"","sources":["../../src/tools/ingest-document.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,oBAAoB;;;;;;;;CAoBhC,CAAA;AAED,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB;;;;;;;;;;;;GA6B5D"}
|
|
@@ -18,6 +18,11 @@ export const ingestDocumentSchema = {
|
|
|
18
18
|
.describe('Source identifier (e.g. "mcp-agent", "research", "session-extract")'),
|
|
19
19
|
source_url: z.string().url().optional().describe('Source URL if applicable'),
|
|
20
20
|
agent_id: z.string().max(200).optional().describe('Agent identifier if applicable'),
|
|
21
|
+
parent_id: z
|
|
22
|
+
.string()
|
|
23
|
+
.uuid()
|
|
24
|
+
.optional()
|
|
25
|
+
.describe('UUID of the parent ingest item. Used to create mitigation reports as children of scan reports. Max 1 level of nesting.'),
|
|
21
26
|
};
|
|
22
27
|
export async function ingestDocument(args) {
|
|
23
28
|
const result = await nexusPost('/api/mcp/documents', {
|
|
@@ -28,6 +33,7 @@ export async function ingestDocument(args) {
|
|
|
28
33
|
source: args.source,
|
|
29
34
|
source_url: args.source_url,
|
|
30
35
|
agent_id: args.agent_id,
|
|
36
|
+
parent_id: args.parent_id,
|
|
31
37
|
});
|
|
32
38
|
if (!result.ok) {
|
|
33
39
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-document.js","sourceRoot":"","sources":["../../src/tools/ingest-document.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC7E,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qEAAqE,CACtE;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"ingest-document.js","sourceRoot":"","sources":["../../src/tools/ingest-document.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC7E,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qEAAqE,CACtE;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACnF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,wHAAwH,CACzH;CACJ,CAAA;AAaD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAwB;IAC3D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,EAAE;QACnD,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvD;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;SACtE;KACF,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED