@axonity-ai/mcp 0.15.0 → 0.16.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 +34 -24
- package/dist/generated/listFilters.js +8 -0
- package/dist/generated/listFilters.js.map +1 -1
- package/dist/index.js +69 -17
- package/dist/index.js.map +1 -1
- package/dist/tools/concepts.d.ts +27 -0
- package/dist/tools/concepts.js +122 -0
- package/dist/tools/concepts.js.map +1 -0
- package/dist/tools/conventions.d.ts +1 -1
- package/dist/tools/conventions.js +15 -11
- package/dist/tools/conventions.js.map +1 -1
- package/dist/tools/dataSources.d.ts +19 -13
- package/dist/tools/dataSources.js +49 -106
- package/dist/tools/dataSources.js.map +1 -1
- package/dist/tools/dataTables.js +11 -0
- package/dist/tools/dataTables.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Warehouses,
|
|
3
|
-
*
|
|
2
|
+
* Warehouses, and the numbers read off the tables they fill (axonity-mcp#78,
|
|
3
|
+
* the connector half of axonity-flow#1849; reshaped by the semantic model,
|
|
4
|
+
* axonity-mcp#81 / axonity-flow#1881).
|
|
4
5
|
*
|
|
5
6
|
* The plain entity verbs — list/read/create/update/delete/restore for a data
|
|
6
7
|
* source, a table relationship and a dashboard — come from `registerEntityTools`
|
|
7
8
|
* (see `ENTITIES` in index.ts). What is here is everything that does not fit
|
|
8
|
-
* that shape: asking a warehouse something, the
|
|
9
|
-
*
|
|
9
|
+
* that shape: asking a warehouse something, reading the numbers a dashboard
|
|
10
|
+
* shows, and duplicating a dashboard.
|
|
10
11
|
*
|
|
11
|
-
* **
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
12
|
+
* **There are no sync tools any more.** A sync was a separate object beside
|
|
13
|
+
* the table it filled; the semantic model made it the table's own
|
|
14
|
+
* `provenance` (source, query, grain, key, mode, schedule), so a changed query
|
|
15
|
+
* goes through the same approval as a changed column. Filling a table is now
|
|
16
|
+
* `create_data_table` / `update_data_table` with `provenance`, and running it
|
|
17
|
+
* early is `refresh_data_table` (tools/dataTables.ts). A measure is no longer
|
|
18
|
+
* a field on a table either: it is its own versioned entity (`create_measure`
|
|
19
|
+
* and the rest of the generic family).
|
|
20
|
+
*
|
|
21
|
+
* **Who may write.** These routes were administrator-only when they arrived,
|
|
22
|
+
* and a service token always resolves as a member, so every write answered
|
|
23
|
+
* 403. The platform lifted that (axonity-flow#1855): a data source is created
|
|
24
|
+
* like any other object now. `ForbiddenError` still says "administrator only"
|
|
25
|
+
* in words when some other route answers that way.
|
|
18
26
|
*
|
|
19
27
|
* **Nothing here holds a credential.** A data source points at a secret by
|
|
20
28
|
* `secretId`; the key itself is put in the vault by a human (secret writes are
|
|
@@ -24,14 +32,7 @@ import { z } from "zod";
|
|
|
24
32
|
import { guard, jsonResult } from "./result.js";
|
|
25
33
|
const SOURCES = "/api/v1/data-sources";
|
|
26
34
|
const MEASURES = "/api/v1/measures";
|
|
27
|
-
/** The sentence every admin-only tool here carries, so it is said once. */
|
|
28
|
-
export const ADMIN_ONLY = "\n\nADMINISTRATOR ONLY. The backend lets only a workspace administrator do " +
|
|
29
|
-
"this, and a service token always counts as a member — so a 403 \"Only " +
|
|
30
|
-
"administrators can perform this action\" means exactly that, not a broken " +
|
|
31
|
-
"call and not a missing scope. Do not retry: tell your human, who can do it " +
|
|
32
|
-
"in Axonity.";
|
|
33
35
|
const SOURCE_ID = z.string().describe("The data source's id.");
|
|
34
|
-
const SYNC_ID = z.string().describe("The sync's id (from list_data_source_syncs).");
|
|
35
36
|
export function registerDataSourceTools(server, client) {
|
|
36
37
|
server.tool("list_data_source_drivers", "Which warehouses can be connected, and what each one needs. Read-only. " +
|
|
37
38
|
"\n\nREAD THIS BEFORE create_data_source. Each driver lists its " +
|
|
@@ -44,23 +45,26 @@ export function registerDataSourceTools(server, client) {
|
|
|
44
45
|
"where it is false, use `policy.maxSeconds` instead. `credentialKinds` " +
|
|
45
46
|
"says which kind of secret the source's `secretId` must point at.", {}, async () => guard(async () => jsonResult(await client.get(`${SOURCES}/drivers`))));
|
|
46
47
|
server.tool("test_data_source", "Ask the warehouse the cheapest question there is, and report what it " +
|
|
47
|
-
"said. Use it right after create_data_source, and whenever a
|
|
48
|
-
"query fails for a reason that sounds like the connection. " +
|
|
48
|
+
"said. Use it right after create_data_source, and whenever a table's " +
|
|
49
|
+
"fill or a query fails for a reason that sounds like the connection. " +
|
|
49
50
|
"\n\nA FAILURE IS AN ANSWER, NOT AN ERROR: the response is " +
|
|
50
51
|
"`{ ok, message, checkedAt }`, and `ok: false` with a message is the " +
|
|
51
52
|
"warehouse telling you what is wrong (missing credential, wrong project, " +
|
|
52
|
-
"no access). Read `message` — the call itself succeeded."
|
|
53
|
-
ADMIN_ONLY, { id: SOURCE_ID }, async ({ id }) => guard(async () => jsonResult(await client.post(`${SOURCES}/${id}/test`))));
|
|
53
|
+
"no access). Read `message` — the call itself succeeded.", { id: SOURCE_ID }, async ({ id }) => guard(async () => jsonResult(await client.post(`${SOURCES}/${id}/test`))));
|
|
54
54
|
server.tool("read_data_source_schema", "Which tables and columns the warehouse holds. Read-only, and free: it " +
|
|
55
55
|
"reads the warehouse's own catalogue, not the data. " +
|
|
56
56
|
"\n\nEach table's `name` is `container.table` — what you write in a " +
|
|
57
57
|
"query. `containerWord` is what this warehouse calls the container " +
|
|
58
58
|
"(\"dataset\" on BigQuery, \"schema\" on PostgreSQL). Column types are " +
|
|
59
59
|
"the warehouse's own names, passed through. Read this before writing a " +
|
|
60
|
-
"query or a
|
|
60
|
+
"query or a table's provenance, rather than guessing table names. " +
|
|
61
|
+
"On a source restricted to `policy.allowedDatasets` it reads those " +
|
|
62
|
+
"datasets one by one, so it answers even when the key may not list " +
|
|
63
|
+
"the whole project.", { id: SOURCE_ID }, async ({ id }) => guard(async () => jsonResult(await client.get(`${SOURCES}/${id}/schema`))));
|
|
61
64
|
server.tool("query_data_source", "Run a READ-ONLY SQL query against the warehouse and get the rows back. " +
|
|
62
|
-
"For looking — checking what a table holds, trying the
|
|
63
|
-
"will run. To fill a table regularly,
|
|
65
|
+
"For looking — checking what a warehouse table holds, trying the " +
|
|
66
|
+
"query a table's provenance will run. To fill a table regularly, give " +
|
|
67
|
+
"it a `provenance` (create_data_table / update_data_table). " +
|
|
64
68
|
"\n\nTHE ROWS ARE CAPPED. `truncated: true` means rows were left out: " +
|
|
65
69
|
"`rowCount` is what came back, `totalRows` is what matched. Never report " +
|
|
66
70
|
"a count or a total off a truncated answer — aggregate in the SQL " +
|
|
@@ -70,8 +74,7 @@ export function registerDataSourceTools(server, client) {
|
|
|
70
74
|
"uses `*` where personal columns are configured, would scan more than " +
|
|
71
75
|
"the source allows) — the reason says what to change. A 502 is the " +
|
|
72
76
|
"WAREHOUSE refusing or not answering — the query may be fine; do not " +
|
|
73
|
-
"rewrite it, check test_data_source."
|
|
74
|
-
ADMIN_ONLY, {
|
|
77
|
+
"rewrite it, check test_data_source.", {
|
|
75
78
|
id: SOURCE_ID,
|
|
76
79
|
sql: z
|
|
77
80
|
.string()
|
|
@@ -83,103 +86,37 @@ export function registerDataSourceTools(server, client) {
|
|
|
83
86
|
.int()
|
|
84
87
|
.optional()
|
|
85
88
|
.describe("How many rows you want back. Clamped by the platform — a bigger " +
|
|
86
|
-
"answer belongs in a
|
|
89
|
+
"answer belongs in a table with provenance, not in a response."),
|
|
87
90
|
}, async ({ id, sql, maxRows }) => guard(async () => jsonResult(await client.post(`${SOURCES}/${id}/query`, {
|
|
88
91
|
sql,
|
|
89
92
|
...(maxRows !== undefined ? { maxRows } : {}),
|
|
90
93
|
}))));
|
|
91
|
-
server.tool("list_data_source_syncs", "The syncs of ONE data source: the queries that keep tables filled from " +
|
|
92
|
-
"that warehouse, on a schedule. Read-only. " +
|
|
93
|
-
"\n\nEach sync says when it runs next (`nextFireAt`), when it last ran " +
|
|
94
|
-
"(`lastRunAt`), how many rows the table held afterwards " +
|
|
95
|
-
"(`lastRowCount`), and — when the last attempt wrote nothing — why " +
|
|
96
|
-
"(`lastError`). A `lastError` here is the first thing to read when a " +
|
|
97
|
-
"dashboard number looks stale.", { id: SOURCE_ID }, async ({ id }) => guard(async () => jsonResult(await client.get(`${SOURCES}/${id}/syncs`))));
|
|
98
|
-
server.tool("create_data_source_sync", "Set up a query that fills a table from this warehouse on a schedule. " +
|
|
99
|
-
"\n\nThe table must be a DYNAMIC table (create_data_table with " +
|
|
100
|
-
"`isDynamic: true`). Its rows then come from here, not from authoring. " +
|
|
101
|
-
"Try the SQL with query_data_source first: what one row of its result " +
|
|
102
|
-
"means decides what the table can be asked afterwards. " +
|
|
103
|
-
"\n\nThe response says when it will first run (`nextFireAt`). To run " +
|
|
104
|
-
"it now, follow with run_data_source_sync." +
|
|
105
|
-
ADMIN_ONLY, {
|
|
106
|
-
id: SOURCE_ID,
|
|
107
|
-
name: z.string().describe("What the sync is called."),
|
|
108
|
-
description: z.string().optional().describe("What it fills, and why."),
|
|
109
|
-
tableId: z
|
|
110
|
-
.string()
|
|
111
|
-
.describe("The dynamic table the result lands in (a data_table id)."),
|
|
112
|
-
sql: z
|
|
113
|
-
.string()
|
|
114
|
-
.describe("The query whose RESULT is copied into the table. Read-only, in the " +
|
|
115
|
-
"warehouse's own dialect."),
|
|
116
|
-
mode: z
|
|
117
|
-
.enum(["append", "upsert"])
|
|
118
|
-
.optional()
|
|
119
|
-
.describe("`upsert` (default) replaces rows whose key columns match and adds " +
|
|
120
|
-
"the rest. `append` adds everything that came back, every run — " +
|
|
121
|
-
"only right when each run returns NEW rows."),
|
|
122
|
-
keyColumns: z
|
|
123
|
-
.array(z.string())
|
|
124
|
-
.optional()
|
|
125
|
-
.describe("Which columns identify a row, for `upsert`. Without them an upsert " +
|
|
126
|
-
"has nothing to match on."),
|
|
127
|
-
cronExpr: z
|
|
128
|
-
.string()
|
|
129
|
-
.describe('When it runs, as a five-field cron expression, e.g. "0 6 * * *".'),
|
|
130
|
-
timezone: z
|
|
131
|
-
.string()
|
|
132
|
-
.optional()
|
|
133
|
-
.describe('The time zone the cron expression is read in. Defaults to "UTC".'),
|
|
134
|
-
enabled: z
|
|
135
|
-
.boolean()
|
|
136
|
-
.optional()
|
|
137
|
-
.describe("Whether it runs on its schedule. Defaults to true."),
|
|
138
|
-
}, async ({ id, ...fields }) => guard(async () => jsonResult(await client.post(`${SOURCES}/${id}/syncs`, fields))));
|
|
139
|
-
server.tool("run_data_source_sync", "Bring a sync's next run forward to now. " +
|
|
140
|
-
"\n\nTHIS DOES NOT WAIT FOR THE RESULT. The query can take tens of " +
|
|
141
|
-
"seconds, so the platform accepts the request and its scheduler runs " +
|
|
142
|
-
"it. The response is the sync with its new `nextFireAt`. To see how it " +
|
|
143
|
-
"went, read list_data_source_syncs again after a moment: `lastRunAt`, " +
|
|
144
|
-
"`lastRowCount` and `lastError` describe the run." +
|
|
145
|
-
ADMIN_ONLY, { id: SOURCE_ID, syncId: SYNC_ID }, async ({ id, syncId }) => guard(async () => jsonResult(await client.post(`${SOURCES}/${id}/syncs/${syncId}/run`))));
|
|
146
|
-
server.tool("delete_data_source_sync", "Stop a sync. The rows it already wrote STAY in the table; it simply " +
|
|
147
|
-
"stops refreshing them. Recoverable with restore_data_source_sync." +
|
|
148
|
-
ADMIN_ONLY, {
|
|
149
|
-
id: SOURCE_ID,
|
|
150
|
-
syncId: SYNC_ID,
|
|
151
|
-
confirm: z
|
|
152
|
-
.literal(true)
|
|
153
|
-
.describe("Must be true. Acknowledges the table stops being refreshed."),
|
|
154
|
-
}, async ({ id, syncId }) => guard(async () => jsonResult(await client.del(`${SOURCES}/${id}/syncs/${syncId}`))));
|
|
155
|
-
server.tool("restore_data_source_sync", "Bring a stopped sync back. It comes back SWITCHED OFF on purpose — a " +
|
|
156
|
-
"sync is usually stopped because it did the wrong thing — so switching " +
|
|
157
|
-
"it on again is a separate, deliberate step in Axonity." +
|
|
158
|
-
ADMIN_ONLY, { id: SOURCE_ID, syncId: SYNC_ID }, async ({ id, syncId }) => guard(async () => jsonResult(await client.post(`${SOURCES}/${id}/syncs/${syncId}/restore`))));
|
|
159
94
|
}
|
|
160
95
|
/** The period names a measure question accepts. Mirrors `PeriodPreset`. */
|
|
161
96
|
const PERIODS = "today, this_week, last_week, this_month, last_month, this_quarter, " +
|
|
162
97
|
"year_to_date, last_30_days, last_12_months, all_time";
|
|
163
98
|
export function registerMeasureTools(server, client) {
|
|
164
|
-
server.tool("read_measure_design", "What
|
|
165
|
-
"
|
|
166
|
-
"\n\
|
|
167
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
99
|
+
server.tool("read_measure_design", "What a number over one dynamic table may ask for: its columns and its " +
|
|
100
|
+
"time axis. Read-only. " +
|
|
101
|
+
"\n\nTHE MEASURES ARE NOT HERE. A measure belongs to the model, not " +
|
|
102
|
+
"to one table: list_measures({ tableId }) answers which measures read " +
|
|
103
|
+
"this table, and create_measure defines one. Read this for the column " +
|
|
104
|
+
"names a measure's `definition`, `splitBy` or `filters` may use.", {
|
|
170
105
|
tableId: z.string().describe("The dynamic table's id."),
|
|
171
106
|
useDraft: z
|
|
172
107
|
.boolean()
|
|
173
108
|
.optional()
|
|
174
109
|
.describe("Read the table's working design instead of its published one — to " +
|
|
175
|
-
"preview a
|
|
110
|
+
"preview a change before it is published. Defaults to false."),
|
|
176
111
|
}, async ({ tableId, useDraft }) => guard(async () => jsonResult(await client.get(`${MEASURES}/tables/${tableId}`, { useDraft }))));
|
|
177
112
|
server.tool("query_measures", "Compute measures: up to 40 questions in one call, each answered on its " +
|
|
178
113
|
"own. Read-only. This is where a dashboard's numbers come from. " +
|
|
179
114
|
"\n\nEach question is " +
|
|
180
|
-
"`{ key,
|
|
115
|
+
"`{ key, measure, tableId?, period?, start?, end?, compare?, grain?, " +
|
|
181
116
|
"splitBy?, filters?, limit?, useDraft? }`. `key` is your own label and " +
|
|
182
|
-
"comes back on the answer. `
|
|
117
|
+
"comes back on the answer. `measure` is the measure's NAME — its " +
|
|
118
|
+
"handle, unique in the workspace (list_measures); `tableId` is " +
|
|
119
|
+
"optional and no longer what finds it. `period` is one of: " +
|
|
183
120
|
PERIODS +
|
|
184
121
|
" (default this_month) — or set it to null and send `start`/`end` " +
|
|
185
122
|
"(YYYY-MM-DD) for a custom range. `compare` is none, previous_period or " +
|
|
@@ -189,12 +126,18 @@ export function registerMeasureTools(server, client) {
|
|
|
189
126
|
"\n\nONE BAD QUESTION DOES NOT FAIL THE CALL: every answer carries " +
|
|
190
127
|
"`ok`, and `ok: false` comes with an `error` of its own. Check each one. " +
|
|
191
128
|
"\n\n`freshAsOf` says how old the newest row behind the number is; " +
|
|
192
|
-
"`certified: false` means it was computed from a draft
|
|
129
|
+
"`certified: false` means it was computed from a draft; `tables` names " +
|
|
130
|
+
"every table the number came from. Say so when you " +
|
|
193
131
|
"report a number that is either stale or uncertified.", {
|
|
194
132
|
queries: z
|
|
195
133
|
.array(z.record(z.unknown()))
|
|
196
134
|
.describe("The questions, 1 to 40, in the shape described above."),
|
|
197
135
|
}, async ({ queries }) => guard(async () => jsonResult(await client.post(`${MEASURES}/query`, { queries }))));
|
|
136
|
+
server.tool("list_measure_live_versions", "Which major versions of one measure are PUBLISHED right now, as a list " +
|
|
137
|
+
"of numbers. Read-only. An empty list means it has never been " +
|
|
138
|
+
"published, so every number it gives is a draft preview " +
|
|
139
|
+
"(`certified: false` on query_measures) — request_publish_measure is " +
|
|
140
|
+
"what changes that.", { id: z.string().describe("The measure's id.") }, async ({ id }) => guard(async () => jsonResult(await client.get(`${MEASURES}/${id}/live-versions`))));
|
|
198
141
|
server.tool("list_measure_rows", "The first rows of a published dynamic table in an order — what a list " +
|
|
199
142
|
"tile shows (\"the ten biggest orders this month\"). Read-only. " +
|
|
200
143
|
"\n\n`matched` in the answer is how many rows matched before the limit, " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataSources.js","sourceRoot":"","sources":["../../src/tools/dataSources.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dataSources.js","sourceRoot":"","sources":["../../src/tools/dataSources.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/dataTables.js
CHANGED
|
@@ -159,6 +159,17 @@ export function registerDataTableTools(server, client) {
|
|
|
159
159
|
// The page envelope is forwarded WHOLE — unwrapping to `items` would
|
|
160
160
|
// rebuild the silent truncation this tool exists to avoid.
|
|
161
161
|
jsonResult(await client.get(`${BASE}/${tableId}/rows`, { q, limit, cursor }))));
|
|
162
|
+
server.tool("refresh_data_table", "Fill a table from its source NOW instead of at its next scheduled time. " +
|
|
163
|
+
"Replaces run_data_source_sync: a table's fill is its own `provenance` " +
|
|
164
|
+
"now, not a separate sync. " +
|
|
165
|
+
"\n\nTHIS DOES NOT WAIT FOR THE RESULT. The query can take tens of " +
|
|
166
|
+
"seconds, so the platform brings the table's next fill forward and its " +
|
|
167
|
+
"scheduler runs it. The response is the table, with `fill.nextAt` set " +
|
|
168
|
+
"to now. To see how it went, read_data_table again after a moment: " +
|
|
169
|
+
"`fill.lastAt`, `fill.lastRowCount` and `fill.lastError` describe the " +
|
|
170
|
+
"run. " +
|
|
171
|
+
"\n\nRefused with a 422 when the table has no `provenance` — its rows " +
|
|
172
|
+
"come from a workflow or an author, and there is nothing to run.", { id: z.string().describe("The table's id.") }, async ({ id }) => guard(async () => jsonResult(await client.post(`${BASE}/${id}/refresh`))));
|
|
162
173
|
server.tool("list_data_table_tools", "Which tools this table yields, and which of them a RUN can actually " +
|
|
163
174
|
"reach. Read-only. " +
|
|
164
175
|
"\n\nA published table mints its own CRUD tools, so giving an agent " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataTables.js","sourceRoot":"","sources":["../../src/tools/dataTables.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dataTables.js","sourceRoot":"","sources":["../../src/tools/dataTables.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axonity-ai/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Model Context Protocol server for Axonity Flow — lets an external agent (e.g. Claude Code) read, draft, and update workflows, agents and tools in an Axonity tenant.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|