@stigmer/mcp-server 3.11.1-dev.20260812192248 → 3.12.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.
Files changed (85) hide show
  1. package/README.md +4 -22
  2. package/cli/mcp-server-stigmer.js +11 -11
  3. package/config.d.ts +1 -5
  4. package/config.d.ts.map +1 -1
  5. package/config.js +2 -2
  6. package/config.js.map +1 -1
  7. package/domains/resourceuri.d.ts.map +1 -1
  8. package/domains/resourceuri.js +0 -1
  9. package/domains/resourceuri.js.map +1 -1
  10. package/domains/search/tools.d.ts.map +1 -1
  11. package/domains/search/tools.js +4 -5
  12. package/domains/search/tools.js.map +1 -1
  13. package/gen/agent.d.ts +0 -56
  14. package/gen/agent.d.ts.map +1 -1
  15. package/gen/agent.js +1 -24
  16. package/gen/agent.js.map +1 -1
  17. package/gen/workflow.d.ts +2 -2
  18. package/index.d.ts +1 -1
  19. package/index.d.ts.map +1 -1
  20. package/index.js +1 -1
  21. package/index.js.map +1 -1
  22. package/package.json +3 -3
  23. package/server.d.ts +6 -18
  24. package/server.d.ts.map +1 -1
  25. package/server.js +6 -36
  26. package/server.js.map +1 -1
  27. package/src/config.ts +3 -7
  28. package/src/domains/apply.integration.test.ts +3 -40
  29. package/src/domains/deletes.integration.test.ts +1 -25
  30. package/src/domains/reads.integration.test.ts +1 -18
  31. package/src/domains/resources.integration.test.ts +0 -18
  32. package/src/domains/resourceuri.test.ts +0 -2
  33. package/src/domains/resourceuri.ts +0 -1
  34. package/src/domains/search/search.integration.test.ts +3 -5
  35. package/src/domains/search/tools.ts +4 -5
  36. package/src/gen/agent.ts +1 -28
  37. package/src/http.integration.test.ts +2 -3
  38. package/src/index.ts +0 -2
  39. package/src/server.ts +6 -36
  40. package/domains/datastores/apply.d.ts +0 -4
  41. package/domains/datastores/apply.d.ts.map +0 -1
  42. package/domains/datastores/apply.js +0 -28
  43. package/domains/datastores/apply.js.map +0 -1
  44. package/domains/datastores/delete.d.ts +0 -3
  45. package/domains/datastores/delete.d.ts.map +0 -1
  46. package/domains/datastores/delete.js +0 -38
  47. package/domains/datastores/delete.js.map +0 -1
  48. package/domains/datastores/fetch.d.ts +0 -3
  49. package/domains/datastores/fetch.d.ts.map +0 -1
  50. package/domains/datastores/fetch.js +0 -23
  51. package/domains/datastores/fetch.js.map +0 -1
  52. package/domains/datastores/resources.d.ts +0 -5
  53. package/domains/datastores/resources.d.ts.map +0 -1
  54. package/domains/datastores/resources.js +0 -16
  55. package/domains/datastores/resources.js.map +0 -1
  56. package/domains/datastores/tools.d.ts +0 -5
  57. package/domains/datastores/tools.d.ts.map +0 -1
  58. package/domains/datastores/tools.js +0 -46
  59. package/domains/datastores/tools.js.map +0 -1
  60. package/domains/records/calls.d.ts +0 -48
  61. package/domains/records/calls.d.ts.map +0 -1
  62. package/domains/records/calls.js +0 -118
  63. package/domains/records/calls.js.map +0 -1
  64. package/domains/records/errors.d.ts +0 -24
  65. package/domains/records/errors.d.ts.map +0 -1
  66. package/domains/records/errors.js +0 -79
  67. package/domains/records/errors.js.map +0 -1
  68. package/domains/records/tools.d.ts +0 -7
  69. package/domains/records/tools.d.ts.map +0 -1
  70. package/domains/records/tools.js +0 -139
  71. package/domains/records/tools.js.map +0 -1
  72. package/gen/datastore.d.ts +0 -861
  73. package/gen/datastore.d.ts.map +0 -1
  74. package/gen/datastore.js +0 -267
  75. package/gen/datastore.js.map +0 -1
  76. package/src/domains/datastores/apply.ts +0 -33
  77. package/src/domains/datastores/delete.ts +0 -47
  78. package/src/domains/datastores/fetch.ts +0 -32
  79. package/src/domains/datastores/resources.ts +0 -21
  80. package/src/domains/datastores/tools.ts +0 -76
  81. package/src/domains/records/calls.ts +0 -209
  82. package/src/domains/records/errors.ts +0 -98
  83. package/src/domains/records/records.integration.test.ts +0 -313
  84. package/src/domains/records/tools.ts +0 -210
  85. package/src/gen/datastore.ts +0 -264
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/domains/records/errors.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,sDAAsD;AACtD,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,sEAAsE;AACtE,oEAAoE;AACpE,yDAAyD;AACzD,oEAAoE;AACpE,qEAAqE;AACrE,iEAAiE;AACjE,uEAAuE;AACvE,kBAAkB;AAElB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,YAAY,GAAsB,IAAI,GAAG,CAAC;IAC9C,IAAI,CAAC,gBAAgB;IACrB,IAAI,CAAC,aAAa;IAClB,IAAI,CAAC,kBAAkB;IACvB,IAAI,CAAC,eAAe;IACpB,IAAI,CAAC,QAAQ;CACd,CAAC,CAAC;AAcH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,OAA8B;IAE9B,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAClE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,WAAW,CAAC,EAAgB;IAC1C,MAAM,OAAO,GAAoB;QAC/B,KAAK,EAAE,EAAE,CAAC,UAAU;QACpB,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC;KAC9B,CAAC;IACF,mEAAmE;IACnE,qEAAqE;IACrE,4CAA4C;IAC5C,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;YAClD,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6EAA6E;AAC7E,SAAS,cAAc,CAAC,IAAU;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACzE,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { type BackendTarget } from "../client.js";
3
- /** Which roster the tools are being registered on (see file header). */
4
- export type RecordToolAudience = "agent" | "direct";
5
- /** Register the five record tools for one audience; returns the tool names. */
6
- export declare function registerRecordTools(server: McpServer, target: BackendTarget, audience: RecordToolAudience): string[];
7
- //# sourceMappingURL=tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/domains/records/tools.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAWhE,wEAAwE;AACxE,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAyBpD,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,EAAE,CA8IV"}
@@ -1,139 +0,0 @@
1
- // MCP tools for the Datastore record domain — the five agent-facing
2
- // record tools of DD-005: 1:1 projections of the record RPCs, with the
3
- // records-own error mapper (errors.ts) and honest MCP annotations (the
4
- // bridge's first use of annotations; the platform's own connect-time
5
- // classifier honors destructiveHint fail-closed for external clients,
6
- // while the runner-synthesized attachment is approval-free by
7
- // construction and never passes through that classifier).
8
- //
9
- // Two audiences, one definition (registered per roster):
10
- // - "agent" (the records-only roster the runner-synthesized
11
- // attachment connects to): NO `org` argument — a session-bound
12
- // caller's org is server-derived from the session, and an explicit
13
- // org is rejected (T05 R3), so offering the argument would only
14
- // invite rejected calls.
15
- // - "direct" (the main roster external MCP clients see): optional
16
- // `org`, which cloud direct principals must name (their credential
17
- // carries no ambient org — the DD-006 session-14 amendment). OSS
18
- // resolves an empty org to the local system org.
19
- // `partition` is deliberately NOT a tool argument for either audience
20
- // (DD-010: never from tool arguments); partition-explicit work is the
21
- // console/CLI/SDK surface.
22
- import { z } from "zod";
23
- import { resolveToken } from "../client.js";
24
- import { deleteRecord, describeDatastore, findRecords, insertRecord, updateRecord, } from "./calls.js";
25
- import { recordResult } from "./errors.js";
26
- const ENCODINGS = "Field value encodings: date YYYY-MM-DD, time HH:MM[:SS], timestamp RFC 3339 UTC " +
27
- "(e.g. 2026-07-21T04:30:00Z).";
28
- const scalar = z.union([z.string(), z.number(), z.boolean()]);
29
- const conditionShape = z.object({
30
- field: z
31
- .string()
32
- .describe("Declared field name, or a filterable system field (id, created_at, updated_at)."),
33
- op: z
34
- .enum(["eq", "neq", "gt", "gte", "lt", "lte", "in", "not_in", "is_null", "not_null"])
35
- .describe("Comparison operator. eq/neq/in/not_in for string and enum fields; " +
36
- "gt/gte/lt/lte for numeric and temporal fields; is_null/not_null for optional fields."),
37
- value: scalar
38
- .nullable()
39
- .optional()
40
- .describe("Comparison value for scalar operators, in the field's canonical encoding."),
41
- values: z.array(scalar).optional().describe("Comparison values for in / not_in."),
42
- });
43
- /** Register the five record tools for one audience; returns the tool names. */
44
- export function registerRecordTools(server, target, audience) {
45
- // The org argument exists only on the direct roster (file header).
46
- const orgShape = {};
47
- if (audience === "direct") {
48
- orgShape.org = z
49
- .string()
50
- .optional()
51
- .describe("Organization that owns the datastore. Required on Stigmer Cloud; " +
52
- "omit against a local backend.");
53
- }
54
- server.registerTool("describe_datastore", {
55
- description: "Describe a datastore: its collections, field declarations and encodings, constraint " +
56
- "messages, data partitions, and the verbs you are allowed to use per collection " +
57
- "(empty access means you are not allowed to touch that collection). A read verb may " +
58
- "carry readable_fields: reads then return only those fields, and only they may appear " +
59
- "in filter conditions and order_by (empty readable_fields means every field). Call " +
60
- `this before the first record operation against an unfamiliar datastore. ${ENCODINGS}`,
61
- inputSchema: {
62
- datastore: z.string().describe("Datastore slug (e.g. clinic)."),
63
- ...orgShape,
64
- },
65
- annotations: { readOnlyHint: true },
66
- }, (args, extra) => recordResult(`datastore "${args.datastore}"`, () => describeDatastore(target.serverAddress, resolveToken(extra, target.apiKey), args)));
67
- server.registerTool("find_records", {
68
- description: "Find records in a datastore collection with a typed filter (conditions are AND-combined). " +
69
- "Returns records plus total/limit/offset for paging. Results are ordered by created_at " +
70
- "descending unless order_by is given. Records carry only the fields your grant allows " +
71
- "(describe_datastore lists them as readable_fields); conditions and order_by on other " +
72
- `fields are rejected. ${ENCODINGS}`,
73
- inputSchema: {
74
- datastore: z.string().describe("Datastore slug (e.g. clinic)."),
75
- ...orgShape,
76
- collection: z.string().describe("Collection to query (e.g. bookings)."),
77
- conditions: z
78
- .array(conditionShape)
79
- .optional()
80
- .describe("Filter conditions, AND-combined. Omit to list all readable records."),
81
- order_by: z
82
- .object({
83
- field: z.string().describe("Field to sort by."),
84
- direction: z.enum(["asc", "desc"]).optional().describe("Sort direction (default asc)."),
85
- })
86
- .optional()
87
- .describe("Sort order. Omit for created_at descending with id tiebreak."),
88
- limit: z.number().int().optional().describe("Page size (default 25, max 100)."),
89
- offset: z.number().int().optional().describe("Records to skip for paging."),
90
- },
91
- annotations: { readOnlyHint: true },
92
- }, (args, extra) => recordResult(`records in "${args.datastore}/${args.collection}"`, () => findRecords(target.serverAddress, resolveToken(extra, target.apiKey), {
93
- ...args,
94
- conditions: args.conditions,
95
- })));
96
- server.registerTool("insert_record", {
97
- description: "Insert one record into a datastore collection. System fields (id, created_at, " +
98
- "updated_at, created_by) are server-stamped — never include them. Declared constraints " +
99
- "are enforced by the store; a violation returns the constraint's message verbatim " +
100
- "(e.g. a taken slot returns ALREADY_EXISTS — pick another, do not retry the same one). " +
101
- `When uncertain whether a record already exists, find first. ${ENCODINGS}`,
102
- inputSchema: {
103
- datastore: z.string().describe("Datastore slug (e.g. clinic)."),
104
- ...orgShape,
105
- collection: z.string().describe("Collection to insert into (e.g. bookings)."),
106
- record: z
107
- .record(z.unknown())
108
- .describe("Declared fields for the new record, in canonical encodings."),
109
- },
110
- }, (args, extra) => recordResult(`record in "${args.datastore}/${args.collection}"`, () => insertRecord(target.serverAddress, resolveToken(extra, target.apiKey), args)));
111
- server.registerTool("update_record", {
112
- description: "Update one record by id with a partial merge: only the supplied fields change, and an " +
113
- "explicit null clears a field. Constraints are re-evaluated on the merged result. " +
114
- `Returns the full updated record. ${ENCODINGS}`,
115
- inputSchema: {
116
- datastore: z.string().describe("Datastore slug (e.g. clinic)."),
117
- ...orgShape,
118
- collection: z.string().describe("Collection holding the record."),
119
- id: z.string().describe("Record id (from a previous find or insert)."),
120
- fields: z
121
- .record(z.unknown())
122
- .describe("Fields to merge. Explicit null clears a field; omitted fields keep their values."),
123
- },
124
- annotations: { idempotentHint: true },
125
- }, (args, extra) => recordResult(`record "${args.id}" in "${args.datastore}/${args.collection}"`, () => updateRecord(target.serverAddress, resolveToken(extra, target.apiKey), args)));
126
- server.registerTool("delete_record", {
127
- description: "Delete one record by id. Returns the deleted record. Record tools never delete " +
128
- "collections or datastores.",
129
- inputSchema: {
130
- datastore: z.string().describe("Datastore slug (e.g. clinic)."),
131
- ...orgShape,
132
- collection: z.string().describe("Collection holding the record."),
133
- id: z.string().describe("Record id (from a previous find or insert)."),
134
- },
135
- annotations: { destructiveHint: true, idempotentHint: true },
136
- }, (args, extra) => recordResult(`record "${args.id}" in "${args.datastore}/${args.collection}"`, () => deleteRecord(target.serverAddress, resolveToken(extra, target.apiKey), args)));
137
- return ["describe_datastore", "find_records", "insert_record", "update_record", "delete_record"];
138
- }
139
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/domains/records/tools.ts"],"names":[],"mappings":"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"}