systematics-mcp 1.1.0 → 1.2.0

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 (3) hide show
  1. package/README.md +9 -15
  2. package/dist/index.js +14 -2
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -4,26 +4,20 @@ Claude Code MCP server for the [Systematics](https://app.dovito.com) platform by
4
4
 
5
5
  ## Quick Start
6
6
 
7
- ### 1. Add to Claude Code
8
-
9
- Add this to your project or global `.mcp.json` file:
10
-
11
- ```json
12
- {
13
- "mcpServers": {
14
- "systematics": {
15
- "command": "npx",
16
- "args": ["-y", "systematics-mcp"]
17
- }
18
- }
19
- }
7
+ ### 1. Install and Register
8
+
9
+ ```bash
10
+ npm install -g systematics-mcp
11
+ claude mcp add systematics --scope user -- systematics-mcp
20
12
  ```
21
13
 
14
+ Use `--scope user` for global access across all projects, or `--scope project` for a single project.
15
+
22
16
  ### 2. Authenticate
23
17
 
24
- Restart Claude Code, then use `/mcp` to see Systematics listed. The first time you use a Systematics tool, your browser will open to sign in. Click **Authorize Claude Code** and you're connected. Your token is saved locally at `~/.systematics/token` and reused automatically for 90 days.
18
+ Restart Claude Code, then use `/mcp` to verify Systematics shows as "Connected." The first time you use a Systematics tool, run the `authenticate` tool to sign in via your browser. Your token is saved locally at `~/.systematics/token` and reused automatically for 90 days.
25
19
 
26
- That's it. No API keys, no repo access, no manual setup.
20
+ That's it. No API keys, no repo access, no manual config files.
27
21
 
28
22
  ## How It Works
29
23
 
package/dist/index.js CHANGED
@@ -161,7 +161,7 @@ server.tool("create_project", "Create a new project under a business", {
161
161
  const client = getApi();
162
162
  if (!client)
163
163
  return authRequiredResponse();
164
- const data = await client.post("/api/projects", params);
164
+ const data = await client.post("/api/admin/projects", params);
165
165
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
166
166
  });
167
167
  server.tool("update_project", "Update an existing project", {
@@ -177,7 +177,7 @@ server.tool("update_project", "Update an existing project", {
177
177
  const client = getApi();
178
178
  if (!client)
179
179
  return authRequiredResponse();
180
- const data = await client.patch(`/api/projects/${projectId}`, updates);
180
+ const data = await client.patch(`/api/admin/projects/${projectId}`, updates);
181
181
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
182
182
  });
183
183
  // ── Tasks ──────────────────────────────────────────────────────────────────
@@ -404,6 +404,18 @@ server.tool("update_deliverable", "Update a deliverable", {
404
404
  const data = await client.patch(`/api/projects/${projectId}/deliverables/${deliverableId}`, updates);
405
405
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
406
406
  });
407
+ // ── Project Members ───────────────────────────────────────────────────────
408
+ server.tool("add_project_member", "Add a user as a team member on a project", {
409
+ projectId: z.string().describe("Project UUID"),
410
+ userId: z.string().describe("User UUID to add"),
411
+ role: z.enum(["member", "lead"]).optional().describe("Member role (default: member)"),
412
+ }, async ({ projectId, userId, role }) => {
413
+ const client = getApi();
414
+ if (!client)
415
+ return authRequiredResponse();
416
+ const data = await client.post(`/api/projects/${projectId}/members`, { userId, role: role || "member" });
417
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
418
+ });
407
419
  // ── Applications (Pipeline) ───────────────────────────────────────────────
408
420
  server.tool("list_applications", "List all applications in the pipeline", {}, async () => {
409
421
  const client = getApi();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "systematics-mcp",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "description": "Claude Code MCP server for the Systematics platform by Dovito Business Solutions",
6
6
  "bin": {