@grackle-ai/mcp 0.27.0 → 0.29.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/auth-context.d.ts +16 -0
- package/dist/auth-context.d.ts.map +1 -0
- package/dist/auth-context.js +2 -0
- package/dist/auth-context.js.map +1 -0
- package/dist/auth-middleware.d.ts +15 -0
- package/dist/auth-middleware.d.ts.map +1 -0
- package/dist/auth-middleware.js +55 -0
- package/dist/auth-middleware.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +29 -23
- package/dist/mcp-server.js.map +1 -1
- package/dist/scoped-token.d.ts +55 -0
- package/dist/scoped-token.d.ts.map +1 -0
- package/dist/scoped-token.js +131 -0
- package/dist/scoped-token.js.map +1 -0
- package/dist/tool-registry.d.ts +2 -1
- package/dist/tool-registry.d.ts.map +1 -1
- package/dist/tool-registry.js.map +1 -1
- package/dist/tools/task.d.ts.map +1 -1
- package/dist/tools/task.js +6 -2
- package/dist/tools/task.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication context resolved from an incoming MCP request.
|
|
3
|
+
*
|
|
4
|
+
* - `"api-key"`: Full-access authentication via the global API key.
|
|
5
|
+
* - `"scoped"`: Session-scoped token identifying a specific task/session/persona.
|
|
6
|
+
*/
|
|
7
|
+
export type AuthContext = {
|
|
8
|
+
type: "api-key";
|
|
9
|
+
} | {
|
|
10
|
+
type: "scoped";
|
|
11
|
+
taskId: string;
|
|
12
|
+
projectId: string;
|
|
13
|
+
personaId: string;
|
|
14
|
+
taskSessionId: string;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=auth-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-context.d.ts","sourceRoot":"","sources":["../src/auth-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-context.js","sourceRoot":"","sources":["../src/auth-context.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type http from "node:http";
|
|
2
|
+
import type { AuthContext } from "./auth-context.js";
|
|
3
|
+
/**
|
|
4
|
+
* Authenticate an incoming MCP HTTP request.
|
|
5
|
+
*
|
|
6
|
+
* Supports two authentication modes:
|
|
7
|
+
* 1. **API key**: A 64-character hex Bearer token compared constant-time against the server API key.
|
|
8
|
+
* 2. **Scoped token**: An HMAC-signed token (contains a `.`) verified against the API key as signing secret.
|
|
9
|
+
*
|
|
10
|
+
* @param req - The incoming HTTP request.
|
|
11
|
+
* @param apiKey - The server's API key (used for both direct comparison and as the HMAC signing secret).
|
|
12
|
+
* @returns An {@link AuthContext} if authentication succeeds, or `undefined` for a 401.
|
|
13
|
+
*/
|
|
14
|
+
export declare function authenticateMcpRequest(req: http.IncomingMessage, apiKey: string): AuthContext | undefined;
|
|
15
|
+
//# sourceMappingURL=auth-middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-middleware.d.ts","sourceRoot":"","sources":["../src/auth-middleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAyCzG"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { timingSafeEqual } from "node:crypto";
|
|
2
|
+
import { isRevokedTask, verifyScopedToken } from "./scoped-token.js";
|
|
3
|
+
/** Expected length of API key tokens (64 hex characters). */
|
|
4
|
+
const API_KEY_LENGTH = 64;
|
|
5
|
+
/**
|
|
6
|
+
* Authenticate an incoming MCP HTTP request.
|
|
7
|
+
*
|
|
8
|
+
* Supports two authentication modes:
|
|
9
|
+
* 1. **API key**: A 64-character hex Bearer token compared constant-time against the server API key.
|
|
10
|
+
* 2. **Scoped token**: An HMAC-signed token (contains a `.`) verified against the API key as signing secret.
|
|
11
|
+
*
|
|
12
|
+
* @param req - The incoming HTTP request.
|
|
13
|
+
* @param apiKey - The server's API key (used for both direct comparison and as the HMAC signing secret).
|
|
14
|
+
* @returns An {@link AuthContext} if authentication succeeds, or `undefined` for a 401.
|
|
15
|
+
*/
|
|
16
|
+
export function authenticateMcpRequest(req, apiKey) {
|
|
17
|
+
const authHeader = req.headers.authorization || "";
|
|
18
|
+
const match = /^Bearer\s+(.+)$/i.exec(authHeader);
|
|
19
|
+
if (!match) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
const token = match[1];
|
|
23
|
+
if (token.length === 0) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
// Path 1: API key authentication (fixed-length hex token)
|
|
27
|
+
if (token.length === API_KEY_LENGTH && apiKey.length === API_KEY_LENGTH) {
|
|
28
|
+
const a = Buffer.from(token);
|
|
29
|
+
const b = Buffer.from(apiKey);
|
|
30
|
+
if (a.length === b.length && timingSafeEqual(a, b)) {
|
|
31
|
+
return { type: "api-key" };
|
|
32
|
+
}
|
|
33
|
+
// Fall through — a 64-char token that doesn't match the API key is invalid
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
// Path 2: Scoped token authentication (contains a dot separator)
|
|
37
|
+
if (token.includes(".")) {
|
|
38
|
+
const claims = verifyScopedToken(token, apiKey);
|
|
39
|
+
if (!claims) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
if (isRevokedTask(claims.sub)) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
type: "scoped",
|
|
47
|
+
taskId: claims.sub,
|
|
48
|
+
projectId: claims.pid,
|
|
49
|
+
personaId: claims.per,
|
|
50
|
+
taskSessionId: claims.sid,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=auth-middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-middleware.js","sourceRoot":"","sources":["../src/auth-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErE,6DAA6D;AAC7D,MAAM,cAAc,GAAW,EAAE,CAAC;AAElC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAyB,EAAE,MAAc;IAC9E,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,0DAA0D;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACxE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;QACD,2EAA2E;QAC3E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iEAAiE;IACjE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,MAAM,CAAC,GAAG;YAClB,SAAS,EAAE,MAAM,CAAC,GAAG;YACrB,SAAS,EAAE,MAAM,CAAC,GAAG;YACrB,aAAa,EAAE,MAAM,CAAC,GAAG;SAC1B,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { createMcpServer } from "./mcp-server.js";
|
|
2
2
|
export type { McpServerOptions } from "./mcp-server.js";
|
|
3
|
+
export type { AuthContext } from "./auth-context.js";
|
|
4
|
+
export { createScopedToken, revokeTask } from "./scoped-token.js";
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAmC7B,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AA6FD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAgDtE"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { randomUUID
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import http from "node:http";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
@@ -11,7 +11,9 @@ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/
|
|
|
11
11
|
import { ListToolsRequestSchema, CallToolRequestSchema, isInitializeRequest, } from "@modelcontextprotocol/sdk/types.js";
|
|
12
12
|
import pino from "pino";
|
|
13
13
|
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
14
|
+
import { authenticateMcpRequest } from "./auth-middleware.js";
|
|
14
15
|
import { grpcErrorToToolResult } from "./error-handler.js";
|
|
16
|
+
import { pruneRevocations } from "./scoped-token.js";
|
|
15
17
|
import { createToolRegistry } from "./tools/index.js";
|
|
16
18
|
/** Read the package version from package.json at module load time. */
|
|
17
19
|
const PACKAGE_VERSION = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), "..", "package.json"), "utf8")).version;
|
|
@@ -36,7 +38,7 @@ function createGrpcClient(bindHost, grpcPort, apiKey) {
|
|
|
36
38
|
return createClient(grackle.Grackle, transport);
|
|
37
39
|
}
|
|
38
40
|
/** Create a low-level MCP Server instance with tool handlers wired to the ConnectRPC backend. */
|
|
39
|
-
function createMcpServerInstance(grpcClient) {
|
|
41
|
+
function createMcpServerInstance(grpcClient, authContext) {
|
|
40
42
|
const registry = createToolRegistry();
|
|
41
43
|
const server = new Server({ name: "grackle-mcp", version: PACKAGE_VERSION }, { capabilities: { tools: {} } });
|
|
42
44
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
@@ -76,7 +78,7 @@ function createMcpServerInstance(grpcClient) {
|
|
|
76
78
|
}
|
|
77
79
|
try {
|
|
78
80
|
logger.info({ tool: name }, "Executing MCP tool: %s", name);
|
|
79
|
-
const result = await tool.handler(parsed.data, grpcClient);
|
|
81
|
+
const result = await tool.handler(parsed.data, grpcClient, authContext);
|
|
80
82
|
return result;
|
|
81
83
|
}
|
|
82
84
|
catch (error) {
|
|
@@ -95,20 +97,8 @@ function createMcpServerInstance(grpcClient) {
|
|
|
95
97
|
});
|
|
96
98
|
return server;
|
|
97
99
|
}
|
|
98
|
-
/**
|
|
99
|
-
|
|
100
|
-
* Uses constant-time comparison via timingSafeEqual.
|
|
101
|
-
*/
|
|
102
|
-
function verifyBearer(req, apiKey) {
|
|
103
|
-
const authHeader = req.headers.authorization || "";
|
|
104
|
-
const token = authHeader.replace(/^Bearer\s+/i, "");
|
|
105
|
-
if (token.length === 0 || token.length !== apiKey.length) {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
const a = Buffer.from(token);
|
|
109
|
-
const b = Buffer.from(apiKey);
|
|
110
|
-
return timingSafeEqual(a, b);
|
|
111
|
-
}
|
|
100
|
+
/** Interval for pruning stale revocation entries (1 hour). */
|
|
101
|
+
const REVOCATION_PRUNE_INTERVAL_MS = 60 * 60 * 1000;
|
|
112
102
|
/**
|
|
113
103
|
* Create an HTTP server that serves the MCP Streamable HTTP protocol on `/mcp`.
|
|
114
104
|
*
|
|
@@ -120,6 +110,11 @@ export function createMcpServer(options) {
|
|
|
120
110
|
const grpcClient = createGrpcClient(bindHost, grpcPort, apiKey);
|
|
121
111
|
/** Map of active session transports, keyed by session ID. */
|
|
122
112
|
const transports = new Map();
|
|
113
|
+
/** Map of authentication contexts, keyed by MCP session ID. */
|
|
114
|
+
const authContexts = new Map();
|
|
115
|
+
// Periodically prune stale revocation entries
|
|
116
|
+
const pruneInterval = setInterval(() => pruneRevocations(), REVOCATION_PRUNE_INTERVAL_MS);
|
|
117
|
+
pruneInterval.unref();
|
|
123
118
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
124
119
|
const httpServer = http.createServer(async (req, res) => {
|
|
125
120
|
const url = new URL(req.url || "/", `http://${req.headers.host || "localhost"}`);
|
|
@@ -130,20 +125,21 @@ export function createMcpServer(options) {
|
|
|
130
125
|
return;
|
|
131
126
|
}
|
|
132
127
|
// Auth check on every request
|
|
133
|
-
|
|
128
|
+
const authContext = authenticateMcpRequest(req, apiKey);
|
|
129
|
+
if (!authContext) {
|
|
134
130
|
res.writeHead(401, { "Content-Type": "application/json" });
|
|
135
131
|
res.end(JSON.stringify({ error: "Unauthorized" }));
|
|
136
132
|
return;
|
|
137
133
|
}
|
|
138
134
|
const method = req.method?.toUpperCase();
|
|
139
135
|
if (method === "POST") {
|
|
140
|
-
await handlePost(req, res, grpcClient, transports);
|
|
136
|
+
await handlePost(req, res, grpcClient, transports, authContexts, authContext);
|
|
141
137
|
}
|
|
142
138
|
else if (method === "GET") {
|
|
143
139
|
await handleGet(req, res, transports);
|
|
144
140
|
}
|
|
145
141
|
else if (method === "DELETE") {
|
|
146
|
-
await handleDelete(req, res, transports);
|
|
142
|
+
await handleDelete(req, res, transports, authContexts);
|
|
147
143
|
}
|
|
148
144
|
else {
|
|
149
145
|
res.writeHead(405, { "Content-Type": "application/json" });
|
|
@@ -181,11 +177,18 @@ async function parseBody(req) {
|
|
|
181
177
|
});
|
|
182
178
|
}
|
|
183
179
|
/** Handle POST requests to /mcp — initialization or tool calls. */
|
|
184
|
-
async function handlePost(req, res, grpcClient, transports) {
|
|
180
|
+
async function handlePost(req, res, grpcClient, transports, authContexts, authContext) {
|
|
185
181
|
try {
|
|
186
182
|
const body = await parseBody(req);
|
|
187
183
|
const sessionId = req.headers["mcp-session-id"];
|
|
188
184
|
if (sessionId && transports.has(sessionId)) {
|
|
185
|
+
// Reject if the auth type changed from the session's initial auth context
|
|
186
|
+
const initialAuth = authContexts.get(sessionId);
|
|
187
|
+
if (initialAuth && initialAuth.type !== authContext.type) {
|
|
188
|
+
res.writeHead(403, { "Content-Type": "application/json" });
|
|
189
|
+
res.end(JSON.stringify({ error: "Auth context mismatch for session" }));
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
189
192
|
// Existing session — route to its transport
|
|
190
193
|
const transport = transports.get(sessionId);
|
|
191
194
|
await transport.handleRequest(req, res, body);
|
|
@@ -198,6 +201,7 @@ async function handlePost(req, res, grpcClient, transports) {
|
|
|
198
201
|
onsessioninitialized: (sid) => {
|
|
199
202
|
logger.info({ sessionId: sid }, "MCP session initialized");
|
|
200
203
|
transports.set(sid, transport);
|
|
204
|
+
authContexts.set(sid, authContext);
|
|
201
205
|
},
|
|
202
206
|
});
|
|
203
207
|
transport.onclose = () => {
|
|
@@ -205,9 +209,10 @@ async function handlePost(req, res, grpcClient, transports) {
|
|
|
205
209
|
if (sid && transports.has(sid)) {
|
|
206
210
|
logger.info({ sessionId: sid }, "MCP session closed");
|
|
207
211
|
transports.delete(sid);
|
|
212
|
+
authContexts.delete(sid);
|
|
208
213
|
}
|
|
209
214
|
};
|
|
210
|
-
const mcpServer = createMcpServerInstance(grpcClient);
|
|
215
|
+
const mcpServer = createMcpServerInstance(grpcClient, authContext);
|
|
211
216
|
await mcpServer.connect(transport);
|
|
212
217
|
await transport.handleRequest(req, res, body);
|
|
213
218
|
return;
|
|
@@ -244,7 +249,7 @@ async function handleGet(req, res, transports) {
|
|
|
244
249
|
await transport.handleRequest(req, res);
|
|
245
250
|
}
|
|
246
251
|
/** Handle DELETE requests to /mcp — session termination. */
|
|
247
|
-
async function handleDelete(req, res, transports) {
|
|
252
|
+
async function handleDelete(req, res, transports, authContexts) {
|
|
248
253
|
const sessionId = req.headers["mcp-session-id"];
|
|
249
254
|
if (!sessionId || !transports.has(sessionId)) {
|
|
250
255
|
res.writeHead(400, { "Content-Type": "application/json" });
|
|
@@ -254,6 +259,7 @@ async function handleDelete(req, res, transports) {
|
|
|
254
259
|
const transport = transports.get(sessionId);
|
|
255
260
|
try {
|
|
256
261
|
await transport.handleRequest(req, res);
|
|
262
|
+
authContexts.delete(sessionId);
|
|
257
263
|
}
|
|
258
264
|
catch (error) {
|
|
259
265
|
logger.error({ err: error }, "Error handling session termination");
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** Claims embedded in a scoped token payload. */
|
|
2
|
+
export interface ScopedTokenClaims {
|
|
3
|
+
/** Task ID (subject). */
|
|
4
|
+
sub: string;
|
|
5
|
+
/** Project ID. */
|
|
6
|
+
pid: string;
|
|
7
|
+
/** Persona ID. */
|
|
8
|
+
per: string;
|
|
9
|
+
/** Session ID. */
|
|
10
|
+
sid: string;
|
|
11
|
+
/** Issued-at time (epoch seconds). */
|
|
12
|
+
iat: number;
|
|
13
|
+
/** Expiry time (epoch seconds). */
|
|
14
|
+
exp: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a scoped token with the given claims, signed with the provided secret.
|
|
18
|
+
*
|
|
19
|
+
* @param claims - Token claims (sub, pid, per, sid). iat/exp are set automatically.
|
|
20
|
+
* @param signingSecret - Secret used to HMAC-sign the token (typically the API key).
|
|
21
|
+
* @param ttlMs - Token time-to-live in milliseconds (default: 24 hours).
|
|
22
|
+
* @returns The signed opaque token string.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createScopedToken(claims: Pick<ScopedTokenClaims, "sub" | "pid" | "per" | "sid">, signingSecret: string, ttlMs?: number): string;
|
|
25
|
+
/**
|
|
26
|
+
* Verify a scoped token's signature and expiry.
|
|
27
|
+
*
|
|
28
|
+
* Uses constant-time comparison for the HMAC signature.
|
|
29
|
+
*
|
|
30
|
+
* @param token - The token string to verify.
|
|
31
|
+
* @param signingSecret - The secret used to verify the HMAC signature.
|
|
32
|
+
* @returns The decoded claims if valid, or `undefined` if verification fails.
|
|
33
|
+
*/
|
|
34
|
+
export declare function verifyScopedToken(token: string, signingSecret: string): ScopedTokenClaims | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Revoke all tokens for a given task ID.
|
|
37
|
+
* Revoked tokens are rejected by `authenticateMcpRequest` even if not yet expired.
|
|
38
|
+
*/
|
|
39
|
+
export declare function revokeTask(taskId: string): void;
|
|
40
|
+
/** Check whether a task ID has been revoked. */
|
|
41
|
+
export declare function isRevokedTask(taskId: string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Remove revocation entries older than the given TTL.
|
|
44
|
+
* Since expired tokens are already rejected by the `exp` check,
|
|
45
|
+
* revocation entries only need to live as long as the token TTL.
|
|
46
|
+
*
|
|
47
|
+
* @param ttlMs - Maximum age of revocation entries in milliseconds (default: 24 hours).
|
|
48
|
+
*/
|
|
49
|
+
export declare function pruneRevocations(ttlMs?: number): void;
|
|
50
|
+
/**
|
|
51
|
+
* Clear all revocation entries. Intended for testing only.
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export declare function clearRevocations(): void;
|
|
55
|
+
//# sourceMappingURL=scoped-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoped-token.d.ts","sourceRoot":"","sources":["../src/scoped-token.ts"],"names":[],"mappings":"AAKA,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;CACb;AAoBD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,EAC9D,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,MAAuB,GAC7B,MAAM,CAWR;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CA2DrG;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,MAAuB,GAAG,IAAI,CAOrE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
2
|
+
/** Default token time-to-live: 24 hours in milliseconds. */
|
|
3
|
+
const DEFAULT_TTL_MS = 24 * 60 * 60 * 1000;
|
|
4
|
+
/** In-memory revocation set: taskId → revocation timestamp (epoch ms). */
|
|
5
|
+
const revokedTasks = new Map();
|
|
6
|
+
/** Encode a buffer as base64url (no padding). */
|
|
7
|
+
function toBase64Url(buf) {
|
|
8
|
+
return buf.toString("base64url");
|
|
9
|
+
}
|
|
10
|
+
/** Decode a base64url string to a Buffer. */
|
|
11
|
+
function fromBase64Url(str) {
|
|
12
|
+
return Buffer.from(str, "base64url");
|
|
13
|
+
}
|
|
14
|
+
/** Compute HMAC-SHA256 signature over a payload string. */
|
|
15
|
+
function sign(payload, secret) {
|
|
16
|
+
return createHmac("sha256", secret).update(payload).digest();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a scoped token with the given claims, signed with the provided secret.
|
|
20
|
+
*
|
|
21
|
+
* @param claims - Token claims (sub, pid, per, sid). iat/exp are set automatically.
|
|
22
|
+
* @param signingSecret - Secret used to HMAC-sign the token (typically the API key).
|
|
23
|
+
* @param ttlMs - Token time-to-live in milliseconds (default: 24 hours).
|
|
24
|
+
* @returns The signed opaque token string.
|
|
25
|
+
*/
|
|
26
|
+
export function createScopedToken(claims, signingSecret, ttlMs = DEFAULT_TTL_MS) {
|
|
27
|
+
const now = Math.floor(Date.now() / 1000);
|
|
28
|
+
const payload = {
|
|
29
|
+
...claims,
|
|
30
|
+
iat: now,
|
|
31
|
+
exp: now + Math.floor(ttlMs / 1000),
|
|
32
|
+
};
|
|
33
|
+
const payloadStr = JSON.stringify(payload);
|
|
34
|
+
const payloadEncoded = toBase64Url(Buffer.from(payloadStr, "utf8"));
|
|
35
|
+
const signature = toBase64Url(sign(payloadEncoded, signingSecret));
|
|
36
|
+
return `${payloadEncoded}.${signature}`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Verify a scoped token's signature and expiry.
|
|
40
|
+
*
|
|
41
|
+
* Uses constant-time comparison for the HMAC signature.
|
|
42
|
+
*
|
|
43
|
+
* @param token - The token string to verify.
|
|
44
|
+
* @param signingSecret - The secret used to verify the HMAC signature.
|
|
45
|
+
* @returns The decoded claims if valid, or `undefined` if verification fails.
|
|
46
|
+
*/
|
|
47
|
+
export function verifyScopedToken(token, signingSecret) {
|
|
48
|
+
const dotIndex = token.indexOf(".");
|
|
49
|
+
if (dotIndex === -1 || dotIndex === 0 || dotIndex === token.length - 1) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
// Reject tokens with multiple dots
|
|
53
|
+
if (token.indexOf(".", dotIndex + 1) !== -1) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
const payloadEncoded = token.slice(0, dotIndex);
|
|
57
|
+
const signatureEncoded = token.slice(dotIndex + 1);
|
|
58
|
+
// Verify signature using constant-time comparison
|
|
59
|
+
const expectedSignature = sign(payloadEncoded, signingSecret);
|
|
60
|
+
let actualSignature;
|
|
61
|
+
try {
|
|
62
|
+
actualSignature = fromBase64Url(signatureEncoded);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
if (expectedSignature.length !== actualSignature.length) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
if (!timingSafeEqual(expectedSignature, actualSignature)) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
// Decode and parse payload
|
|
74
|
+
let claims;
|
|
75
|
+
try {
|
|
76
|
+
const payloadStr = fromBase64Url(payloadEncoded).toString("utf8");
|
|
77
|
+
claims = JSON.parse(payloadStr);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
// Validate claim types to prevent bypass via crafted payloads
|
|
83
|
+
if (typeof claims.sub !== "string" ||
|
|
84
|
+
typeof claims.pid !== "string" ||
|
|
85
|
+
typeof claims.per !== "string" ||
|
|
86
|
+
typeof claims.sid !== "string" ||
|
|
87
|
+
!Number.isFinite(claims.iat) ||
|
|
88
|
+
!Number.isFinite(claims.exp)) {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
// Check expiry (exp must be strictly greater than both iat and now)
|
|
92
|
+
const now = Math.floor(Date.now() / 1000);
|
|
93
|
+
if (claims.exp <= now || claims.exp <= claims.iat) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
return claims;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Revoke all tokens for a given task ID.
|
|
100
|
+
* Revoked tokens are rejected by `authenticateMcpRequest` even if not yet expired.
|
|
101
|
+
*/
|
|
102
|
+
export function revokeTask(taskId) {
|
|
103
|
+
revokedTasks.set(taskId, Date.now());
|
|
104
|
+
}
|
|
105
|
+
/** Check whether a task ID has been revoked. */
|
|
106
|
+
export function isRevokedTask(taskId) {
|
|
107
|
+
return revokedTasks.has(taskId);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Remove revocation entries older than the given TTL.
|
|
111
|
+
* Since expired tokens are already rejected by the `exp` check,
|
|
112
|
+
* revocation entries only need to live as long as the token TTL.
|
|
113
|
+
*
|
|
114
|
+
* @param ttlMs - Maximum age of revocation entries in milliseconds (default: 24 hours).
|
|
115
|
+
*/
|
|
116
|
+
export function pruneRevocations(ttlMs = DEFAULT_TTL_MS) {
|
|
117
|
+
const cutoff = Date.now() - ttlMs;
|
|
118
|
+
for (const [taskId, revokedAt] of revokedTasks) {
|
|
119
|
+
if (revokedAt < cutoff) {
|
|
120
|
+
revokedTasks.delete(taskId);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Clear all revocation entries. Intended for testing only.
|
|
126
|
+
* @internal
|
|
127
|
+
*/
|
|
128
|
+
export function clearRevocations() {
|
|
129
|
+
revokedTasks.clear();
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=scoped-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoped-token.js","sourceRoot":"","sources":["../src/scoped-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,4DAA4D;AAC5D,MAAM,cAAc,GAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAkBnD,0EAA0E;AAC1E,MAAM,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;AAEpD,iDAAiD;AACjD,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,6CAA6C;AAC7C,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AACvC,CAAC;AAED,2DAA2D;AAC3D,SAAS,IAAI,CAAC,OAAe,EAAE,MAAc;IAC3C,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA8D,EAC9D,aAAqB,EACrB,QAAgB,cAAc;IAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAsB;QACjC,GAAG,MAAM;QACT,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;KACpC,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IACnE,OAAO,GAAG,cAAc,IAAI,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,aAAqB;IACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mCAAmC;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAEnD,kDAAkD;IAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC9D,IAAI,eAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,eAAe,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAsB,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,IACE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAC9B,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAC9B,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAC9B,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAC9B,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QAC5B,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAC5B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oEAAoE;IACpE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,cAAc;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IAClC,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,YAAY,EAAE,CAAC;QAC/C,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;YACvB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,YAAY,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC"}
|
package/dist/tool-registry.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Client } from "@connectrpc/connect";
|
|
2
2
|
import type { grackle } from "@grackle-ai/common";
|
|
3
3
|
import type { ZodType } from "zod";
|
|
4
|
+
import type { AuthContext } from "./auth-context.js";
|
|
4
5
|
/** Content item returned by an MCP tool handler. */
|
|
5
6
|
export interface ToolContent {
|
|
6
7
|
type: "text";
|
|
@@ -36,7 +37,7 @@ export interface ToolDefinition {
|
|
|
36
37
|
/** Optional behavioral hints for the client. */
|
|
37
38
|
annotations?: ToolAnnotations;
|
|
38
39
|
/** Execute the tool, forwarding to the ConnectRPC backend. */
|
|
39
|
-
handler: (args: Record<string, unknown>, client: Client<typeof grackle.Grackle
|
|
40
|
+
handler: (args: Record<string, unknown>, client: Client<typeof grackle.Grackle>, authContext?: AuthContext) => Promise<ToolResult>;
|
|
40
41
|
}
|
|
41
42
|
/** Predicate function for filtering tools (used by persona-scoped filtering). */
|
|
42
43
|
export type ToolPredicate = (tool: ToolDefinition) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,8DAA8D;IAC9D,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACpI;AAED,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC;AAE9D,0EAA0E;AAC1E,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAEhE,sFAAsF;IAC/E,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAO3C,6CAA6C;IACtC,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI;IAMjD,uEAAuE;IAChE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,cAAc,EAAE;IAQxD,8DAA8D;IACvD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;CAGrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AAiDA,0EAA0E;AAC1E,MAAM,OAAO,YAAY;IACN,KAAK,GAAgC,IAAI,GAAG,EAAE,CAAC;IAEhE,sFAAsF;IAC/E,QAAQ,CAAC,IAAoB;QAClC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,6CAA6C;IACtC,WAAW,CAAC,KAAuB;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,uEAAuE;IAChE,IAAI,CAAC,SAAyB;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8DAA8D;IACvD,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
package/dist/tools/task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAY1D,mHAAmH;AACnH,eAAO,MAAM,SAAS,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAY1D,mHAAmH;AACnH,eAAO,MAAM,SAAS,EAAE,cAAc,EA2XrC,CAAC"}
|
package/dist/tools/task.js
CHANGED
|
@@ -15,9 +15,11 @@ export const taskTools = [
|
|
|
15
15
|
{
|
|
16
16
|
name: "task_list",
|
|
17
17
|
group: "task",
|
|
18
|
-
description: "List all tasks in a Grackle project with their status, title, and assignment information.",
|
|
18
|
+
description: "List all tasks in a Grackle project with their status, title, and assignment information. Supports optional search and status filters.",
|
|
19
19
|
inputSchema: z.object({
|
|
20
20
|
projectId: z.string().describe("The project ID to list tasks for"),
|
|
21
|
+
search: z.string().optional().describe("Case-insensitive substring filter on task title or description"),
|
|
22
|
+
status: z.string().optional().describe("Filter by task status: not_started, working, paused, complete, failed"),
|
|
21
23
|
}),
|
|
22
24
|
rpcMethod: "listTasks",
|
|
23
25
|
mutating: false,
|
|
@@ -30,7 +32,9 @@ export const taskTools = [
|
|
|
30
32
|
async handler(args, client) {
|
|
31
33
|
try {
|
|
32
34
|
const response = await client.listTasks({
|
|
33
|
-
|
|
35
|
+
projectId: args.projectId,
|
|
36
|
+
search: args.search || "",
|
|
37
|
+
status: args.status || "",
|
|
34
38
|
});
|
|
35
39
|
const summaries = response.tasks.map((task) => ({
|
|
36
40
|
id: task.id,
|
package/dist/tools/task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,iFAAiF;AACjF,SAAS,UAAU,CAAC,IAAkB;IACpC,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM;KACvD,CAAC;AACJ,CAAC;AAED,mHAAmH;AACnH,MAAM,CAAC,MAAM,SAAS,GAAqB;IACzC,2EAA2E;IAC3E;QACE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,MAAM;QACb,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grackle-ai/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "MCP (Model Context Protocol) server for Grackle — translates MCP tool calls to ConnectRPC",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"pino": "^10.3.1",
|
|
35
35
|
"zod": "^3.23.0",
|
|
36
36
|
"zod-to-json-schema": "^3.24.0",
|
|
37
|
-
"@grackle-ai/common": "0.
|
|
37
|
+
"@grackle-ai/common": "0.29.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@rushstack/heft": "1.2.4",
|