@firfi/huly-mcp 0.2.0 → 0.3.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/index.cjs +60 -11
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -172081,7 +172081,7 @@ var PostHog = class extends PostHogBackendClient {
|
|
|
172081
172081
|
};
|
|
172082
172082
|
|
|
172083
172083
|
// src/version.ts
|
|
172084
|
-
var VERSION = true ? "0.
|
|
172084
|
+
var VERSION = true ? "0.3.0" : "0.0.0-dev";
|
|
172085
172085
|
|
|
172086
172086
|
// src/telemetry/posthog.ts
|
|
172087
172087
|
var POSTHOG_API_KEY = "phc_TGfFqCGdnF0p68wuFzd5WSw1IsBvOJW0YgoMJDyZPjm";
|
|
@@ -183522,6 +183522,40 @@ var toolRegistry = buildRegistry(allTools);
|
|
|
183522
183522
|
var TOOL_DEFINITIONS = Object.fromEntries(toolRegistry.tools);
|
|
183523
183523
|
|
|
183524
183524
|
// src/mcp/server.ts
|
|
183525
|
+
var NPM_PACKAGE_NAME = "@firfi/huly-mcp";
|
|
183526
|
+
var VERSION_TOOL_NAME = "get_version";
|
|
183527
|
+
var versionToolDefinition = {
|
|
183528
|
+
name: VERSION_TOOL_NAME,
|
|
183529
|
+
description: "Returns the current version of this Huly MCP server and the latest version available on npm.",
|
|
183530
|
+
inputSchema: { type: "object", properties: {} },
|
|
183531
|
+
annotations: {
|
|
183532
|
+
title: "Get Version",
|
|
183533
|
+
readOnlyHint: true,
|
|
183534
|
+
destructiveHint: false,
|
|
183535
|
+
idempotentHint: true,
|
|
183536
|
+
openWorldHint: true
|
|
183537
|
+
}
|
|
183538
|
+
};
|
|
183539
|
+
var NPM_FETCH_TIMEOUT_MS = 5e3;
|
|
183540
|
+
var fetchLatestNpmVersion = async () => {
|
|
183541
|
+
try {
|
|
183542
|
+
const res = await fetch(`https://registry.npmjs.org/${NPM_PACKAGE_NAME}/latest`, {
|
|
183543
|
+
signal: AbortSignal.timeout(NPM_FETCH_TIMEOUT_MS)
|
|
183544
|
+
});
|
|
183545
|
+
if (!res.ok) return "unknown";
|
|
183546
|
+
const data = await res.json();
|
|
183547
|
+
if (typeof data === "object" && data !== null && "version" in data && typeof data.version === "string") {
|
|
183548
|
+
return data.version;
|
|
183549
|
+
}
|
|
183550
|
+
return "unknown";
|
|
183551
|
+
} catch {
|
|
183552
|
+
return "unknown";
|
|
183553
|
+
}
|
|
183554
|
+
};
|
|
183555
|
+
var handleVersionTool = async () => {
|
|
183556
|
+
const latest = await fetchLatestNpmVersion();
|
|
183557
|
+
return createSuccessResponse({ current: VERSION, latest });
|
|
183558
|
+
};
|
|
183525
183559
|
var isObjectSchema = (schema) => "type" in schema && schema.type === "object";
|
|
183526
183560
|
var McpServerError = class extends Schema_exports.TaggedError()(
|
|
183527
183561
|
"McpServerError",
|
|
@@ -183578,15 +183612,18 @@ var createMcpServer = (resolveClients, telemetry, registry2) => {
|
|
|
183578
183612
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
183579
183613
|
telemetry.firstListTools();
|
|
183580
183614
|
return {
|
|
183581
|
-
tools:
|
|
183582
|
-
|
|
183583
|
-
|
|
183584
|
-
|
|
183585
|
-
|
|
183586
|
-
|
|
183587
|
-
|
|
183588
|
-
|
|
183589
|
-
|
|
183615
|
+
tools: [
|
|
183616
|
+
versionToolDefinition,
|
|
183617
|
+
...registry2.definitions.flatMap((tool) => {
|
|
183618
|
+
if (!isObjectSchema(tool.inputSchema)) return [];
|
|
183619
|
+
return [{
|
|
183620
|
+
name: tool.name,
|
|
183621
|
+
description: tool.description,
|
|
183622
|
+
inputSchema: tool.inputSchema,
|
|
183623
|
+
annotations: resolveAnnotations(tool)
|
|
183624
|
+
}];
|
|
183625
|
+
})
|
|
183626
|
+
]
|
|
183590
183627
|
};
|
|
183591
183628
|
});
|
|
183592
183629
|
server.setRequestHandler(CallToolRequestSchema, async (request2) => {
|
|
@@ -183595,6 +183632,19 @@ var createMcpServer = (resolveClients, telemetry, registry2) => {
|
|
|
183595
183632
|
const { arguments: args2, name } = request2.params;
|
|
183596
183633
|
const start3 = Date.now();
|
|
183597
183634
|
const inputBytes = JSON.stringify(args2 ?? {}).length;
|
|
183635
|
+
const computeOutputBytes = (response2) => response2.content.reduce((sum2, c) => sum2 + c.text.length, 0);
|
|
183636
|
+
if (name === VERSION_TOOL_NAME) {
|
|
183637
|
+
const versionResponse = await handleVersionTool();
|
|
183638
|
+
const durationMs2 = Date.now() - start3;
|
|
183639
|
+
telemetry.toolCalled({
|
|
183640
|
+
toolName: name,
|
|
183641
|
+
status: "success",
|
|
183642
|
+
durationMs: durationMs2,
|
|
183643
|
+
inputBytes,
|
|
183644
|
+
outputBytes: computeOutputBytes(versionResponse)
|
|
183645
|
+
});
|
|
183646
|
+
return toMcpResponse(versionResponse);
|
|
183647
|
+
}
|
|
183598
183648
|
const deriveEditMode = () => {
|
|
183599
183649
|
if (name !== "edit_document" || args2 === void 0) return void 0;
|
|
183600
183650
|
if ("old_text" in args2) return "search_and_replace";
|
|
@@ -183602,7 +183652,6 @@ var createMcpServer = (resolveClients, telemetry, registry2) => {
|
|
|
183602
183652
|
return "title_only";
|
|
183603
183653
|
};
|
|
183604
183654
|
const editMode = deriveEditMode();
|
|
183605
|
-
const computeOutputBytes = (response2) => response2.content.reduce((sum2, c) => sum2 + c.text.length, 0);
|
|
183606
183655
|
let clients;
|
|
183607
183656
|
try {
|
|
183608
183657
|
clients = await resolveClients();
|