coalesce-transform-mcp 0.2.0 → 0.2.1

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.
@@ -1,5 +1,12 @@
1
- import type { CoalesceClient, QueryParams } from "../../client.js";
2
- export declare function listWorkspaces(client: CoalesceClient, params?: QueryParams): Promise<unknown>;
1
+ import type { CoalesceClient } from "../../client.js";
2
+ /**
3
+ * The Coalesce API does not expose a /api/v1/workspaces endpoint.
4
+ * Workspaces are only accessible nested under projects via includeWorkspaces=true.
5
+ * These functions wrap the projects endpoint to provide workspace-level access.
6
+ * Note: getWorkspace fetches all workspaces and filters client-side,
7
+ * since there is no direct workspace lookup endpoint.
8
+ */
9
+ export declare function listWorkspaces(client: CoalesceClient): Promise<unknown>;
3
10
  export declare function getWorkspace(client: CoalesceClient, params: {
4
11
  workspaceID: string;
5
12
  }): Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnE,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,MAAM,GAAE,WAAgB,GACvB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAC9B,OAAO,CAAC,OAAO,CAAC,CAKlB"}
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAItD;;;;;;GAMG;AAEH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,CAAC,CAmBlB;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAC9B,OAAO,CAAC,OAAO,CAAC,CAUlB"}
@@ -1,8 +1,35 @@
1
- import { validatePathSegment } from "../types.js";
2
- export async function listWorkspaces(client, params = {}) {
3
- return client.get("/api/v1/workspaces", params);
1
+ import { CoalesceApiError } from "../../client.js";
2
+ import { listProjects } from "./projects.js";
3
+ /**
4
+ * The Coalesce API does not expose a /api/v1/workspaces endpoint.
5
+ * Workspaces are only accessible nested under projects via includeWorkspaces=true.
6
+ * These functions wrap the projects endpoint to provide workspace-level access.
7
+ * Note: getWorkspace fetches all workspaces and filters client-side,
8
+ * since there is no direct workspace lookup endpoint.
9
+ */
10
+ export async function listWorkspaces(client) {
11
+ const result = await listProjects(client, { includeWorkspaces: true });
12
+ const envelope = result;
13
+ if (!Array.isArray(envelope?.data)) {
14
+ throw new CoalesceApiError("Unexpected response from projects endpoint: missing or non-array 'data' field", 502);
15
+ }
16
+ const projects = envelope.data;
17
+ const workspaces = projects.flatMap((project) => {
18
+ const p = project;
19
+ const wsList = Array.isArray(p.workspaces) ? p.workspaces : [];
20
+ return wsList.map((ws) => ({
21
+ ...ws,
22
+ projectID: project.id,
23
+ }));
24
+ });
25
+ return { data: workspaces };
4
26
  }
5
27
  export async function getWorkspace(client, params) {
6
- return client.get(`/api/v1/workspaces/${validatePathSegment(params.workspaceID, "workspaceID")}`, {});
28
+ const { data } = (await listWorkspaces(client));
29
+ const workspace = data.find((ws) => ws.id === params.workspaceID);
30
+ if (!workspace) {
31
+ throw new CoalesceApiError(`Workspace not found: ${params.workspaceID}`, 404);
32
+ }
33
+ return workspace;
7
34
  }
8
35
  //# sourceMappingURL=workspaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../src/coalesce/api/workspaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAsB,EACtB,SAAsB,EAAE;IAExB,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,MAA+B;IAE/B,OAAO,MAAM,CAAC,GAAG,CACf,sBAAsB,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,EAC9E,EAAE,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../src/coalesce/api/workspaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;GAMG;AAEH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,MAA4B,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,gBAAgB,CACxB,+EAA+E,EAC/E,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAc,QAAQ,CAAC,IAAI,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,EAAE;QACvD,MAAM,CAAC,GAAG,OAAqC,CAAC;QAChD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAW,EAAE,EAAE,CAAC,CAAC;YAClC,GAAI,EAA8B;YAClC,SAAS,EAAG,OAA2B,CAAC,EAAE;SAC3C,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,MAA+B;IAE/B,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,CAA6C,CAAC;IAC5F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;IAClE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,gBAAgB,CACxB,wBAAwB,MAAM,CAAC,WAAW,EAAE,EAC5C,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -4,7 +4,7 @@ import { buildJsonToolResponse, handleToolError, getToolOutputSchema, READ_ONLY_
4
4
  export function registerProjectTools(server, client) {
5
5
  server.registerTool("list_projects", {
6
6
  title: "List Projects",
7
- description: "List all Coalesce projects. For workspace IDs, prefer list_workspaces instead of includeWorkspaces.\n\nArgs:\n - includeWorkspaces (boolean, optional): Include nested workspace data\n - includeJobs (boolean, optional): Include nested job data for all workspaces\n\nReturns:\n { data: Project[], next?: string, total?: number }",
7
+ description: "List all Coalesce projects.\n\nArgs:\n - includeWorkspaces (boolean, optional): Include nested workspace data\n - includeJobs (boolean, optional): Include nested job data for all workspaces\n\nReturns:\n { data: Project[], next?: string, total?: number }",
8
8
  inputSchema: z.object({
9
9
  includeWorkspaces: z.boolean().optional().describe("Include nested workspace data with workspace IDs"),
10
10
  includeJobs: z.boolean().optional().describe("Include nested job data for all workspaces"),
@@ -22,7 +22,7 @@ export function registerProjectTools(server, client) {
22
22
  });
23
23
  server.registerTool("get_project", {
24
24
  title: "Get Project",
25
- description: "Get details of a specific Coalesce project. For workspace IDs, prefer list_workspaces instead of includeWorkspaces.\n\nArgs:\n - projectID (string, required): The project ID\n - includeWorkspaces (boolean, optional): Include nested workspace data\n - includeJobs (boolean, optional): Include nested job data\n\nReturns:\n Full project object with ID, name, description, git configuration.",
25
+ description: "Get details of a specific Coalesce project.\n\nArgs:\n - projectID (string, required): The project ID\n - includeWorkspaces (boolean, optional): Include nested workspace data\n - includeJobs (boolean, optional): Include nested job data\n\nReturns:\n Full project object with ID, name, description, git configuration.",
26
26
  inputSchema: z.object({
27
27
  projectID: z.string().describe("The project ID"),
28
28
  includeWorkspaces: z.boolean().optional().describe("Include nested workspace data with workspace IDs"),
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/mcp/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/mcp/projects.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/mcp/workspaces.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAUnD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,GACrB,IAAI,CA0CN"}
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/mcp/workspaces.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AASnD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,GACrB,IAAI,CA0CN"}
@@ -1,16 +1,16 @@
1
1
  import { z } from "zod";
2
2
  import { listWorkspaces, getWorkspace } from "../coalesce/api/workspaces.js";
3
- import { PaginationParams, buildJsonToolResponse, handleToolError, getToolOutputSchema, READ_ONLY_ANNOTATIONS, } from "../coalesce/types.js";
3
+ import { buildJsonToolResponse, handleToolError, getToolOutputSchema, READ_ONLY_ANNOTATIONS, } from "../coalesce/types.js";
4
4
  export function registerWorkspaceTools(server, client) {
5
5
  server.registerTool("list_workspaces", {
6
6
  title: "List Workspaces",
7
- description: "List all Coalesce workspaces with optional pagination.\n\nReturns workspace IDs needed by node, job, and subgraph tools. Prefer this over list_projects with includeWorkspaces when you only need workspace-level data.\n\nArgs:\n - limit (number, optional): Max results per page\n - startingFrom (string, optional): Pagination cursor\n - orderBy (string, optional): Sort field\n - orderByDirection ('asc'|'desc', optional): Sort direction\n\nReturns:\n { data: Workspace[], next?: string, total?: number }",
8
- inputSchema: PaginationParams,
7
+ description: "List all Coalesce workspaces.\n\nReturns workspace IDs needed by node, job, and subgraph tools. Each workspace includes its projectID.\n\nReturns:\n { data: Workspace[] }",
8
+ inputSchema: z.object({}),
9
9
  outputSchema: getToolOutputSchema("list_workspaces"),
10
10
  annotations: READ_ONLY_ANNOTATIONS,
11
- }, async (params) => {
11
+ }, async () => {
12
12
  try {
13
- const result = await listWorkspaces(client, params);
13
+ const result = await listWorkspaces(client);
14
14
  return buildJsonToolResponse("list_workspaces", result);
15
15
  }
16
16
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/mcp/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,MAAsB;IAEtB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,6fAA6f;QAC/f,WAAW,EAAE,gBAAgB;QAC7B,YAAY,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;QACpD,WAAW,EAAE,qBAAqB;KACnC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpD,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,2MAA2M;QAC7M,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;SACrD,CAAC;QACF,YAAY,EAAE,mBAAmB,CAAC,eAAe,CAAC;QAClD,WAAW,EAAE,qBAAqB;KACnC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,qBAAqB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/mcp/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,MAAsB;IAEtB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,6KAA6K;QAC/K,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,YAAY,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;QACpD,WAAW,EAAE,qBAAqB;KACnC,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5C,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,2MAA2M;QAC7M,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;SACrD,CAAC;QACF,YAAY,EAAE,mBAAmB,CAAC,eAAe,CAAC;QAClD,WAAW,EAAE,qBAAqB;KACnC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,qBAAqB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -15,8 +15,8 @@ Prefer list/get discovery tools over guessing IDs from URLs or names.
15
15
 
16
16
  ### Workspace IDs
17
17
 
18
- - Use `list_workspaces()` to get all workspaces across projects.
19
- - Use `list_workspaces({ projectID })` to get workspaces for a specific project.
18
+ - Use `list_workspaces()` to get all workspaces across projects (each workspace includes its `projectID`).
19
+ - Use `get_project({ projectID, includeWorkspaces: true })` to get workspaces for a specific project.
20
20
 
21
21
  ### Job IDs
22
22
 
@@ -298,7 +298,7 @@ When output data looks wrong after a successful run:
298
298
  - **All nodes**: `list_workspace_nodes` with `detail: true`
299
299
  - **Specific node**: `get_workspace_node` — full body with columns, config, sourceMapping
300
300
  - **Node types**: `list_workspace_node_types` — distinct types observed
301
- - **Workspaces**: `list_workspaces` or `list_workspaces({ projectID })`
301
+ - **Workspaces**: `list_workspaces()` (all workspaces with `projectID`), or `get_project({ projectID, includeWorkspaces: true })` for project-scoped
302
302
  - **Environments**: `list_environments` — deployment targets (DEV, QA, PROD)
303
303
 
304
304
  **Large workspaces (100+ nodes)**: Use `list_workspace_nodes` WITHOUT `detail` first, find target by name, then `get_workspace_node` on its ID. Use `cache_workspace_nodes` for repeated searches.
@@ -16,7 +16,7 @@
16
16
  ### Find Projects and Workspaces
17
17
 
18
18
  - `list_projects` or `get_project` to discover project structure
19
- - For workspace IDs: `list_workspaces()` for all workspaces, or `get_project({ projectID, includeWorkspaces: true })` for project-scoped
19
+ - For workspace IDs: `list_workspaces()` for all workspaces (returns workspaces with their `projectID`), or `get_project({ projectID, includeWorkspaces: true })` for project-scoped
20
20
  - For broader ID resolution guidance, see `coalesce://context/id-discovery`
21
21
 
22
22
  ### List vs Get
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coalesce-transform-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "mcpName": "io.github.jessemarshall/coalesce-transform",
5
5
  "description": "MCP server for the Coalesce Transform API; run tools support Snowflake Key Pair auth only",
6
6
  "main": "dist/index.js",