@snagset/mcp 0.1.2 → 0.1.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 +8 -0
- package/dist/bin.js +5 -4
- package/dist/bin.js.map +1 -1
- package/dist/server.js +51 -46
- package/dist/server.js.map +1 -1
- package/dist/vendor/types/names.js +1 -0
- package/package.json +3 -9
package/README.md
CHANGED
|
@@ -55,6 +55,14 @@ The default token is **read-only**. Add write scopes explicitly:
|
|
|
55
55
|
snagset mcp-token create "Claude Code" threads:read,source:map,comments:write
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
## Remote
|
|
59
|
+
|
|
60
|
+
With the remote transport on — the switch on Studio › Integrations › MCP, or
|
|
61
|
+
`SNAGSET_MCP_HTTP_ENABLED=true` in the instance's environment — the same server
|
|
62
|
+
is served at `POST /mcp` for an agent that has no checkout: the token goes as a
|
|
63
|
+
bearer, `map_thread_to_source` is absent, and writes need a token minted with
|
|
64
|
+
remote writes allowed. The dashboard's token dialog shows the config for it.
|
|
65
|
+
|
|
58
66
|
## What it is not
|
|
59
67
|
|
|
60
68
|
It holds **no database connection**. Every read goes through the same
|
package/dist/bin.js
CHANGED
|
@@ -7,11 +7,12 @@ import { createServer } from "./server.js";
|
|
|
7
7
|
* | Transport | Where it runs | Default |
|
|
8
8
|
* |---|---|---|
|
|
9
9
|
* | **stdio** | the developer's own machine, spawned by their MCP client | **the supported path** |
|
|
10
|
-
* | streamable HTTP | our server, at `POST /mcp` | **off**
|
|
10
|
+
* | streamable HTTP | our server, at `POST /mcp` (D107) | **off** until the switch on Studio › Integrations › MCP, or `SNAGSET_MCP_HTTP_ENABLED` (D108) |
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
* accident: source mapping needs the checkout, the checkout is
|
|
14
|
-
* developer's machine, and a remote server cannot offer `source:map`
|
|
12
|
+
* This file is the first. stdio is the default and §8.5 is the reason, not
|
|
13
|
+
* a scheduling accident: source mapping needs the checkout, the checkout is
|
|
14
|
+
* on the developer's machine, and a remote server cannot offer `source:map`
|
|
15
|
+
* at all — the instance serves the second without it.
|
|
15
16
|
*
|
|
16
17
|
* ── NOTHING MAY BE WRITTEN TO STDOUT ──
|
|
17
18
|
*
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AAExB;;;;;;;;;;;;;GAaG;AACH,MAAM,KAAK,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACvC,MAAM,IAAI,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAErC,SAAS,GAAG,CAAC,OAAe;IAC1B,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,2BAA2B;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,CAAC,KAAK,EAAE,CAAC;IACX,GAAG,CACD,gGAAgG;QAC9F,mDAAmD,CACtD,CAAC;AACJ,CAAC;AACD,IAAI,CAAC,IAAI,EAAE,CAAC;IACV,GAAG,CAAC,sGAAsG,CAAC,CAAC;AAC9G,CAAC;AACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;IAClC,6EAA6E;IAC7E,wEAAwE;IACxE,GAAG,CAAC,2GAA2G,CAAC,CAAC;AACnH,CAAC;AAED,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,IAAI;IACJ,KAAK;IACL,2EAA2E;IAC3E,kEAAkE;IAClE,QAAQ,EAAE,GAAG,CAAC,uBAAuB,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE;IACvD,OAAO,EAAE,GAAG,CAAC,qBAAqB,CAAC;IACnC,OAAO,EAAE,GAAG,CAAC,qBAAqB,CAAC,IAAI,OAAO;CAC/C,CAAC,CAAC;AAEH,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,IAAI,IAAI,CAAC,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -42,6 +42,10 @@ export function createServer(opts) {
|
|
|
42
42
|
.enum(["anchored", "drifted", "orphaned", "unknown"])
|
|
43
43
|
.optional()
|
|
44
44
|
.describe("'orphaned' finds pins whose element is gone from the page."),
|
|
45
|
+
since: z
|
|
46
|
+
.string()
|
|
47
|
+
.optional()
|
|
48
|
+
.describe("ISO timestamp: only threads changed after it — what is new since you last looked."),
|
|
45
49
|
limit: z.number().int().min(1).max(MAX_THREADS).optional(),
|
|
46
50
|
},
|
|
47
51
|
}, async (args) => {
|
|
@@ -49,7 +53,7 @@ export function createServer(opts) {
|
|
|
49
53
|
if (!project)
|
|
50
54
|
return noProject();
|
|
51
55
|
const r = await client.call(`/api/v1/projects/${project}/threads`, {
|
|
52
|
-
query: { status: args.status, route: args.route, env: args.environment },
|
|
56
|
+
query: { status: args.status, route: args.route, env: args.environment, since: args.since },
|
|
53
57
|
});
|
|
54
58
|
const value = unwrap(r);
|
|
55
59
|
if (isToolResult(value))
|
|
@@ -109,51 +113,52 @@ export function createServer(opts) {
|
|
|
109
113
|
return ok(envelope({ key: found.key, context: context(found) }));
|
|
110
114
|
});
|
|
111
115
|
// ── source:map — stdio only, and the reason stdio is the supported path ──
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
"
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
"
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
116
|
+
if (opts.transport !== "http")
|
|
117
|
+
server.registerTool("map_thread_to_source", {
|
|
118
|
+
title: "Find the source file a snag points at",
|
|
119
|
+
description: "Search the local checkout for the element this snag was left on. Returns candidates with " +
|
|
120
|
+
"a confidence, not an answer: below 1.0 these are guesses ranked by how distinctive the " +
|
|
121
|
+
"matched string is. Read the file before you change it.",
|
|
122
|
+
inputSchema: {
|
|
123
|
+
key: z.string(),
|
|
124
|
+
project: z.string().optional(),
|
|
125
|
+
repoRoot: z.string().optional().describe("Defaults to the directory the server was started in."),
|
|
126
|
+
},
|
|
127
|
+
}, async (args) => {
|
|
128
|
+
const found = await findByKey(client, projectOf(args.project), args.key);
|
|
129
|
+
if (isToolResult(found))
|
|
130
|
+
return found;
|
|
131
|
+
const anchor = (found.anchor ?? {});
|
|
132
|
+
const el = (anchor["element"] ?? anchor);
|
|
133
|
+
const text = anchor["text"];
|
|
134
|
+
try {
|
|
135
|
+
const candidates = await mapToSource({
|
|
136
|
+
repoRoot: args.repoRoot ?? opts.repoRoot,
|
|
137
|
+
anchor: {
|
|
138
|
+
...(typeof el["testId"] === "string" ? { testId: el["testId"] } : {}),
|
|
139
|
+
...(typeof el["accessibleName"] === "string" ? { accessibleName: el["accessibleName"] } : {}),
|
|
140
|
+
...(typeof text?.exact === "string" ? { text: text.exact } : {}),
|
|
141
|
+
sourceRef: anchor["sourceRef"],
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
return ok(envelope({
|
|
145
|
+
key: found.key,
|
|
146
|
+
candidates,
|
|
147
|
+
...(candidates.length >= MAX_CANDIDATES
|
|
148
|
+
? { truncated: `stopped at ${MAX_CANDIDATES} candidates` }
|
|
149
|
+
: {}),
|
|
150
|
+
...(candidates.length === 0
|
|
151
|
+
? {
|
|
152
|
+
note: "Nothing matched. This snag's anchor may have no distinctive string, or the " +
|
|
153
|
+
"element may be rendered from data rather than written in the source.",
|
|
154
|
+
}
|
|
155
|
+
: {}),
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
return err(e instanceof Error ? e.message : String(e));
|
|
160
|
+
}
|
|
161
|
+
});
|
|
157
162
|
// ── the write surface: two tools, and no third ──────────────────────────
|
|
158
163
|
server.registerTool("comment_on_thread", {
|
|
159
164
|
title: "Reply to a review thread",
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAe,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,WAAW,EACM,KAAK,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -243,6 +243,7 @@ export const HTTP_HEADER = {
|
|
|
243
243
|
configVersion: "x-snagset-config-version",
|
|
244
244
|
idempotentReplay: "x-snagset-idempotent-replay",
|
|
245
245
|
requestId: "x-snagset-request-id",
|
|
246
|
+
mcpTransport: "x-snagset-mcp-transport",
|
|
246
247
|
};
|
|
247
248
|
/** Host-authored `<meta name>` keys we READ and never mint (§2.11). 03 §5.3: `route` is the only one. */
|
|
248
249
|
export const META_NAME = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@snagset/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Read your Snagset review threads from a coding agent — the pin, the element, the route and the console with each one.",
|
|
@@ -17,19 +17,13 @@
|
|
|
17
17
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
18
18
|
"test": "node --experimental-strip-types --test test/*.test.ts",
|
|
19
19
|
"build": "node scripts/build.mjs",
|
|
20
|
-
"prepack": "node scripts/build.mjs"
|
|
20
|
+
"prepack": "node scripts/build.mjs && node ../../tools/publish-manifest.mjs strip",
|
|
21
|
+
"postpack": "node ../../tools/publish-manifest.mjs restore"
|
|
21
22
|
},
|
|
22
23
|
"dependencies": {
|
|
23
24
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
24
25
|
"zod": "4.4.3"
|
|
25
26
|
},
|
|
26
|
-
"devDependencies": {
|
|
27
|
-
"@snagset/adapters": "workspace:*",
|
|
28
|
-
"@snagset/tsconfig": "workspace:*",
|
|
29
|
-
"@snagset/types": "workspace:*",
|
|
30
|
-
"@types/node": "26.2.0",
|
|
31
|
-
"typescript": "^5.7.3"
|
|
32
|
-
},
|
|
33
27
|
"exports": {
|
|
34
28
|
".": "./dist/server.js",
|
|
35
29
|
"./package.json": "./package.json"
|