jetty-mcp-server 1.0.3 → 1.1.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 CHANGED
@@ -91,6 +91,65 @@ JETTY_API_TOKEN=mlc_your_token npx -y jetty-mcp-server
91
91
  | `add-label` | Label a trajectory (e.g., quality=high) |
92
92
  | `list-step-templates` | List available step templates |
93
93
  | `get-step-template` | Get template details and schema |
94
+ | `check-secrets` | Compare a collection's env vars with what a runbook needs |
95
+ | `set-environment-vars` | Set env vars on a collection |
96
+ | `get-trial-status` / `activate-trial` | Trial keys for a collection |
97
+ | `list-routines` / `get-routine` / `create-routine` / `update-routine` / `delete-routine` / `pause-routine` / `resume-routine` / `run-routine-now` / `list-routine-runs` | Scheduled runs (the API calls a schedule a *routine*) |
98
+
99
+ ## Use as a library
100
+
101
+ Version 1.1.0 splits the package into importable pieces (all ESM):
102
+
103
+ | Import | Runs in | What it gives you |
104
+ |--------|---------|-------------------|
105
+ | `jetty-mcp-server` | Node | `JettyClient` (token from env / `~/.config/jetty/token`), `registerTools`, the catalog, and the WebMCP helpers |
106
+ | `jetty-mcp-server/api-client` | Browser + Node | `JettyApiClient` — the API client with the token, origin and URL builder passed in |
107
+ | `jetty-mcp-server/tool-definitions` | Browser + Node | `JETTY_TOOLS` — every tool as data: name, description, zod input shape, annotations, handler |
108
+ | `jetty-mcp-server/tools` | Node | `registerTools(server, client)` for an `McpServer` |
109
+ | `jetty-mcp-server/webmcp` | Browser + Node | The catalog as WebMCP tools (see below) |
110
+
111
+ `npx jetty-mcp-server` still starts the stdio server; nothing changes for editor setups.
112
+
113
+ ## WebMCP: the same tools in the browser
114
+
115
+ [WebMCP](https://webmachinelearning.github.io/webmcp/) lets a web page hand tools to an
116
+ in-browser agent through `navigator.modelContext`. A site that already knows who the
117
+ visitor is can register the whole Jetty catalog, executed with the visitor's own session:
118
+
119
+ ```ts
120
+ import { JettyApiClient } from "jetty-mcp-server/api-client";
121
+ import { findModelContext, registerJettyWebMcpTools } from "jetty-mcp-server/webmcp";
122
+
123
+ const modelContext = findModelContext(); // document.modelContext, then navigator.modelContext
124
+ if (modelContext) {
125
+ const client = new JettyApiClient({
126
+ token: () => session.getToken(), // called on every request
127
+ buildUrl: (path) => `/api/mise${path.slice("/api/v1".length)}`, // a same-origin proxy
128
+ });
129
+ const controller = new AbortController();
130
+ registerJettyWebMcpTools(modelContext, client, {
131
+ signal: controller.signal, // abort to unregister
132
+ readOnly: false, // or true for list/get tools only
133
+ include: ["list-tasks", "run-workflow"], // optional allow-list
134
+ });
135
+ }
136
+ ```
137
+
138
+ Two tools stay MCP-only and are never exposed over WebMCP, even when `include` names
139
+ them: `get-trial-status` and `activate-trial` (trial keys are an account-level concern
140
+ for the local agent that set the workspace up, not something a page hands to a browser
141
+ agent). `JETTY_WEBMCP_TOOLS` is the eligible subset.
142
+
143
+ Each WebMCP tool carries the MCP tool's name, description, a JSON-Schema `inputSchema`
144
+ derived from the zod shape, MCP-style `annotations` (`readOnlyHint`, `destructiveHint`),
145
+ and an `execute` that validates input, calls the API, and returns the same
146
+ `{ content: [{ type: "text", text }] }` envelope the MCP server returns (with
147
+ `isError: true` on failure instead of throwing). Both API shapes are supported:
148
+ `registerTool(tool, { signal })` and the earlier `provideContext({ tools })`.
149
+
150
+ `flows-api.jetty.io` sends no CORS headers, so a page must call it through a proxy on its
151
+ own origin (hence `buildUrl`) or a backend that adds the bearer token. jetty.io does this
152
+ for signed-in users on its app pages.
94
153
 
95
154
  ## Development
96
155
 
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Jetty API client core. Browser-safe: no Node built-ins, no environment
3
+ * reads. Credentials and the API origin come in through the constructor, so
4
+ * the same class serves the stdio MCP server (see client.ts, which resolves
5
+ * the token from JETTY_API_TOKEN / ~/.config/jetty/token) and WebMCP in a
6
+ * page (see webmcp.ts, where a site passes a session token getter and a
7
+ * same-origin proxy).
8
+ */
9
+ export declare const DEFAULT_API_URL = "https://flows-api.jetty.io";
10
+ /** A bearer token, or a function that yields one per request. */
11
+ export type TokenSource = string | (() => string | undefined | Promise<string | undefined>);
12
+ export interface JettyApiClientOptions {
13
+ /** Bearer token, or a getter called on every request (e.g. a fresh session JWT). */
14
+ token?: TokenSource;
15
+ /** API origin. Defaults to https://flows-api.jetty.io. */
16
+ apiUrl?: string;
17
+ /** fetch implementation. Defaults to globalThis.fetch, resolved per request. */
18
+ fetch?: typeof fetch;
19
+ /**
20
+ * Maps an API path (always `/api/v1/...`) to the URL to request. Defaults
21
+ * to `${apiUrl}${path}`. Override it behind a same-origin proxy, e.g.
22
+ * jetty.io rewrites `/api/mise/:path*` to `${mise}/api/v1/:path*`.
23
+ */
24
+ buildUrl?: (path: string, apiUrl: string) => string;
25
+ /** Error message thrown when no token is available. */
26
+ missingTokenMessage?: string;
27
+ }
28
+ export declare class JettyApiClient {
29
+ protected readonly apiUrl: string;
30
+ private readonly tokenSource;
31
+ private readonly fetchImpl;
32
+ private readonly buildUrlImpl;
33
+ private readonly missingTokenMessage;
34
+ constructor(options?: JettyApiClientOptions);
35
+ protected requireToken(): Promise<string>;
36
+ private request;
37
+ private api;
38
+ listCollections(): Promise<unknown>;
39
+ getCollection(collection: string): Promise<unknown>;
40
+ listTasks(collection: string): Promise<unknown>;
41
+ getTask(collection: string, task: string): Promise<unknown>;
42
+ createTask(collection: string, name: string, workflow: unknown, description?: string): Promise<unknown>;
43
+ updateTask(collection: string, task: string, updates: {
44
+ workflow?: unknown;
45
+ description?: string;
46
+ }): Promise<unknown>;
47
+ deleteTask(collection: string, task: string): Promise<unknown>;
48
+ getTrialStatus(collection: string): Promise<unknown>;
49
+ activateTrial(collection: string): Promise<unknown>;
50
+ getCollectionEnvironment(collection: string): Promise<unknown>;
51
+ runWorkflow(collection: string, task: string, initParams?: Record<string, unknown>): Promise<unknown>;
52
+ runWorkflowSync(collection: string, task: string, initParams?: Record<string, unknown>): Promise<unknown>;
53
+ listTrajectories(collection: string, task: string, limit?: number, page?: number): Promise<unknown>;
54
+ getTrajectory(collection: string, task: string, trajectoryId: string): Promise<unknown>;
55
+ getStats(collection: string, task: string): Promise<unknown>;
56
+ addLabel(collection: string, task: string, trajectoryId: string, key: string, value: string, author: string): Promise<unknown>;
57
+ getWorkflowLogs(workflowId: string): Promise<unknown>;
58
+ listStepTemplates(): Promise<unknown>;
59
+ getStepTemplate(name: string): Promise<unknown>;
60
+ setEnvironmentVars(collection: string, vars: Record<string, string>): Promise<unknown>;
61
+ listRoutines(collection: string, task?: string): Promise<unknown>;
62
+ getRoutine(collection: string, task: string, name: string): Promise<unknown>;
63
+ createRoutine(collection: string, task: string, body: Record<string, unknown>): Promise<unknown>;
64
+ updateRoutine(collection: string, task: string, name: string, patch: Record<string, unknown>): Promise<unknown>;
65
+ deleteRoutine(collection: string, task: string, name: string): Promise<unknown>;
66
+ pauseRoutine(collection: string, task: string, name: string): Promise<unknown>;
67
+ resumeRoutine(collection: string, task: string, name: string): Promise<unknown>;
68
+ runRoutineNow(collection: string, task: string, name: string): Promise<unknown>;
69
+ listRoutineRuns(collection: string, task: string, name: string, limit?: number): Promise<unknown>;
70
+ }
71
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Jetty API client core. Browser-safe: no Node built-ins, no environment
3
+ * reads. Credentials and the API origin come in through the constructor, so
4
+ * the same class serves the stdio MCP server (see client.ts, which resolves
5
+ * the token from JETTY_API_TOKEN / ~/.config/jetty/token) and WebMCP in a
6
+ * page (see webmcp.ts, where a site passes a session token getter and a
7
+ * same-origin proxy).
8
+ */
9
+ export const DEFAULT_API_URL = "https://flows-api.jetty.io";
10
+ /** A dynamic path segment, so reserved characters cannot alter the route. */
11
+ const seg = (value) => encodeURIComponent(String(value));
12
+ const DEFAULT_MISSING_TOKEN = "No Jetty token available. Pass `token` (a string or a getter) to the client.";
13
+ export class JettyApiClient {
14
+ apiUrl;
15
+ tokenSource;
16
+ fetchImpl;
17
+ buildUrlImpl;
18
+ missingTokenMessage;
19
+ constructor(options = {}) {
20
+ this.tokenSource = options.token;
21
+ this.apiUrl = (options.apiUrl || DEFAULT_API_URL).replace(/\/+$/, "");
22
+ this.fetchImpl = options.fetch;
23
+ this.buildUrlImpl = options.buildUrl ?? ((path, apiUrl) => `${apiUrl}${path}`);
24
+ this.missingTokenMessage = options.missingTokenMessage ?? DEFAULT_MISSING_TOKEN;
25
+ }
26
+ async requireToken() {
27
+ const source = this.tokenSource;
28
+ const token = typeof source === "function" ? await source() : source;
29
+ if (!token)
30
+ throw new Error(this.missingTokenMessage);
31
+ return token;
32
+ }
33
+ async request(path, options = {}) {
34
+ const url = this.buildUrlImpl(path, this.apiUrl);
35
+ const headers = {
36
+ Authorization: `Bearer ${await this.requireToken()}`,
37
+ ...(options.headers || {}),
38
+ };
39
+ // Resolved per request so a test (or a page) may swap globalThis.fetch
40
+ // after construction.
41
+ const fetchImpl = this.fetchImpl ?? globalThis.fetch;
42
+ const res = await fetchImpl(url, { ...options, headers });
43
+ if (!res.ok) {
44
+ const body = await res.text();
45
+ throw new Error(`Jetty API error ${res.status}: ${body}`);
46
+ }
47
+ const contentType = res.headers.get("content-type") || "";
48
+ if (contentType.includes("application/json")) {
49
+ return res.json();
50
+ }
51
+ return res.text();
52
+ }
53
+ api(path, options) {
54
+ return this.request(path, options);
55
+ }
56
+ // Collections
57
+ async listCollections() {
58
+ return this.api("/api/v1/collections/");
59
+ }
60
+ async getCollection(collection) {
61
+ return this.api(`/api/v1/collections/${seg(collection)}`);
62
+ }
63
+ // Tasks
64
+ async listTasks(collection) {
65
+ return this.api(`/api/v1/tasks/${seg(collection)}/`);
66
+ }
67
+ async getTask(collection, task) {
68
+ return this.api(`/api/v1/tasks/${seg(collection)}/${seg(task)}`);
69
+ }
70
+ async createTask(collection, name, workflow, description) {
71
+ return this.api(`/api/v1/tasks/${seg(collection)}`, {
72
+ method: "POST",
73
+ headers: { "Content-Type": "application/json" },
74
+ body: JSON.stringify({ name, description: description || "", workflow }),
75
+ });
76
+ }
77
+ async updateTask(collection, task, updates) {
78
+ return this.api(`/api/v1/tasks/${seg(collection)}/${seg(task)}`, {
79
+ method: "PUT",
80
+ headers: { "Content-Type": "application/json" },
81
+ body: JSON.stringify(updates),
82
+ });
83
+ }
84
+ async deleteTask(collection, task) {
85
+ return this.api(`/api/v1/tasks/${seg(collection)}/${seg(task)}`, {
86
+ method: "DELETE",
87
+ });
88
+ }
89
+ // Trial keys
90
+ async getTrialStatus(collection) {
91
+ return this.api(`/api/v1/trial/${seg(collection)}`);
92
+ }
93
+ async activateTrial(collection) {
94
+ return this.api(`/api/v1/trial/${seg(collection)}/activate`, {
95
+ method: "POST",
96
+ });
97
+ }
98
+ // Collection environment
99
+ async getCollectionEnvironment(collection) {
100
+ return this.api(`/api/v1/collections/${seg(collection)}/environment`);
101
+ }
102
+ // Run workflows. Trial keys are injected automatically server-side when
103
+ // the collection is eligible — there is no flag to send.
104
+ async runWorkflow(collection, task, initParams) {
105
+ const formData = new FormData();
106
+ formData.append("init_params", JSON.stringify(initParams || {}));
107
+ return this.api(`/api/v1/run/${seg(collection)}/${seg(task)}`, {
108
+ method: "POST",
109
+ body: formData,
110
+ });
111
+ }
112
+ async runWorkflowSync(collection, task, initParams) {
113
+ const formData = new FormData();
114
+ formData.append("init_params", JSON.stringify(initParams || {}));
115
+ return this.api(`/api/v1/run-sync/${seg(collection)}/${seg(task)}`, {
116
+ method: "POST",
117
+ body: formData,
118
+ });
119
+ }
120
+ // Trajectories
121
+ async listTrajectories(collection, task, limit = 10, page = 1) {
122
+ return this.api(`/api/v1/db/trajectories/${seg(collection)}/${seg(task)}?limit=${seg(limit)}&page=${seg(page)}`);
123
+ }
124
+ async getTrajectory(collection, task, trajectoryId) {
125
+ return this.api(`/api/v1/db/trajectory/${seg(collection)}/${seg(task)}/${seg(trajectoryId)}`);
126
+ }
127
+ // Stats
128
+ async getStats(collection, task) {
129
+ return this.api(`/api/v1/db/stats/${seg(collection)}/${seg(task)}`);
130
+ }
131
+ // Labels
132
+ async addLabel(collection, task, trajectoryId, key, value, author) {
133
+ return this.api(`/api/v1/trajectory/${seg(collection)}/${seg(task)}/${seg(trajectoryId)}/labels`, {
134
+ method: "POST",
135
+ headers: { "Content-Type": "application/json" },
136
+ body: JSON.stringify({ key, value, author }),
137
+ });
138
+ }
139
+ // Workflow logs
140
+ async getWorkflowLogs(workflowId) {
141
+ return this.api(`/api/v1/workflows-logs/${seg(workflowId)}`);
142
+ }
143
+ // Step templates
144
+ async listStepTemplates() {
145
+ return this.request("/api/v1/step-templates");
146
+ }
147
+ async getStepTemplate(name) {
148
+ return this.request(`/api/v1/step-templates/${seg(name)}`);
149
+ }
150
+ // Environment variables
151
+ async setEnvironmentVars(collection, vars) {
152
+ return this.api(`/api/v1/collections/${seg(collection)}/environment`, {
153
+ method: "PATCH",
154
+ headers: { "Content-Type": "application/json" },
155
+ body: JSON.stringify({ environment_variables: vars }),
156
+ });
157
+ }
158
+ // Routines (scheduled runs)
159
+ async listRoutines(collection, task) {
160
+ const path = task
161
+ ? `/api/v1/routines/${seg(collection)}/${seg(task)}`
162
+ : `/api/v1/routines/${seg(collection)}`;
163
+ return this.api(path);
164
+ }
165
+ async getRoutine(collection, task, name) {
166
+ return this.api(`/api/v1/routines/${seg(collection)}/${seg(task)}/${seg(name)}`);
167
+ }
168
+ async createRoutine(collection, task, body) {
169
+ return this.api(`/api/v1/routines/${seg(collection)}/${seg(task)}`, {
170
+ method: "POST",
171
+ headers: { "Content-Type": "application/json" },
172
+ body: JSON.stringify(body),
173
+ });
174
+ }
175
+ async updateRoutine(collection, task, name, patch) {
176
+ return this.api(`/api/v1/routines/${seg(collection)}/${seg(task)}/${seg(name)}`, {
177
+ method: "PATCH",
178
+ headers: { "Content-Type": "application/json" },
179
+ body: JSON.stringify(patch),
180
+ });
181
+ }
182
+ async deleteRoutine(collection, task, name) {
183
+ return this.api(`/api/v1/routines/${seg(collection)}/${seg(task)}/${seg(name)}`, {
184
+ method: "DELETE",
185
+ });
186
+ }
187
+ async pauseRoutine(collection, task, name) {
188
+ return this.api(`/api/v1/routines/${seg(collection)}/${seg(task)}/${seg(name)}/pause`, { method: "POST" });
189
+ }
190
+ async resumeRoutine(collection, task, name) {
191
+ return this.api(`/api/v1/routines/${seg(collection)}/${seg(task)}/${seg(name)}/resume`, { method: "POST" });
192
+ }
193
+ async runRoutineNow(collection, task, name) {
194
+ return this.api(`/api/v1/routines/${seg(collection)}/${seg(task)}/${seg(name)}/run-now`, { method: "POST" });
195
+ }
196
+ async listRoutineRuns(collection, task, name, limit) {
197
+ const qs = typeof limit === "number" ? `?limit=${seg(limit)}` : "";
198
+ return this.api(`/api/v1/routines/${seg(collection)}/${seg(task)}/${seg(name)}/runs${qs}`);
199
+ }
200
+ }
201
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,41 +1,14 @@
1
- export declare class JettyClient {
2
- private token;
3
- private apiUrl;
4
- constructor();
5
- private requireToken;
6
- private request;
7
- private api;
8
- listCollections(): Promise<unknown>;
9
- getCollection(collection: string): Promise<unknown>;
10
- listTasks(collection: string): Promise<unknown>;
11
- getTask(collection: string, task: string): Promise<unknown>;
12
- createTask(collection: string, name: string, workflow: unknown, description?: string): Promise<unknown>;
13
- updateTask(collection: string, task: string, updates: {
14
- workflow?: unknown;
15
- description?: string;
16
- }): Promise<unknown>;
17
- deleteTask(collection: string, task: string): Promise<unknown>;
18
- getTrialStatus(collection: string): Promise<unknown>;
19
- activateTrial(collection: string): Promise<unknown>;
20
- getCollectionEnvironment(collection: string): Promise<unknown>;
21
- runWorkflow(collection: string, task: string, initParams?: Record<string, unknown>, useTrialKeys?: boolean): Promise<unknown>;
22
- runWorkflowSync(collection: string, task: string, initParams?: Record<string, unknown>, useTrialKeys?: boolean): Promise<unknown>;
23
- listTrajectories(collection: string, task: string, limit?: number, page?: number): Promise<unknown>;
24
- getTrajectory(collection: string, task: string, trajectoryId: string): Promise<unknown>;
25
- getStats(collection: string, task: string): Promise<unknown>;
26
- addLabel(collection: string, task: string, trajectoryId: string, key: string, value: string, author: string): Promise<unknown>;
27
- getWorkflowLogs(workflowId: string): Promise<unknown>;
28
- listStepTemplates(): Promise<unknown>;
29
- getStepTemplate(name: string): Promise<unknown>;
30
- setEnvironmentVars(collection: string, vars: Record<string, string>): Promise<unknown>;
31
- listRoutines(collection: string, task?: string): Promise<unknown>;
32
- getRoutine(collection: string, task: string, name: string): Promise<unknown>;
33
- createRoutine(collection: string, task: string, body: Record<string, unknown>): Promise<unknown>;
34
- updateRoutine(collection: string, task: string, name: string, patch: Record<string, unknown>): Promise<unknown>;
35
- deleteRoutine(collection: string, task: string, name: string): Promise<unknown>;
36
- pauseRoutine(collection: string, task: string, name: string): Promise<unknown>;
37
- resumeRoutine(collection: string, task: string, name: string): Promise<unknown>;
38
- runRoutineNow(collection: string, task: string, name: string): Promise<unknown>;
39
- listRoutineRuns(collection: string, task: string, name: string, limit?: number): Promise<unknown>;
1
+ import { JettyApiClient, type JettyApiClientOptions } from "./api-client.js";
2
+ export { DEFAULT_API_URL, JettyApiClient } from "./api-client.js";
3
+ export type { JettyApiClientOptions, TokenSource } from "./api-client.js";
4
+ /**
5
+ * Resolve the API token: prefer JETTY_API_TOKEN (trimmed, non-empty), then the
6
+ * token file written by `jetty login`. The env var is checked for emptiness
7
+ * because the plugin's .mcp.json may pass it through as "" — which must not
8
+ * count as "set" and must not block the file fallback.
9
+ */
10
+ export declare function resolveToken(): string | undefined;
11
+ export declare class JettyClient extends JettyApiClient {
12
+ constructor(options?: JettyApiClientOptions);
40
13
  }
41
14
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,cAAc,EACd,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAU1E;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAYjD;AAED,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,GAAE,qBAA0B;CAYhD"}