@systemdox/mcp-server 0.1.48 → 0.1.50
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 +53 -11
- package/dist/cli.js +963 -357
- package/dist/http.js +1248 -732
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1341 -784
- package/dist/install-skill.js +10 -17
- package/dist/lib/api-client.d.ts +2 -3
- package/dist/lib/api-client.js +7 -14
- package/dist/lib/config.d.ts +4 -1
- package/dist/lib/config.js +1 -2
- package/dist/lib/context-builder.js +14 -7
- package/dist/lib/session-brief.d.ts +59 -0
- package/dist/lib/session-brief.js +174 -0
- package/dist/lib/skills.js +2 -1
- package/dist/lib/team-setup-files.d.ts +14 -1
- package/dist/lib/team-setup-files.js +43 -0
- package/dist/lib/team-setup-types.d.ts +18 -0
- package/dist/plugin-path.js +7 -14
- package/dist/server.d.ts +5 -1
- package/dist/server.js +3579 -0
- package/dist/setup-mcp.d.ts +66 -0
- package/dist/setup-mcp.js +630 -0
- package/dist/setup-team.d.ts +5 -1
- package/dist/setup-team.js +8 -14
- package/dist/sync-memory.js +29 -26
- package/dist/tools/document-graph.d.ts +87 -0
- package/dist/tools/get-change.d.ts +134 -0
- package/dist/tools/get-change.js +147 -0
- package/dist/tools/get-team-setup.d.ts +6 -0
- package/dist/tools/skills.js +3 -2
- package/dist/tools/team-setup.js +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -113,17 +113,19 @@ npx @systemdox/mcp-server setup
|
|
|
113
113
|
|
|
114
114
|
| Variable | Required | Default | Purpose |
|
|
115
115
|
|----------|----------|---------|---------|
|
|
116
|
-
| `SYSTEMDOX_API_KEY` |
|
|
116
|
+
| `SYSTEMDOX_API_KEY` | no | the key in `~/.claude/systemdox/credentials.json` | Your SystemDox API key. `setup` stores it in `~/.claude/systemdox/credentials.json` and nowhere else, so the server reads it there when this is not set |
|
|
117
|
+
| `SYSTEMDOX_WORKSPACE` | no | — | The workspace whose key to read when `credentials.json` holds several |
|
|
117
118
|
| `SYSTEMDOX_API_URL` | no | `https://api.puglieseweb.com/systemdox` | REST API base URL |
|
|
118
119
|
| `SYSTEMDOX_CACHE_TTL` | no | `300` | Response cache TTL (seconds) |
|
|
119
120
|
|
|
120
121
|
## Tools
|
|
121
122
|
|
|
122
123
|
Read: `get_checks`, `get_specs`, `get_docs`, `get_tech_stack`,
|
|
123
|
-
`get_planning_context`, `get_plan_board`, `
|
|
124
|
-
`get_prompt_templates
|
|
125
|
-
`
|
|
126
|
-
|
|
124
|
+
`get_planning_context`, `get_plan_board`, `get_change`, `get_context`,
|
|
125
|
+
`get_project_rules`, `get_prompt_templates`, `get_team_setup`, `get_document_links`,
|
|
126
|
+
`trace_document_path`, `get_graph_stats`. Write: `create_check`,
|
|
127
|
+
`update_spec`, `report_decision`, `create_project_rule`,
|
|
128
|
+
`create_prompt_template`. Write tools require an API key with `editor`+ role.
|
|
127
129
|
|
|
128
130
|
Skills (ADR-216): `publish_skill`, `list_skills`, `install_skill`. A Claude
|
|
129
131
|
Code skill folder (`SKILL.md` plus its references and scripts) is published
|
|
@@ -140,6 +142,34 @@ npx -y @systemdox/mcp-server install-skill <name> [--version n] [--target dir] [
|
|
|
140
142
|
Exit codes: `0` installed, `1` usage / no key / API error, `2` refused because
|
|
141
143
|
files there were edited.
|
|
142
144
|
|
|
145
|
+
### What every session is told (ADR-223)
|
|
146
|
+
|
|
147
|
+
Installing this server is enough for a computer to know what its team uses. When
|
|
148
|
+
a session connects, the server answers with `instructions`, which Claude Code puts
|
|
149
|
+
in the session's system prompt with no tool call:
|
|
150
|
+
|
|
151
|
+
- the workspace, and to call `get_context` before writing code;
|
|
152
|
+
- each skill your team put in the team setup, with when to use it;
|
|
153
|
+
- what this computer lacks. A missing or older skill is installed with
|
|
154
|
+
`install_skill`, which writes files and runs nothing. A file you edited is never
|
|
155
|
+
replaced, and a folder that did not come from SystemDox is left alone.
|
|
156
|
+
|
|
157
|
+
Hooks, MCP servers, team instructions and memory run or load by themselves, so they
|
|
158
|
+
still wait for you: `setup`, in your own terminal, below. An agent never answers its
|
|
159
|
+
prompts. So does a team skill that is not plain (anything in its frontmatter beyond a
|
|
160
|
+
name and a description, files outside its own folders, or a `!`-command) or that sits
|
|
161
|
+
outside the default space: a session is told its name and not to install it. A skill may
|
|
162
|
+
not hold `.claude-plugin/`, which would make it a plugin. The hosted server cannot see
|
|
163
|
+
your disk, so it says how to check.
|
|
164
|
+
|
|
165
|
+
**`get_team_setup`** (both servers, read-only) answers the same question in full:
|
|
166
|
+
every skill, hook command and MCP server, and on your own computer what is missing
|
|
167
|
+
and what to do. Use it with a client that does not surface `instructions`.
|
|
168
|
+
|
|
169
|
+
If this computer has no key, or SystemDox refuses it, the server still connects and
|
|
170
|
+
tells the session what to do. See the words a session gets in the console, under
|
|
171
|
+
**Docs › Team setup › What every session is told**.
|
|
172
|
+
|
|
143
173
|
### Team setup (ADR-217)
|
|
144
174
|
|
|
145
175
|
Your workspace's Claude Code setup (hooks, MCP servers, agents, commands, the
|
|
@@ -172,8 +202,10 @@ One command sets up your computer, and the same command updates it:
|
|
|
172
202
|
npx -y @systemdox/mcp-server setup [--project <name>] [--dir <checkout>] [--yes] [--overwrite]
|
|
173
203
|
```
|
|
174
204
|
|
|
175
|
-
- It first writes the SystemDox MCP server into your AI tool's config,
|
|
176
|
-
|
|
205
|
+
- It first writes the SystemDox MCP server into your AI tool's config, without
|
|
206
|
+
your key: the key is stored once, in `~/.claude/systemdox/credentials.json`
|
|
207
|
+
(readable by you alone), and a key an earlier `setup` wrote into that config
|
|
208
|
+
is removed from it. Then, when your workspace has anything published, it checks that
|
|
177
209
|
Claude Code is 2.1.316 or later (`claude update` otherwise) and shows you
|
|
178
210
|
everything it will add: the marketplace entry for `~/.claude/settings.json`,
|
|
179
211
|
the plugin with every hook command and every MCP server's command or URL
|
|
@@ -181,9 +213,7 @@ npx -y @systemdox/mcp-server setup [--project <name>] [--dir <checkout>] [--yes]
|
|
|
181
213
|
its file count and folder, and the `autoMemoryDirectory` it will set. On an
|
|
182
214
|
update it shows only what changed, with a line diff for hooks and
|
|
183
215
|
instructions. Nothing changes until you answer `y`.
|
|
184
|
-
- Then, in this order:
|
|
185
|
-
`~/.claude/systemdox/credentials.json` (readable by you alone, and nowhere
|
|
186
|
-
else); the team instructions into `~/.claude/systemdox/<workspace>/CLAUDE.md`
|
|
216
|
+
- Then, in this order: the team instructions into `~/.claude/systemdox/<workspace>/CLAUDE.md`
|
|
187
217
|
(if you edited that file, it stops unless `--overwrite`); one marked import
|
|
188
218
|
block into `~/.claude/CLAUDE.md`; one `extraKnownMarketplaces` entry,
|
|
189
219
|
`systemdox-<workspace>`, into `~/.claude/settings.json` (nothing else in
|
|
@@ -255,6 +285,18 @@ Both read your key from `SYSTEMDOX_API_KEY`, then from
|
|
|
255
285
|
alone). A key is never written into a settings file, a plugin entry or a
|
|
256
286
|
command line.
|
|
257
287
|
|
|
288
|
+
### `get_change` (ADR-218)
|
|
289
|
+
|
|
290
|
+
`get_change { repo, slug }` reads one change, a `specs/changes/<slug>/` folder
|
|
291
|
+
of a connected repository, as SystemDox last synced it from GitHub: each part
|
|
292
|
+
of its brief (decision, contract, behaviour, plan) and its release with its
|
|
293
|
+
state and pull request, the contract files, every scenario as
|
|
294
|
+
`id · state · title`, the plan and the release pull requests, then the change
|
|
295
|
+
as JSON. The last line is `The brief is passed` or
|
|
296
|
+
`The brief is not passed: <part> is <state>`: a build session calls it first
|
|
297
|
+
and stops on the second. A change the key may not read answers
|
|
298
|
+
`No such change <repo>/<slug>`, as one that does not exist.
|
|
299
|
+
|
|
258
300
|
### `get_context`
|
|
259
301
|
|
|
260
302
|
The aggregator. It ranks checks, specs and docs against the task, then
|
|
@@ -293,7 +335,7 @@ node scripts/mcp-release-gate.mjs # from the monorepo root
|
|
|
293
335
|
```
|
|
294
336
|
|
|
295
337
|
Entry points: `src/index.ts` (stdio), `src/http.ts` (hosted HTTP handler),
|
|
296
|
-
`src/cli.ts` (`setup` command). Tool registration is shared via
|
|
338
|
+
`src/cli.ts` (`setup` command: `src/setup-mcp.ts`, then `src/setup-team.ts`). Tool registration is shared via
|
|
297
339
|
`src/server.ts` (`createServer`). The hosted handler is deployed as a Lambda by
|
|
298
340
|
the product-systemdox backend stack (`systemdox-backend-prod`), reached through
|
|
299
341
|
the `*.mcp.systemdox.com` custom domain.
|