breakpoint-mcp 1.25.0 → 1.26.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.
- package/dist/cli/tools.js +1 -20
- package/dist/cslsp.js +2 -1
- package/dist/index.js +1 -1
- package/dist/lsp.js +2 -1
- package/dist/version.js +32 -0
- package/package.json +1 -1
package/dist/cli/tools.js
CHANGED
|
@@ -28,26 +28,7 @@ import { applyOutputSchemas } from "../schemas.js";
|
|
|
28
28
|
import { applyAnnotations, annotationsFor } from "../annotations.js";
|
|
29
29
|
import { TOOL_CAPABILITIES, CAPABILITY_GROUPS, GROUP_DESCRIBE } from "../capabilities.js";
|
|
30
30
|
import { loadConfig } from "../config.js";
|
|
31
|
-
import {
|
|
32
|
-
import { fileURLToPath } from "node:url";
|
|
33
|
-
import { dirname, join } from "node:path";
|
|
34
|
-
/**
|
|
35
|
-
* Read the version from package.json at runtime rather than hardcoding it.
|
|
36
|
-
* Deliberate: the version already has to be bumped in `package.json`, the
|
|
37
|
-
* `serverInfo` literal, both `plugin.cfg`s, and the doctor/init surface strings
|
|
38
|
-
* — this command must not become a sixth place to forget. package.json ships in
|
|
39
|
-
* the npm tarball, so the read is safe in an installed package; if it ever
|
|
40
|
-
* isn't, an unknown version is better than a stale one.
|
|
41
|
-
*/
|
|
42
|
-
function packageVersion() {
|
|
43
|
-
try {
|
|
44
|
-
const here = dirname(fileURLToPath(import.meta.url));
|
|
45
|
-
return JSON.parse(readFileSync(join(here, "..", "..", "package.json"), "utf8")).version ?? "unknown";
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
return "unknown";
|
|
49
|
-
}
|
|
50
|
-
}
|
|
31
|
+
import { packageVersion } from "../version.js";
|
|
51
32
|
/**
|
|
52
33
|
* Register the whole surface against a recorder, exactly as `index.ts` does
|
|
53
34
|
* (`applyOutputSchemas` → `applyAnnotations` → every `register*Tools`), and
|
package/dist/cslsp.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { fileURLToPath } from "node:url";
|
|
2
2
|
import { LspError } from "./lsp.js";
|
|
3
|
+
import { packageVersion } from "./version.js";
|
|
3
4
|
/**
|
|
4
5
|
* Minimal LSP client for the C#/.NET semantic plane (D4 C2). Transport-agnostic:
|
|
5
6
|
* it drives any `JsonRpcChannel`, so production spawns OmniSharp over stdio
|
|
@@ -164,7 +165,7 @@ export class CsLspClient {
|
|
|
164
165
|
workspace: { symbol: {}, workspaceFolders: true },
|
|
165
166
|
},
|
|
166
167
|
workspaceFolders: [{ uri: this.rootUri, name: "csharp-project" }],
|
|
167
|
-
clientInfo: { name: "breakpoint-mcp", version:
|
|
168
|
+
clientInfo: { name: "breakpoint-mcp", version: packageVersion() },
|
|
168
169
|
}));
|
|
169
170
|
this.serverCapabilities = result?.capabilities ?? {};
|
|
170
171
|
await this.notify("initialized", {});
|
package/dist/index.js
CHANGED
|
@@ -36,7 +36,7 @@ async function main() {
|
|
|
36
36
|
// so long jobs (export/import/headless script) support poll/await/cancel.
|
|
37
37
|
// D3: also advertise resources.subscribe so clients can subscribe to
|
|
38
38
|
// godot://… resources and receive notifications/resources/updated.
|
|
39
|
-
const server = new McpServer({ name: "breakpoint-mcp", version: "1.
|
|
39
|
+
const server = new McpServer({ name: "breakpoint-mcp", version: "1.26.0" }, { capabilities: { ...TASK_CAPABILITIES, ...RESOURCE_CAPABILITIES }, taskStore });
|
|
40
40
|
// B1: enforce frozen output schemas on every structured tool. Must run before
|
|
41
41
|
// any register*Tools call — it wraps server.registerTool.
|
|
42
42
|
applyOutputSchemas(server);
|
package/dist/lsp.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { fileURLToPath } from "node:url";
|
|
2
2
|
import { FramedConnection } from "./framing.js";
|
|
3
|
+
import { packageVersion } from "./version.js";
|
|
3
4
|
export class LspError extends Error {
|
|
4
5
|
code;
|
|
5
6
|
constructor(code, message) {
|
|
@@ -165,7 +166,7 @@ export class LspClient {
|
|
|
165
166
|
workspace: { symbol: {}, workspaceFolders: true },
|
|
166
167
|
},
|
|
167
168
|
workspaceFolders: [{ uri: this.rootUri, name: "godot-project" }],
|
|
168
|
-
clientInfo: { name: "breakpoint-mcp", version:
|
|
169
|
+
clientInfo: { name: "breakpoint-mcp", version: packageVersion() },
|
|
169
170
|
}));
|
|
170
171
|
this.serverCapabilities = result?.capabilities ?? {};
|
|
171
172
|
await this.notify("initialized", {});
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
/**
|
|
5
|
+
* The package version, read at runtime rather than hardcoded.
|
|
6
|
+
*
|
|
7
|
+
* Every literal version string in the source is a place a release can forget,
|
|
8
|
+
* and `contract_check.py` check 14 exists because two consecutive releases did.
|
|
9
|
+
* The best outcome is not a gated literal but no literal at all — so anything
|
|
10
|
+
* that merely needs to *report* the version should call this instead of being
|
|
11
|
+
* added to the roster.
|
|
12
|
+
*
|
|
13
|
+
* This was not academic. `lsp.ts` and `cslsp.ts` announced
|
|
14
|
+
* `clientInfo: { version: "0.2.0" }` to Godot's language server and to
|
|
15
|
+
* OmniSharp from the initial commit until 1.26.0 — the project shipped
|
|
16
|
+
* twenty-odd releases telling every LSP server it was 0.2.0, and nothing
|
|
17
|
+
* noticed, because a literal nobody compares to anything cannot go stale
|
|
18
|
+
* loudly.
|
|
19
|
+
*
|
|
20
|
+
* `package.json` ships in the npm tarball, so the read is safe in an installed
|
|
21
|
+
* package; if it ever isn't, an unknown version is better than a stale one.
|
|
22
|
+
*/
|
|
23
|
+
export function packageVersion() {
|
|
24
|
+
try {
|
|
25
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
26
|
+
return JSON.parse(readFileSync(join(here, "..", "package.json"), "utf8")).version ?? "unknown";
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return "unknown";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "breakpoint-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.26.0",
|
|
4
4
|
"description": "MCP server exposing Godot to AI coding assistants over the Model Context Protocol — developed and tested with Claude — across four planes (CLI, live editor, LSP+DAP, runtime) with elicitation-gated destructive tools, long jobs on the formal MCP task model, captured console output, and MCP resources.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|