hpmcp 0.0.2 → 0.0.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/dist/mcp.js +9 -2
- package/dist/mcp.js.map +1 -1
- package/dist/remote.d.ts +31 -4
- package/dist/remote.js +55 -20
- package/dist/remote.js.map +1 -1
- package/package.json +1 -1
package/dist/mcp.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { InitializeRequestSchema, ListToolsRequestSchema, CallToolRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
2
2
|
import { getClient } from "./remote.js";
|
|
3
|
+
const TIMEOUT_MS = 10000;
|
|
4
|
+
function withTimeout(promise, ms = TIMEOUT_MS) {
|
|
5
|
+
return Promise.race([
|
|
6
|
+
promise,
|
|
7
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error("timeout")), ms)),
|
|
8
|
+
]);
|
|
9
|
+
}
|
|
3
10
|
export function registerHandlers(server, cache) {
|
|
4
11
|
server.setRequestHandler(InitializeRequestSchema, async () => {
|
|
5
12
|
const cached = await cache.get("init");
|
|
@@ -33,7 +40,7 @@ export function registerHandlers(server, cache) {
|
|
|
33
40
|
const c = getClient();
|
|
34
41
|
if (c) {
|
|
35
42
|
try {
|
|
36
|
-
const { tools } = await c.listTools();
|
|
43
|
+
const { tools } = await withTimeout(c.listTools());
|
|
37
44
|
const result = { tools };
|
|
38
45
|
await cache.set(["tools_list"], result);
|
|
39
46
|
return result;
|
|
@@ -53,7 +60,7 @@ export function registerHandlers(server, cache) {
|
|
|
53
60
|
const c = getClient();
|
|
54
61
|
if (c) {
|
|
55
62
|
try {
|
|
56
|
-
const result = await c.callTool({ name, arguments: args });
|
|
63
|
+
const result = await withTimeout(c.callTool({ name, arguments: args }));
|
|
57
64
|
await cache.set(["tool_call", name, argsKey], result);
|
|
58
65
|
return result;
|
|
59
66
|
}
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/remote.d.ts
CHANGED
|
@@ -1,4 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export interface McpResult {
|
|
2
|
+
jsonrpc: "2.0";
|
|
3
|
+
id?: number | string | null;
|
|
4
|
+
result?: any;
|
|
5
|
+
error?: {
|
|
6
|
+
code: number;
|
|
7
|
+
message: string;
|
|
8
|
+
data?: any;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export declare class McpClient {
|
|
12
|
+
private url;
|
|
13
|
+
private token;
|
|
14
|
+
private id;
|
|
15
|
+
private _capabilities;
|
|
16
|
+
private _serverInfo;
|
|
17
|
+
constructor(url: string, token: string);
|
|
18
|
+
private request;
|
|
19
|
+
connect(): Promise<void>;
|
|
20
|
+
getServerCapabilities(): any;
|
|
21
|
+
getServerVersion(): any;
|
|
22
|
+
listTools(): Promise<{
|
|
23
|
+
tools: any[];
|
|
24
|
+
}>;
|
|
25
|
+
callTool(params: {
|
|
26
|
+
name: string;
|
|
27
|
+
arguments?: any;
|
|
28
|
+
}): Promise<any>;
|
|
29
|
+
}
|
|
30
|
+
export declare function connect(url: string, token: string): Promise<McpClient>;
|
|
31
|
+
export declare function getClient(): McpClient | null;
|
package/dist/remote.js
CHANGED
|
@@ -1,29 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
export class McpClient {
|
|
2
|
+
url;
|
|
3
|
+
token;
|
|
4
|
+
id = 0;
|
|
5
|
+
_capabilities = null;
|
|
6
|
+
_serverInfo = null;
|
|
7
|
+
constructor(url, token) {
|
|
8
|
+
this.url = url;
|
|
9
|
+
this.token = token;
|
|
10
|
+
}
|
|
11
|
+
async request(method, params) {
|
|
12
|
+
const id = ++this.id;
|
|
13
|
+
const body = JSON.stringify({ jsonrpc: "2.0", id, method, params });
|
|
14
|
+
const res = await fetch(this.url, {
|
|
15
|
+
method: "POST",
|
|
16
|
+
headers: {
|
|
17
|
+
"content-type": "application/json",
|
|
18
|
+
"x-heroui-personal-token": this.token,
|
|
12
19
|
},
|
|
20
|
+
body,
|
|
13
21
|
});
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
const text = await res.text();
|
|
23
|
+
// Response is SSE format: "event: message\ndata: {...}\n\n"
|
|
24
|
+
const match = text.match(/^data:\s*(.+)$/m);
|
|
25
|
+
if (!match)
|
|
26
|
+
throw new Error(`Unexpected response: ${text.slice(0, 200)}`);
|
|
27
|
+
const msg = JSON.parse(match[1]);
|
|
28
|
+
if (msg.error)
|
|
29
|
+
throw new Error(`MCP error ${msg.error.code}: ${msg.error.message}`);
|
|
30
|
+
return msg.result;
|
|
31
|
+
}
|
|
32
|
+
async connect() {
|
|
33
|
+
const result = await this.request("initialize", {
|
|
34
|
+
protocolVersion: "2024-11-05",
|
|
35
|
+
capabilities: {},
|
|
36
|
+
clientInfo: { name: "hpmcp", version: "0.0.1" },
|
|
37
|
+
});
|
|
38
|
+
this._capabilities = result.capabilities;
|
|
39
|
+
this._serverInfo = result.serverInfo;
|
|
40
|
+
}
|
|
41
|
+
getServerCapabilities() {
|
|
42
|
+
return this._capabilities;
|
|
43
|
+
}
|
|
44
|
+
getServerVersion() {
|
|
45
|
+
return this._serverInfo;
|
|
18
46
|
}
|
|
19
|
-
|
|
20
|
-
|
|
47
|
+
async listTools() {
|
|
48
|
+
return this.request("tools/list", {});
|
|
49
|
+
}
|
|
50
|
+
async callTool(params) {
|
|
51
|
+
return this.request("tools/call", params);
|
|
21
52
|
}
|
|
22
53
|
}
|
|
23
|
-
|
|
54
|
+
let client = null;
|
|
55
|
+
export async function connect(url, token) {
|
|
56
|
+
client = new McpClient(url, token);
|
|
57
|
+
await client.connect();
|
|
58
|
+
console.error(`[hpmcp] connected to ${url}`);
|
|
24
59
|
return client;
|
|
25
60
|
}
|
|
26
|
-
export function
|
|
27
|
-
return client
|
|
61
|
+
export function getClient() {
|
|
62
|
+
return client;
|
|
28
63
|
}
|
|
29
64
|
//# sourceMappingURL=remote.js.map
|
package/dist/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,SAAS;IAMV;IACA;IANF,EAAE,GAAG,CAAC,CAAC;IACP,aAAa,GAAQ,IAAI,CAAC;IAC1B,WAAW,GAAQ,IAAI,CAAC;IAEhC,YACU,GAAW,EACX,KAAa;QADb,QAAG,GAAH,GAAG,CAAQ;QACX,UAAK,GAAL,KAAK,CAAQ;IACpB,CAAC;IAEI,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,MAAY;QAChD,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAEpE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,yBAAyB,EAAE,IAAI,CAAC,KAAK;aACtC;YACD,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAE9B,4DAA4D;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAE1E,MAAM,GAAG,GAAc,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,GAAG,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpF,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC9C,eAAe,EAAE,YAAY;YAC7B,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAyC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,IAAI,MAAM,GAAqB,IAAI,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,KAAa;IACtD,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|