@inferevents/mcp 0.3.5 → 0.4.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/README.md +30 -0
- package/dist/api-client.d.ts +5 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/remote.d.ts +11 -0
- package/dist/remote.d.ts.map +1 -0
- package/dist/remote.js +69 -0
- package/dist/remote.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +8 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/get-connection-info.d.ts +4 -0
- package/dist/tools/get-connection-info.d.ts.map +1 -0
- package/dist/tools/get-connection-info.js +22 -0
- package/dist/tools/get-connection-info.js.map +1 -0
- package/dist/tools/get-insights.d.ts.map +1 -1
- package/dist/tools/get-insights.js +67 -16
- package/dist/tools/get-insights.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -29,6 +29,36 @@ The server reads credentials from `~/.infer/config.json`:
|
|
|
29
29
|
}
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
+
## Remote / Cloud Setup
|
|
33
|
+
|
|
34
|
+
The Infer MCP server is also available as a hosted endpoint for remote agents,
|
|
35
|
+
scheduled tasks, and cloud MCP connectors.
|
|
36
|
+
|
|
37
|
+
**Endpoint:** `https://mcp.infer.events/mcp`
|
|
38
|
+
**Transport:** Streamable HTTP (stateless)
|
|
39
|
+
**Auth:** `Authorization: Bearer <pk_read_* API key>`
|
|
40
|
+
|
|
41
|
+
### Claude Cloud Connector
|
|
42
|
+
|
|
43
|
+
1. Go to [claude.ai/settings/connectors](https://claude.ai/settings/connectors)
|
|
44
|
+
2. Add a new connector with URL: `https://mcp.infer.events/mcp`
|
|
45
|
+
3. Set your `pk_read_*` API key as the Bearer token
|
|
46
|
+
|
|
47
|
+
### Auto-Discovery
|
|
48
|
+
|
|
49
|
+
Any MCP client can call the `get_connection_info` tool on the local server to
|
|
50
|
+
discover the remote endpoint automatically. Skills like `/schedule` use this
|
|
51
|
+
to configure remote agents without manual setup.
|
|
52
|
+
|
|
53
|
+
### curl
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
curl -X POST https://mcp.infer.events/mcp \
|
|
57
|
+
-H "Content-Type: application/json" \
|
|
58
|
+
-H "Authorization: Bearer pk_read_YOUR_KEY" \
|
|
59
|
+
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{}},"id":1}'
|
|
60
|
+
```
|
|
61
|
+
|
|
32
62
|
## Tools
|
|
33
63
|
|
|
34
64
|
### `get_insights`
|
package/dist/api-client.d.ts
CHANGED
|
@@ -41,6 +41,11 @@ export declare class ApiClient {
|
|
|
41
41
|
evidence: Record<string, unknown>;
|
|
42
42
|
severity: string;
|
|
43
43
|
detected_at: string;
|
|
44
|
+
action_type: string | null;
|
|
45
|
+
suggested_action: string | null;
|
|
46
|
+
correlation_hint: string | null;
|
|
47
|
+
related_events: string[];
|
|
48
|
+
confidence: string;
|
|
44
49
|
}>;
|
|
45
50
|
count: number;
|
|
46
51
|
}>;
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,MAAM,EACP,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;gBAE1C,MAAM,EAAE,WAAW;IASzB,cAAc,CAAC,MAAM,EAAE;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuBvB,YAAY,CAAC,MAAM,EAAE;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,eAAe,CAAC;IAiBtB,cAAc,CAAC,MAAM,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsBxB,YAAY,CAAC,MAAM,EAAE;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkBtB,WAAW,CAAC,MAAM,CAAC,EAAE;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/remote.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { InferConfig } from "./config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Extract and validate an Infer read API key from request headers.
|
|
4
|
+
* Returns an InferConfig if valid, null otherwise.
|
|
5
|
+
*/
|
|
6
|
+
export declare function extractAuthConfig(headers: Headers): InferConfig | null;
|
|
7
|
+
declare const _default: {
|
|
8
|
+
fetch(request: Request): Promise<Response>;
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
11
|
+
//# sourceMappingURL=remote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAa/C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAQtE;;mBAGsB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;;AADlD,wBA8CE"}
|
package/dist/remote.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
|
|
2
|
+
import { createServer } from "./server.js";
|
|
3
|
+
const API_ENDPOINT = "https://api.infer.events";
|
|
4
|
+
const CORS_HEADERS = {
|
|
5
|
+
"Access-Control-Allow-Origin": "*",
|
|
6
|
+
"Access-Control-Allow-Methods": "GET, POST, DELETE, OPTIONS",
|
|
7
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization, Mcp-Session-Id, Mcp-Protocol-Version",
|
|
8
|
+
"Access-Control-Expose-Headers": "Mcp-Session-Id",
|
|
9
|
+
"Access-Control-Max-Age": "86400",
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Extract and validate an Infer read API key from request headers.
|
|
13
|
+
* Returns an InferConfig if valid, null otherwise.
|
|
14
|
+
*/
|
|
15
|
+
export function extractAuthConfig(headers) {
|
|
16
|
+
const auth = headers.get("Authorization");
|
|
17
|
+
if (!auth?.startsWith("Bearer "))
|
|
18
|
+
return null;
|
|
19
|
+
const apiKey = auth.slice("Bearer ".length).trim();
|
|
20
|
+
if (!apiKey || !apiKey.startsWith("pk_read_"))
|
|
21
|
+
return null;
|
|
22
|
+
return { apiKey, endpoint: API_ENDPOINT };
|
|
23
|
+
}
|
|
24
|
+
export default {
|
|
25
|
+
async fetch(request) {
|
|
26
|
+
const url = new URL(request.url);
|
|
27
|
+
// Only handle /mcp path
|
|
28
|
+
if (url.pathname !== "/mcp") {
|
|
29
|
+
if (url.pathname === "/health") {
|
|
30
|
+
return new Response(JSON.stringify({ status: "ok" }), {
|
|
31
|
+
headers: { "Content-Type": "application/json", ...CORS_HEADERS },
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return new Response("Not found", { status: 404, headers: CORS_HEADERS });
|
|
35
|
+
}
|
|
36
|
+
// Handle CORS preflight
|
|
37
|
+
if (request.method === "OPTIONS") {
|
|
38
|
+
return new Response(null, { status: 204, headers: CORS_HEADERS });
|
|
39
|
+
}
|
|
40
|
+
// Extract auth
|
|
41
|
+
const config = extractAuthConfig(request.headers);
|
|
42
|
+
if (!config) {
|
|
43
|
+
return new Response(JSON.stringify({
|
|
44
|
+
error: 'Missing or invalid API key. Pass a pk_read_* key in the Authorization header: "Bearer pk_read_..."',
|
|
45
|
+
}), {
|
|
46
|
+
status: 401,
|
|
47
|
+
headers: { "Content-Type": "application/json", ...CORS_HEADERS },
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// Stateless: fresh server + transport per request.
|
|
51
|
+
// CF Workers don't share module-level state across isolates,
|
|
52
|
+
// so stateful sessions would silently break in production.
|
|
53
|
+
const server = createServer(config);
|
|
54
|
+
const transport = new WebStandardStreamableHTTPServerTransport({
|
|
55
|
+
enableJsonResponse: true,
|
|
56
|
+
});
|
|
57
|
+
await server.connect(transport);
|
|
58
|
+
const response = await transport.handleRequest(request);
|
|
59
|
+
return addCorsHeaders(response);
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
function addCorsHeaders(response) {
|
|
63
|
+
const newResponse = new Response(response.body, response);
|
|
64
|
+
for (const [key, value] of Object.entries(CORS_HEADERS)) {
|
|
65
|
+
newResponse.headers.set(key, value);
|
|
66
|
+
}
|
|
67
|
+
return newResponse;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=remote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AA0C3D,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAwN3D"}
|
package/dist/server.js
CHANGED
|
@@ -11,6 +11,7 @@ import { getOntologySchema, handleGetOntology, } from "./tools/get-ontology.js";
|
|
|
11
11
|
import { updateOntologySchema, handleUpdateOntology, } from "./tools/update-ontology.js";
|
|
12
12
|
import { switchProjectSchema, handleSwitchProject, } from "./tools/switch-project.js";
|
|
13
13
|
import { createProjectSchema, handleCreateProject, } from "./tools/create-project.js";
|
|
14
|
+
import { getConnectionInfoSchema, handleGetConnectionInfo, } from "./tools/get-connection-info.js";
|
|
14
15
|
export function createServer(config) {
|
|
15
16
|
// Re-reads config from disk on each call so switch_project takes effect immediately
|
|
16
17
|
async function getClient() {
|
|
@@ -165,6 +166,13 @@ export function createServer(config) {
|
|
|
165
166
|
};
|
|
166
167
|
}
|
|
167
168
|
});
|
|
169
|
+
server.tool("get_connection_info", "Get connection details for the Infer MCP server — both local (stdio) and " +
|
|
170
|
+
"remote (hosted cloud endpoint). Use this to discover how to connect to " +
|
|
171
|
+
"Infer from remote agents, scheduled tasks, or cloud MCP connectors.", getConnectionInfoSchema, async () => {
|
|
172
|
+
return {
|
|
173
|
+
content: [{ type: "text", text: handleGetConnectionInfo() }],
|
|
174
|
+
};
|
|
175
|
+
});
|
|
168
176
|
return server;
|
|
169
177
|
}
|
|
170
178
|
function formatError(error) {
|
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,sEAAsE;AACtE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-connection-info.d.ts","sourceRoot":"","sources":["../../src/tools/get-connection-info.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE,eAAO,MAAM,uBAAuB,IAAK,CAAC;AAE1C,wBAAgB,uBAAuB,IAAI,MAAM,CAwBhD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const REMOTE_MCP_ENDPOINT = "https://mcp.infer.events/mcp";
|
|
2
|
+
export const getConnectionInfoSchema = {};
|
|
3
|
+
export function handleGetConnectionInfo() {
|
|
4
|
+
return JSON.stringify({
|
|
5
|
+
local: {
|
|
6
|
+
transport: "stdio",
|
|
7
|
+
command: "npx @inferevents/mcp",
|
|
8
|
+
description: "For Claude Code, Cursor, and other local MCP clients",
|
|
9
|
+
},
|
|
10
|
+
remote: {
|
|
11
|
+
transport: "streamable-http",
|
|
12
|
+
url: REMOTE_MCP_ENDPOINT,
|
|
13
|
+
auth: "Bearer <pk_read_* API key>",
|
|
14
|
+
description: "For cloud connectors, scheduled agents, and remote MCP clients",
|
|
15
|
+
},
|
|
16
|
+
setup: {
|
|
17
|
+
cloud_connector: "Go to claude.ai/settings/connectors and add the remote URL with your pk_read_* API key",
|
|
18
|
+
curl: `curl -X POST ${REMOTE_MCP_ENDPOINT} -H "Authorization: Bearer <pk_read_key>" -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{}},"id":1}'`,
|
|
19
|
+
},
|
|
20
|
+
}, null, 2);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=get-connection-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-connection-info.js","sourceRoot":"","sources":["../../src/tools/get-connection-info.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAElE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,KAAK,EAAE;YACL,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,sBAAsB;YAC/B,WAAW,EAAE,sDAAsD;SACpE;QACD,MAAM,EAAE;YACN,SAAS,EAAE,iBAAiB;YAC5B,GAAG,EAAE,mBAAmB;YACxB,IAAI,EAAE,4BAA4B;YAClC,WAAW,EACT,gEAAgE;SACnE;QACD,KAAK,EAAE;YACL,eAAe,EACb,wFAAwF;YAC1F,IAAI,EAAE,gBAAgB,mBAAmB,+LAA+L;SACzO;KACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-insights.d.ts","sourceRoot":"","sources":["../../src/tools/get-insights.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,iBAAiB;;CAK7B,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"get-insights.d.ts","sourceRoot":"","sources":["../../src/tools/get-insights.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,iBAAiB;;CAK7B,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,CA+FjB"}
|
|
@@ -10,34 +10,85 @@ export async function handleGetInsights(client, params) {
|
|
|
10
10
|
severity: params.severity,
|
|
11
11
|
});
|
|
12
12
|
if (result.count === 0) {
|
|
13
|
-
return "No new insights. Everything looks normal, or there isn't enough data yet (insights activate after
|
|
13
|
+
return "No new insights. Everything looks normal, or there isn't enough data yet (insights activate after first events are received).";
|
|
14
14
|
}
|
|
15
15
|
const severityIcon = {
|
|
16
16
|
critical: "!!",
|
|
17
17
|
notable: "!",
|
|
18
18
|
informational: "i",
|
|
19
19
|
};
|
|
20
|
+
const confidenceLabel = {
|
|
21
|
+
low: "directional, limited data",
|
|
22
|
+
medium: "moderate confidence",
|
|
23
|
+
high: "high confidence",
|
|
24
|
+
};
|
|
25
|
+
// Split into code actions and strategy actions
|
|
26
|
+
const codeActions = result.insights.filter((i) => i.action_type === "code");
|
|
27
|
+
const strategyActions = result.insights.filter((i) => i.action_type === "strategy");
|
|
28
|
+
const unclassified = result.insights.filter((i) => !i.action_type);
|
|
20
29
|
const chart = [
|
|
21
|
-
|
|
30
|
+
`${result.count} items need your attention`,
|
|
22
31
|
`${"─".repeat(50)}`,
|
|
23
|
-
"",
|
|
24
32
|
];
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
chart.push(
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
.
|
|
32
|
-
.
|
|
33
|
-
.
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
if (codeActions.length > 0) {
|
|
34
|
+
chart.push("");
|
|
35
|
+
chart.push("CODE ACTIONS (investigate / fix)");
|
|
36
|
+
chart.push("");
|
|
37
|
+
for (const insight of codeActions) {
|
|
38
|
+
const icon = severityIcon[insight.severity] ?? "?";
|
|
39
|
+
const conf = insight.confidence !== "high" ? ` (${confidenceLabel[insight.confidence] ?? ""})` : "";
|
|
40
|
+
chart.push(`[${icon}] ${insight.summary}${conf}`);
|
|
41
|
+
if (insight.suggested_action) {
|
|
42
|
+
chart.push(` Action: ${insight.suggested_action}`);
|
|
43
|
+
}
|
|
44
|
+
if (insight.correlation_hint) {
|
|
45
|
+
chart.push(` Git hint: ${insight.correlation_hint}`);
|
|
46
|
+
}
|
|
47
|
+
if (insight.related_events.length > 0) {
|
|
48
|
+
chart.push(` Events: ${insight.related_events.join(", ")}`);
|
|
49
|
+
}
|
|
50
|
+
chart.push("");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (strategyActions.length > 0) {
|
|
54
|
+
chart.push("");
|
|
55
|
+
chart.push("STRATEGY (your call)");
|
|
56
|
+
chart.push("");
|
|
57
|
+
for (const insight of strategyActions) {
|
|
58
|
+
const icon = severityIcon[insight.severity] ?? "?";
|
|
59
|
+
const conf = insight.confidence !== "high" ? ` (${confidenceLabel[insight.confidence] ?? ""})` : "";
|
|
60
|
+
chart.push(`[${icon}] ${insight.summary}${conf}`);
|
|
61
|
+
if (insight.suggested_action) {
|
|
62
|
+
chart.push(` Action: ${insight.suggested_action}`);
|
|
63
|
+
}
|
|
64
|
+
chart.push("");
|
|
36
65
|
}
|
|
37
|
-
|
|
66
|
+
}
|
|
67
|
+
if (unclassified.length > 0) {
|
|
38
68
|
chart.push("");
|
|
69
|
+
chart.push("OTHER");
|
|
70
|
+
chart.push("");
|
|
71
|
+
for (const insight of unclassified) {
|
|
72
|
+
const icon = severityIcon[insight.severity] ?? "?";
|
|
73
|
+
chart.push(`[${icon}] ${insight.severity.toUpperCase()}: ${insight.summary}`);
|
|
74
|
+
const evidence = insight.evidence;
|
|
75
|
+
const evidenceStr = Object.entries(evidence)
|
|
76
|
+
.slice(0, 4)
|
|
77
|
+
.map(([k, v]) => `${k}=${typeof v === "number" ? v.toLocaleString() : v}`)
|
|
78
|
+
.join(", ");
|
|
79
|
+
if (evidenceStr) {
|
|
80
|
+
chart.push(` ${evidenceStr}`);
|
|
81
|
+
}
|
|
82
|
+
chart.push("");
|
|
83
|
+
}
|
|
39
84
|
}
|
|
40
|
-
const output =
|
|
85
|
+
const output = [
|
|
86
|
+
"Present this briefing to the user exactly as-is. For CODE ACTIONS, use the Git hint to run `git log` and find related commits before presenting. Add the likely cause to each item.",
|
|
87
|
+
"",
|
|
88
|
+
"```",
|
|
89
|
+
...chart,
|
|
90
|
+
"```",
|
|
91
|
+
].join("\n");
|
|
41
92
|
return output;
|
|
42
93
|
}
|
|
43
94
|
//# sourceMappingURL=get-insights.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-insights.js","sourceRoot":"","sources":["../../src/tools/get-insights.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;SAC9C,QAAQ,EAAE;SACV,QAAQ,CAAC,oEAAoE,CAAC;CAClF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAiB,EACjB,MAA6B;IAE7B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;QACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"get-insights.js","sourceRoot":"","sources":["../../src/tools/get-insights.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inferevents/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "MCP server for Infer analytics — 5 tools including auto-detected insights pushed hourly",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"build": "tsc",
|
|
24
24
|
"typecheck": "tsc --noEmit",
|
|
25
25
|
"test": "vitest run",
|
|
26
|
-
"lint": "tsc --noEmit"
|
|
26
|
+
"lint": "tsc --noEmit",
|
|
27
|
+
"deploy:remote": "wrangler deploy --config wrangler.remote.toml"
|
|
27
28
|
},
|
|
28
29
|
"dependencies": {
|
|
29
30
|
"@inferevents/shared": "^0.1.2",
|