@mondaydotcomorg/agent-toolkit 5.69.0 → 5.70.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.
- package/dist/cjs/core/index.js +230 -230
- package/dist/cjs/core/index.js.map +1 -1
- package/dist/cjs/mcp/index.js +234 -234
- package/dist/cjs/mcp/index.js.map +1 -1
- package/dist/cjs/openai/index.js +230 -230
- package/dist/cjs/openai/index.js.map +1 -1
- package/dist/esm/core/index.js +233 -233
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/mcp/index.js +231 -231
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/openai/index.js +233 -233
- package/dist/esm/openai/index.js.map +1 -1
- package/package.json +2 -2
- package/CHANGELOG.md +0 -399
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mondaydotcomorg/agent-toolkit",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.70.1",
|
|
4
4
|
"description": "monday.com agent toolkit",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./mcp": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
],
|
|
46
46
|
"repository": {
|
|
47
47
|
"type": "git",
|
|
48
|
-
"url": "https://github.com/mondaycom/
|
|
48
|
+
"url": "https://github.com/mondaycom/mcp/tree/master/packages/agent-toolkit"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@mondaydotcomorg/api": "^13.0.0",
|
package/CHANGELOG.md
DELETED
|
@@ -1,399 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## 5.69.0
|
|
4
|
-
|
|
5
|
-
### Document the virtual column ids and the [UNIT, AMOUNT] rolling window
|
|
6
|
-
|
|
7
|
-
Descriptions only, no schema or behavior change.
|
|
8
|
-
|
|
9
|
-
- `filters[].columnId` and `orderBy[].columnId` name the virtual column ids `__creation_log__`, `__last_updated__`, `__item_id__` and `group`, which `get_board_info` does not return.
|
|
10
|
-
- `get_column_type_info` gains filter guidelines for `creation_log` and `item_id`, and the `last_updated` examples now use `__last_updated__` instead of the bare enum name.
|
|
11
|
-
- The operator guidelines state the `[UNIT, AMOUNT]` contract for `within_the_last` and `within_the_next`, with UNIT one of `DAYS`, `WORKDAYS`, `WEEKS`, `MONTHS`. Both operators were documented nowhere before, so models invented shapes like a bare `7`, which returns `INTERNAL_SERVER_ERROR`.
|
|
12
|
-
- `date`, `creation_log` and `last_updated` list the two window operators and show one example each.
|
|
13
|
-
- The `get_board_items_page` description replaces its GROUP FILTERING paragraph with a shorter VIRTUAL COLUMNS line pointing at `get_column_type_info`.
|
|
14
|
-
- `LAST_WEEK` and `LAST_MONTH` are no longer listed as valid `compareValue` keywords for `creation_log` and `last_updated`. Verified against production: both return zero items on boards that do have matching items, while `TODAY`, `YESTERDAY`, `THIS_WEEK` and `THIS_MONTH` return the right ones. Models are pointed at `within_the_last` with `["WEEKS", 1]` or `["MONTHS", 1]` instead, which does work.
|
|
15
|
-
- `compareAttribute` is no longer described as required on those two types. Omitting it returns the same correct results, so the guidelines now present it as optional and say what it selects.
|
|
16
|
-
- The VIRTUAL COLUMNS line said "the latter three are also valid in orderBy", which wrongly excluded `group`. All four are valid in `orderBy` - confirmed in `sort_settings_service.rb` and against production.
|
|
17
|
-
|
|
18
|
-
## 5.68.0
|
|
19
|
-
|
|
20
|
-
### Make the "group" filter column discoverable
|
|
21
|
-
|
|
22
|
-
Filtering items by board group has always worked - `filters: [{"columnId": "group", "compareValue": ["group_mm6wsvcc"]}]` - but it was documented nowhere: not in the tool description, not in the input schema, and `get_board_info` does not return `group` among a board's columns. Models could only get it right from prior knowledge of the monday API.
|
|
23
|
-
|
|
24
|
-
This produced 21% of `get_board_items_page`'s `ResourceNotFoundException` errors across 191 accounts: `includeGroup` hands the model each item's `group.id`, and with no documented way to filter on it, models put the group id in `filters[].columnId` and got "Column not found". In 81% of those cases the model then abandoned filtering and paged through the whole board.
|
|
25
|
-
|
|
26
|
-
Descriptions only, no filtering behavior or schema-shape change:
|
|
27
|
-
|
|
28
|
-
- `get_board_items_page` description gains a GROUP FILTERING section with the exact filter rule to use, and states that a group id is never a valid `columnId`.
|
|
29
|
-
- `filters[].columnId` states that `group` is accepted alongside real board column ids.
|
|
30
|
-
- `get_column_type_info` returns filter guidelines for `columnType: "group"`, which previously returned `filter: null` even though `group` is a member of the column-type enum.
|
|
31
|
-
|
|
32
|
-
## 5.67.0
|
|
33
|
-
|
|
34
|
-
### get_user_context — include relevant docs
|
|
35
|
-
|
|
36
|
-
`get_user_context` now returns `relevantDocs` alongside `relevantBoards` and `relevantPeople`: the user's most loaded docs ranked by frequency and recency. Each entry includes `id` (document ID for API calls), `name`, and `objectId` (the identifier in the doc URL).
|
|
37
|
-
|
|
38
|
-
## 5.66.0
|
|
39
|
-
|
|
40
|
-
### search — expose highlights on DOCUMENTS results
|
|
41
|
-
|
|
42
|
-
DOCUMENTS search now returns `highlights`: an array of `{ field, fragments }` entries, where `fragments` contain matched text snippets with `<em>` tags around matched terms. `field` is one of `name` or `content`. `highlights` is omitted when there's no lexical match.
|
|
43
|
-
|
|
44
|
-
## 5.65.1
|
|
45
|
-
|
|
46
|
-
### create_notification — report failures instead of swallowing them
|
|
47
|
-
|
|
48
|
-
`create_notification` caught every error and returned the plain string `Failed to send notification to user <id>` as its result. Because the MCP layer only marks a call as an error when the tool *throws*, that string was delivered as a **success** — callers could not distinguish a delivered notification from a failed one, and the underlying cause was discarded entirely.
|
|
49
|
-
|
|
50
|
-
- Errors now go through `rethrowWithContext(error, 'send notification to user <id>')`, the same path already used by `create_update` and `delete_update`. GraphQL failures surface their real messages plus `extensions.code` / `error_data`, and reach the client as `isError: true` with JSON `structuredContent`: `{ message, tool, status, errors: [{ code, message, path }] }`
|
|
51
|
-
- Added an empty-response guard — the API can return `create_notification: null` with no GraphQL error, which previously reported success. It now throws a `ToolValidationError` coded `EMPTY_API_RESPONSE` naming the likely cause: a `target_id` / `target_type` mismatch (`Post` expects an update/reply id, `Project` expects an item/board id)
|
|
52
|
-
- Success output is a JSON object with `notification_id`, `user_id`, `target_id`, `target_type`, and `text` (previously only `message`, `user_id`, `text`). The mutation now selects `id` so the created notification can be identified
|
|
53
|
-
- No input schema changes. Callers that treated the old failure string as a soft failure will now see a thrown error
|
|
54
|
-
|
|
55
|
-
### all_api_read — drop get_graphql_schema from the stated prerequisites
|
|
56
|
-
|
|
57
|
-
- `all_api_read` no longer names `get_graphql_schema` as a prerequisite, leaving `get_type_details` as the single lookup to call before crafting a query (and fixing the plural "tools" left behind by the removal). `all_api_write` and `all_monday_api` still name both tools
|
|
58
|
-
|
|
59
|
-
## 5.65.0
|
|
60
|
-
|
|
61
|
-
### Short, self-explaining first sentence for every monday tool description
|
|
62
|
-
|
|
63
|
-
Deferred-tool listings show only the first sentence of a tool's description, so that sentence has to say what the tool does on its own. Audited every monday tool description (platform API + monday-dev; app tools untouched) and fixed the ones that opened with something else:
|
|
64
|
-
|
|
65
|
-
- `create_item` — was `[IMPORTANT] use create_items instead…`; now leads with what the tool creates
|
|
66
|
-
- `change_item_column_values` — was `[IMPORTANT] use update_items instead…`; now leads with what it changes
|
|
67
|
-
- `get_asset_upload_url` — was a capability precondition; the presigned-URL summary moved to the front
|
|
68
|
-
- `link_board_items_workflow` — was `When to use: …`; now leads with a one-line statement of what it returns
|
|
69
|
-
- `get_sprints_metadata` — was one long sentence running into a markdown section list; now a one-line summary followed by the details
|
|
70
|
-
|
|
71
|
-
No behavior changes — descriptions only; all the original guidance is kept, just reordered.
|
|
72
|
-
|
|
73
|
-
## 5.64.7
|
|
74
|
-
|
|
75
|
-
### get_board_info — nested filters to shrink large responses
|
|
76
|
-
|
|
77
|
-
On boards with hundreds of columns or views, a full `get_board_info` payload can be multi-MB (mostly `views[].settings`). Callers can now shape the response with nested filters:
|
|
78
|
-
|
|
79
|
-
- `filters.columns.ids` — return only those columns
|
|
80
|
-
- `filters.columns.only` — omit views and return only columns (`@include` skips the views selection in GraphQL)
|
|
81
|
-
- `filters.views.ids` — return only those views
|
|
82
|
-
- `filters.views.names` — resolve names via a lean id/name index query, then fetch only matching views (avoids downloading every view's settings)
|
|
83
|
-
- `filters.views.only` — omit columns and return only views (`@include` skips the columns selection in GraphQL)
|
|
84
|
-
- Unmatched view names are reported; if none match, the tool lists available view names
|
|
85
|
-
|
|
86
|
-
Related tool descriptions now tell the model to pass `filters.views.names` when the user named specific views (`update_view`, `update_view_table`, `get_board_items_page`) and to use `filters.columns.only` when they only need columns (`create_view`, `create_view_table`, `board_insights`, `create_item`, `create_items`, `update_items`, `change_item_column_values`, `update_column`, `get_board_schema`).
|
|
87
|
-
|
|
88
|
-
## 5.64.6
|
|
89
|
-
|
|
90
|
-
### Spell out prerequisite tool ordering for board, view, and column tools
|
|
91
|
-
|
|
92
|
-
Discovery tools (schema/id/revision lookups) and the write tools that depend on them often didn't state the ordering between them, so callers guessed column ids, revisions, and settings shapes instead of fetching them first. Prerequisites are now stated on both sides of each pair — the upstream tool says what it should be called before, the downstream tool says what to call first. No input schemas or behavior changed.
|
|
93
|
-
|
|
94
|
-
- `get_column_type_info` — now names all three settings writers it precedes (`create_column`, `update_column`, `manage_object_schema_columns`) instead of only `create_column`
|
|
95
|
-
- `create_column` / `update_column` — call `get_column_type_info` before populating `columnSettings` (previously only stated on the field description). `update_column` keeps the existing revision precondition
|
|
96
|
-
- `get_board_schema` / `delete_column` — `get_board_schema` documents the column id + revision it supplies to `update_column`, `delete_column`, `configure_ai_column`, and `remove_ai_from_column`, and points to `get_board_info` for broader metadata. `delete_column` now requires resolving the id first and notes the deletion is irreversible
|
|
97
|
-
- `get_board_info` — states it is the required precondition already declared by `get_board_items_page`, `board_insights`, `create_item`, `create_items`, `update_items`, and `change_item_column_values`, and that its views are the source of view ids
|
|
98
|
-
- `get_board_info` — also warns that a column's returned `settings` value is the raw API shape for that existing column and must not be copied verbatim into the `columnSettings` parameter of `create_column` / `update_column`, which was producing doubly-nested `{"settings": {...}}` payloads and schema validation failures
|
|
99
|
-
- `create_view` / `create_view_table` / `update_view` / `update_view_table` — call `get_board_info` first for column ids, status label indexes, and (for updates) the `viewId`
|
|
100
|
-
- `create_view` — fetch filter guidelines via `get_column_type_info` with `fetchMode: "guidelines"` (`data.guidelines.filter`) before sending filter rules, matching the precondition already stated on `get_board_items_page` and `board_insights`
|
|
101
|
-
|
|
102
|
-
## 5.64.5
|
|
103
|
-
|
|
104
|
-
### Spell out prerequisite tool ordering for object schema, form, automation, sprint, and dynamic API tools
|
|
105
|
-
|
|
106
|
-
Discovery tools (schema/id/revision lookups) and the write tools that depend on them often didn't state the ordering between them, so callers guessed schema ids, column ids, revisions, question ids, tag ids, automation ids, and sprint ids instead of fetching them first. Prerequisites are now stated on both sides of each pair — the upstream tool says what it should be called before, the downstream tool says what to call first. No input schemas or behavior changed.
|
|
107
|
-
|
|
108
|
-
- `get_object_schemas` — listed as the resolver for schema ids, column ids, and revisions ahead of `update_object_schema`, `manage_object_schema_columns`, `set_object_schema_column_active_state`, `delete_object_schema_columns`, `delete_object_schema`, and `manage_object_schema_board_connection`. The matching precondition was added to `manage_object_schema_columns` (update), `set_object_schema_column_active_state`, and `delete_object_schema_columns`
|
|
109
|
-
- `create_object_schema` — resolve `parentId` via `get_object_schemas`, and notes columns/boards are added afterwards
|
|
110
|
-
- `get_form` / `update_form` / `form_questions_editor` — `get_form` states it precedes `create_form_submission`, `form_questions_editor`, and `update_form`, and the two writers now require it for question ids, tag ids, and current settings
|
|
111
|
-
- `get_type_details` — documents that it returns fields, input fields, and enum values, and that it should be used to confirm a type's shape before referencing that type in an operation for `all_monday_api`, `all_api_read`, or `all_api_write`. It takes a known type name and is not gated on any other lookup. `get_graphql_schema` is unchanged
|
|
112
|
-
- `list_automations` — stated as the only way to resolve an automation id before `manage_automations`
|
|
113
|
-
- `get_board_activity` — call with `includeData=true` before `undo_action` to get the `action_record_uuid`
|
|
114
|
-
- `get_sprints_metadata` / `get_sprint_summary` — `get_sprints_metadata` points back to `get_monday_dev_sprints_boards` for the board id and forward to `get_sprint_summary` for the sprint ids it supplies. `get_sprint_summary` now requires resolving `sprintId` there
|
|
115
|
-
|
|
116
|
-
## 5.64.4
|
|
117
|
-
|
|
118
|
-
### search — scope UPDATES and TIMELINE_ITEMS search by workspaceIds
|
|
119
|
-
|
|
120
|
-
- UPDATES and TIMELINE_ITEMS search now accept `workspaceIds` to scope results to specific workspaces (the corresponding GraphQL queries already supported `workspace_ids`)
|
|
121
|
-
- Updated the `workspaceIds` field description to list UPDATES and TIMELINE_ITEMS alongside the existing entity types
|
|
122
|
-
- Updated the UPDATES and TIMELINE_ITEMS lines in the tool description to mention optional `workspaceIds` scoping
|
|
123
|
-
|
|
124
|
-
## 5.64.2
|
|
125
|
-
|
|
126
|
-
### get_board_items_page — return BatteryValue rollup status on MLS parent items
|
|
127
|
-
|
|
128
|
-
- Status columns that roll up from subitems on MLS boards are returned as `BatteryValue` (`battery_value: [{ key, count }, ...]`), not flattened to text or raw JSON
|
|
129
|
-
- The query now requests `column_values` with `capabilities: [CALCULATED]`, plus `is_leaf` and the `BatteryValue` fragment
|
|
130
|
-
- Leaf/subitem status columns are unchanged and still resolve via `text`
|
|
131
|
-
|
|
132
|
-
## 5.64.1
|
|
133
|
-
|
|
134
|
-
### search — scope BOARD and TIMELINE_ITEMS search by boardIds
|
|
135
|
-
|
|
136
|
-
- BOARD and TIMELINE_ITEMS search now accept `boardIds` to scope results to specific boards (the corresponding GraphQL queries already supported `board_ids`)
|
|
137
|
-
- Updated the `boardIds` field description to list BOARD, ITEMS, UPDATES, and TIMELINE_ITEMS
|
|
138
|
-
- Updated the BOARD and TIMELINE_ITEMS lines in the tool description to mention optional `boardIds` scoping
|
|
139
|
-
|
|
140
|
-
## 5.64.0
|
|
141
|
-
|
|
142
|
-
### send_feedback renamed to submit_bug_or_feature_request (breaking)
|
|
143
|
-
|
|
144
|
-
- **Breaking:** the `send_feedback` tool is now `submit_bug_or_feature_request`. The name leads with the two intents callers most often have, so it is picked up more reliably than the vaguer "send feedback"
|
|
145
|
-
- Renamed to match across the codebase: `SendFeedbackTool` → `SubmitBugOrFeatureRequestTool`, `sendFeedbackToolSchema` → `submitBugOrFeatureRequestToolSchema`, annotation title `Send Feedback` → `Submit Bug or Feature Request`, and the directory/files `send-feedback-tool/` → `submit-bug-or-feature-request-tool/`
|
|
146
|
-
- Rewrote the tool description: it now covers the monday.com product as well as this integration, leads the proactive-call signals with tool errors and capability gaps (frustration and retry signals moved last), spells out the parameters inline, and folds the non-monday.com and PII restrictions into a single closing line
|
|
147
|
-
- Input schema and behavior are unchanged — `kind` still accepts `feedback`, `feature_request`, and `bug`
|
|
148
|
-
|
|
149
|
-
## 5.62.1
|
|
150
|
-
|
|
151
|
-
### get_asset_upload_url — require capability check before calling
|
|
152
|
-
|
|
153
|
-
- Prepended a precondition to the tool description: only call `get_asset_upload_url` if the caller can execute a direct HTTP PUT with binary data and read response headers; otherwise it should tell the user direct file upload isn't supported instead of calling the tool
|
|
154
|
-
- Addresses a metrics gap where `get_asset_upload_url` was called far more often than `finalize_asset_upload` completed, consistent with callers (e.g. plain conversational chat agents without shell/HTTP execution) generating presigned URLs they have no way to actually use
|
|
155
|
-
|
|
156
|
-
## 5.62.0
|
|
157
|
-
|
|
158
|
-
### search — filter ITEMS search by creatorIds
|
|
159
|
-
|
|
160
|
-
- ITEMS search now accepts `creatorIds` to filter results to items created by specific users, alongside the existing `workspaceIds` and `boardIds` scoping
|
|
161
|
-
- `creatorIds` now applies to ITEMS, UPDATES, and DASHBOARDS (field description updated accordingly)
|
|
162
|
-
- `search.items(creator_ids:)` is only available from the `dev` API version, so a creator-filtered ITEMS search uses a dev-only `SearchItemsByCreatorDev` operation with `versionOverride: 'dev'`; unfiltered ITEMS searches stay on the stable version. Fold this back into `searchItems` and drop the override once the arg reaches a dated version
|
|
163
|
-
- Requires DaPulse/search#2707, which removes the `public-internal` tag that kept `creator_ids` out of the public schema
|
|
164
|
-
|
|
165
|
-
## 5.61.7
|
|
166
|
-
|
|
167
|
-
### search — scope ITEMS search by boardIds; accurate scoping docs
|
|
168
|
-
|
|
169
|
-
- ITEMS search now accepts `boardIds` to scope results to specific boards (the `search.items` GraphQL query already supported `board_ids`); pass alongside or instead of `workspaceIds`
|
|
170
|
-
- Fixed the `workspaceIds` field description, which omitted ITEMS even though ITEMS search already honored it — it now lists ITEMS alongside BOARD, DOCUMENTS, and DASHBOARDS
|
|
171
|
-
- Updated the `boardIds` field description (now ITEMS and UPDATES) and the ITEMS line in the tool description to mention `workspaceIds`/`boardIds` scoping
|
|
172
|
-
|
|
173
|
-
## 5.61.5
|
|
174
|
-
|
|
175
|
-
### update_doc — bulk-only delete via delete_blocks (breaking)
|
|
176
|
-
|
|
177
|
-
- **Breaking:** `update_doc` operation `delete_block` renamed to `delete_blocks` and always takes `block_ids: string[]` (1–100)
|
|
178
|
-
- All public delete operations now use the `delete_doc_blocks` GraphQL mutation (single-block deletes included)
|
|
179
|
-
- `replace_block` internally still uses `delete_doc_block` (no external impact)
|
|
180
|
-
|
|
181
|
-
## 5.61.4
|
|
182
|
-
|
|
183
|
-
### search — clearer searchTerm guidance and an actionable missing-searchTerm error
|
|
184
|
-
|
|
185
|
-
- Strengthened the tool description and the `searchTerm` field description to define `searchTerm` as the phrase the search matches against (the text/keywords to look for), state that it is required and non-empty, and clarify it is not a filter or an id. Directly targets the largest residual validation-error bucket: callers omitting the term or sending the wrong field
|
|
186
|
-
- A missing `searchTerm` now returns an actionable, browse-oriented message pointing callers at `workspace_info` (boards/docs/folders) and `get_board_items_page` (items) instead of the generic "Required", so callers trying to list rather than search can self-correct. An empty/whitespace `searchTerm` keeps its existing non-empty message
|
|
187
|
-
- Both the description and the error name the browse alternatives, so a caller with browse intent (no search phrase) is steered to the right tool
|
|
188
|
-
|
|
189
|
-
## 5.61.3
|
|
190
|
-
|
|
191
|
-
### search — propagate location ids (board/workspace/item) across entities
|
|
192
|
-
|
|
193
|
-
- ITEMS search now returns `boardId` and `workspaceId` for each result, so callers can locate an item's board and workspace without a follow-up lookup
|
|
194
|
-
- BOARD, DOCUMENTS, and DASHBOARDS search now return `workspaceId`
|
|
195
|
-
- TIMELINE_ITEMS search now returns `itemId` and `boardId`
|
|
196
|
-
- All added ids come from the search index (`board_id`/`workspace_id`/`item_id`); the nullable ones are optional and omitted when the index has no value for them
|
|
197
|
-
- Updated the tool description to list the fields each search type returns
|
|
198
|
-
|
|
199
|
-
## 5.58.1
|
|
200
|
-
|
|
201
|
-
### search — reduce validation failures (actionable errors, folder fallback, input coercion)
|
|
202
|
-
|
|
203
|
-
- `searchType` rejections now return an actionable message that lists the valid values and, when the value maps to a known intent, redirects to the right tool (e.g. `USERS` → `list_users_and_teams`, `BOARD_ITEMS` → `get_board_items_page`, `FORMS` → not searchable) so callers can self-correct on retry
|
|
204
|
-
- `searchType` normalization now also collapses separators/casing (e.g. `"board item"`, `"BOARD-ITEM"`) and adds `DOCUMENT`, `PULSE`/`PULSES` aliases
|
|
205
|
-
- FOLDERS search no longer errors when `workspaceIds` is omitted — it searches across all accessible workspaces
|
|
206
|
-
- `limit` accepts numeric strings (coerced then clamped); `workspaceIds`/`boardIds`/`creatorIds` accept a scalar or numeric strings and treat `null` as omitted
|
|
207
|
-
- Targets the top post-deploy validation-error buckets observed in production search logs
|
|
208
|
-
- Fixed: a `searchTerm` that normalizes to an empty string (e.g. punctuation/emoji-only) no longer returns unfiltered folders
|
|
209
|
-
- Fixed: FOLDERS search now reports when its 100-folder scan was truncated instead of silently dropping matches
|
|
210
|
-
- Fixed: `limit` now enforces a lower bound (clamped to at least 1) and `null` correctly defaults instead of failing validation
|
|
211
|
-
- Fixed: `limit`/`workspaceIds`/`boardIds`/`creatorIds` no longer accept `Infinity` (as a string or a raw numeric literal) — numeric coercion now goes through `z.coerce.number().finite()` instead of hand-rolled regex/`Number.isFinite` checks, so both forms are rejected consistently. Hex-like strings (e.g. `"0x1A"`) are still accepted and coerced to their numeric value, same as any other numeric string — no special-casing
|
|
212
|
-
- Fixed: `searchType` normalization only collapses separators, so garbage input (e.g. `"board!!!"`) is rejected instead of silently matching a valid value
|
|
213
|
-
- Empty `workspaceIds`/`boardIds`/`creatorIds` arrays are now treated as "no filter" consistently across all search types, matching FOLDERS
|
|
214
|
-
- `searchTerm` is trimmed and validated as non-empty for every search type, including BOARD
|
|
215
|
-
|
|
216
|
-
## 5.58.0
|
|
217
|
-
|
|
218
|
-
### search — add DASHBOARDS (overviews) search type
|
|
219
|
-
|
|
220
|
-
- Adds `DASHBOARDS` as a search type in the unified `search` tool (aliases: `dashboard`, `overview`, `overviews`), backed by the platform's `search { overviews }` endpoint
|
|
221
|
-
- Returns `id` and `title`; optionally scoped by `workspaceIds` and/or `creatorIds`
|
|
222
|
-
- `search.overviews` is only exposed in the `dev` API version, so the query lives in `search-tool.graphql.dev.ts` and pins `versionOverride: 'dev'` (same approach previously used for boards/docs). Move the query to `search-tool.graphql.ts` and drop the override once the field is promoted to a stable API version
|
|
223
|
-
|
|
224
|
-
## 5.56.1
|
|
225
|
-
|
|
226
|
-
### search — actionable error and whitespace handling for searchTerm
|
|
227
|
-
|
|
228
|
-
- `searchTerm` validation now returns an actionable message (`searchTerm must be a non-empty search string.`) instead of the generic Zod `String must contain at least 1 character(s)`, helping agents recover from empty-term calls
|
|
229
|
-
- `searchTerm` is now trimmed before validation, so whitespace-only values (e.g. `" "`) are correctly rejected and surrounding whitespace is stripped from valid terms before querying
|
|
230
|
-
|
|
231
|
-
## 5.54.1
|
|
232
|
-
|
|
233
|
-
### publish_workflow — restrict to explicit user request
|
|
234
|
-
|
|
235
|
-
- Added "When to use" guidance to the tool description instructing the LLM to only call `publish_workflow` when the user explicitly asks to publish
|
|
236
|
-
- After workflow creation/update, the LLM will suggest publishing and wait for user confirmation before proceeding
|
|
237
|
-
|
|
238
|
-
## 5.54.0
|
|
239
|
-
|
|
240
|
-
### create_items — report items_count on sessionContext metadata
|
|
241
|
-
|
|
242
|
-
- `create_items` now sets `sessionContext.metadata.items_count` to the number of items in the request, so BigBrain mcp-request events can track how many items agents send per call
|
|
243
|
-
- Mirrors the observability pattern introduced for `all_monday_api`
|
|
244
|
-
|
|
245
|
-
## 5.49.0
|
|
246
|
-
|
|
247
|
-
### search — normalize searchType and limit inputs
|
|
248
|
-
|
|
249
|
-
- `searchType` now accepts lowercase and plural variants (e.g. `"boards"`, `"docs"`, `"workspace"`) and normalizes them to the canonical enum value via `z.preprocess()`
|
|
250
|
-
- `limit` values exceeding the maximum (20) are clamped instead of rejected, preventing unnecessary validation errors
|
|
251
|
-
- These two normalizations address ~12k weekly validation errors caused by LLMs passing non-canonical input values
|
|
252
|
-
|
|
253
|
-
## 5.46.0
|
|
254
|
-
|
|
255
|
-
### search — remove fallback, make searchTerm required, and promote boards/docs to stable API
|
|
256
|
-
|
|
257
|
-
- `searchTerm` is now required (`z.string().min(1)`) for all search types — agents that previously omitted it to browse must use `workspace_info` instead
|
|
258
|
-
- Removed the legacy `getBoards`/`getDocs` listing queries and the fallback path that activated when the dev search endpoint failed; all results now come directly from the search endpoint
|
|
259
|
-
- Removed the `page` parameter and virtual pagination logic; removed `LOAD_INTO_MEMORY_LIMIT` constant and `DataWithFilterInfo` type
|
|
260
|
-
- Boards and docs search GraphQL queries promoted from `versionOverride: 'dev'` to the stable default schema endpoint; `search-tool.graphql.dev.ts` deleted
|
|
261
|
-
- IDs in search results are now returned as raw values — the `ObjectPrefixes` type and all prefixing logic removed since cross-entity search no longer exists
|
|
262
|
-
|
|
263
|
-
## 5.42.0
|
|
264
|
-
|
|
265
|
-
### search — add TIMELINE_ITEMS search type
|
|
266
|
-
|
|
267
|
-
- Adds `TIMELINE_ITEMS` as a search type in the unified `search` tool, backed by the platform's `search { timeline_items }` endpoint
|
|
268
|
-
- Only available from API version `2026-10`; query pins `versionOverride: '2026-10'` with hand-written types (same approach as `UPDATES`)
|
|
269
|
-
- Requires a `searchTerm`; returns `id` (prefixed `timeline-item-`), `title`, `summary`, and `content`
|
|
270
|
-
- No listing fallback — errors propagate, and `page > 1` is rejected, matching `ITEMS`/`WORKSPACES`/`UPDATES`
|
|
271
|
-
|
|
272
|
-
## 5.41.1
|
|
273
|
-
|
|
274
|
-
### search — improve field descriptions to reduce incorrect tool usage
|
|
275
|
-
|
|
276
|
-
- Clarified required vs optional fields per search type
|
|
277
|
-
- Listed exact valid enum values for `searchType`
|
|
278
|
-
- Added format guidance for array parameters
|
|
279
|
-
- Removed misleading pagination hint from `page` description
|
|
280
|
-
|
|
281
|
-
## 5.37.0
|
|
282
|
-
|
|
283
|
-
### search — add UPDATES search type
|
|
284
|
-
|
|
285
|
-
- Added `UPDATES` as a search type in the unified `search` tool, backed by the server-side `search { updates }` endpoint
|
|
286
|
-
- `UPDATES` results return `id`, `title` (the update body), `itemId`, `boardId`, and `creatorId`, with optional `boardIds` and `creatorIds` filters to scope the search
|
|
287
|
-
- Requires a `searchTerm` and has no listing fallback (errors propagate, like `ITEMS`)
|
|
288
|
-
- This field is only available from API version `2026-10`, so the query pins `versionOverride: '2026-10'` with hand-written types (same approach as `list_automations`) until it is promoted to the codegen schema snapshot
|
|
289
|
-
|
|
290
|
-
## 5.24.0
|
|
291
|
-
|
|
292
|
-
### manage_automations — rename from manage_workflows
|
|
293
|
-
|
|
294
|
-
- Renamed `manage_workflows` tool to `manage_automations` for consistency with `list_automations` and `create_automation`
|
|
295
|
-
- Updated tool title and description accordingly; removed the now-unnecessary "Terminology: workflows = automations" note
|
|
296
|
-
- No functional changes — activate, deactivate, and delete behaviour is unchanged
|
|
297
|
-
|
|
298
|
-
### automations-tools — directory restructure
|
|
299
|
-
|
|
300
|
-
- Renamed `workflows-tools/` → `automations-tools/` and `list-workflows/` → `list-automations/` to align directory names with tool naming convention
|
|
301
|
-
- Removed stale note from `publish_workflow` description that incorrectly referenced `manage_automations` as a way to retrieve draft IDs
|
|
302
|
-
|
|
303
|
-
## 5.22.0
|
|
304
|
-
|
|
305
|
-
### plan_workflow — new tool
|
|
306
|
-
|
|
307
|
-
- Adds `plan_workflow` MCP tool that calls the `workflow-planner` platform-agent proxy (`/platform-ai-gateway/agents/workflow-planner`)
|
|
308
|
-
- Takes a single `prompt` (max 2000 chars) describing a process and returns a structured markdown plan: workflow breakdowns, block IDs, Mermaid diagrams, resource definitions, and assumption/gap notes
|
|
309
|
-
- Use before `create_workflow` to understand how to decompose a complex process into individual workflows and which resources to create first
|
|
310
|
-
- Adds `WORKFLOW_PLANNER_AGENT_URL` constant to `workflow-builder-tools/constants.ts`
|
|
311
|
-
|
|
312
|
-
## 5.21.0
|
|
313
|
-
|
|
314
|
-
### get_board_activity — add user_ids filter
|
|
315
|
-
|
|
316
|
-
- Added optional `userIds` parameter to filter activity logs to actions performed by specific users
|
|
317
|
-
- Updated GraphQL query (`GetBoardActivity`) to pass `user_ids` argument to `activity_logs`
|
|
318
|
-
- Updated `getDescription()` to reflect the new filtering capabilities
|
|
319
|
-
|
|
320
|
-
## 5.20.0
|
|
321
|
-
|
|
322
|
-
### Add agent management tools
|
|
323
|
-
|
|
324
|
-
Five new tools enabling agents to create and manage monday.com platform agents end-to-end:
|
|
325
|
-
|
|
326
|
-
- `manage_agent` — full lifecycle management: `create` (AI mode via prompt), `create_blank` (manual mode), `get`, `update`, `delete`, `activate`, `deactivate`, `run`
|
|
327
|
-
- `manage_agent_triggers` — manage per-agent triggers (when it runs): `list`, `add`, `remove`
|
|
328
|
-
- `manage_agent_skills` — full skill lifecycle: `create` a new skill in the catalog, `add` to agent, `remove` from agent
|
|
329
|
-
- `manage_agent_knowledge` — grant, update, or revoke an agent's access to boards and docs
|
|
330
|
-
- `agent_catalog` (READ) — browse the account-wide catalog of available trigger types and skills before wiring them to an agent
|
|
331
|
-
|
|
332
|
-
## 5.19.0
|
|
333
|
-
|
|
334
|
-
### publish_workflow — surface validation error details
|
|
335
|
-
|
|
336
|
-
- `rethrowWithContext` now includes GraphQL `extensions` data in the error message when present, so structured errors like `WORKFLOW_VALIDATION_FAILED` (with step-level issue details) are passed through to the LLM instead of being dropped
|
|
337
|
-
|
|
338
|
-
## 5.11.0
|
|
339
|
-
|
|
340
|
-
### Asset upload MCP tools
|
|
341
|
-
|
|
342
|
-
- Added `get_asset_upload_url` — requests a presigned S3 upload URL for a file. Returns `upload_id`, `upload_url`, and expiry. Includes inline `curl` example for the upload step and ETag capture guidance.
|
|
343
|
-
- Added `finalize_asset_upload` — finalizes the upload via `complete_upload` and attaches the asset to a file column on a board item using `change_column_value` (append semantics). Returns `asset_id`, `filename`, `content_type`, `file_size`, `url`, and `filelink`.
|
|
344
|
-
- Both tools use `versionOverride: 'dev'` as `create_upload` / `complete_upload` are currently dev-schema-only.
|
|
345
|
-
|
|
346
|
-
## 5.7.1
|
|
347
|
-
|
|
348
|
-
### form_questions_editor — fix ConditionOperator and remove existing_column_id
|
|
349
|
-
|
|
350
|
-
- Removed `existing_column_id` from the tool schema — this field caused 38% of all tool errors (ColumnNotFound / QuestionTypeIncompatibleWithColumnType) because agents passed arbitrary board column IDs not linked to the form
|
|
351
|
-
- Fixed misleading `show_if_rules` description that incorrectly stated AND was used between conditions — all operators must be OR per the GraphQL schema
|
|
352
|
-
- Removed `And` from the local `ConditionOperator` enum to align with the GraphQL schema constraint
|
|
353
|
-
|
|
354
|
-
## 5.7.0
|
|
355
|
-
|
|
356
|
-
### Add account context to get_user_context tool
|
|
357
|
-
|
|
358
|
-
- Extended `get_user_context` to include account-level data: plan tier, active member count, trial status, and active products
|
|
359
|
-
- Added account fields to the getUserContext GraphQL query (dev API version)
|
|
360
|
-
- Updated search tool routing hints to direct account-level queries to `get_user_context`
|
|
361
|
-
- Removed standalone `get_account_context` tool (functionality merged into `get_user_context`)
|
|
362
|
-
|
|
363
|
-
## 5.3.3
|
|
364
|
-
|
|
365
|
-
### Workforms tools — trim MCP tool descriptions by ~79% to reduce token cost
|
|
366
|
-
|
|
367
|
-
- Removed descriptions that restate the field name, type, or enum values
|
|
368
|
-
- Removed container object descriptions (`"Object containing X configuration"`)
|
|
369
|
-
- Rewrote remaining descriptions to be terse and actionable
|
|
370
|
-
- Added non-obvious constraints: type immutability on update, safe option update workflow (call `get_form` first), `page_block_id` null vs omit distinction, `existing_column_id` usage guidance
|
|
371
|
-
- `update_form` action description now explains each action requires different fields — check field descriptions
|
|
372
|
-
- Net result: ~4,591 → ~963 tokens per request across all 4 form tools
|
|
373
|
-
|
|
374
|
-
## 5.3.1
|
|
375
|
-
|
|
376
|
-
### Workforms tools — return full option data from GraphQL queries
|
|
377
|
-
|
|
378
|
-
- Added `value`, `visible`, and `active` fields to the `QuestionOptionsFragment` GraphQL fragment
|
|
379
|
-
- `get_form`, `create_form_question`, and `update_form_question` now return complete option data
|
|
380
|
-
- Previously only `label` was returned, preventing safe updates on questions with existing submissions
|
|
381
|
-
|
|
382
|
-
## 5.1.1
|
|
383
|
-
|
|
384
|
-
### Workforms tools — options schema and description updates
|
|
385
|
-
|
|
386
|
-
**`form_questions_editor` options schema:**
|
|
387
|
-
|
|
388
|
-
- `value` (optional) — internal option identifier. Required when updating options already assigned to board items.
|
|
389
|
-
- `visible` (optional) — whether the option is visible to respondents.
|
|
390
|
-
|
|
391
|
-
**`update-form-tool` schema:**
|
|
392
|
-
|
|
393
|
-
- `page_block_id` on question order entries — assign questions to page blocks during reorder.
|
|
394
|
-
|
|
395
|
-
**Description improvements:**
|
|
396
|
-
|
|
397
|
-
- `selectOptions`: added max limits (SingleSelect: 40, MultiSelect: 500) and PUT semantics clarification.
|
|
398
|
-
- `pageBlockId`: clarified that passing `null` removes the page block association.
|
|
399
|
-
- Added descriptions for `selectOptionsValue`, `selectOptionsVisible`, `blockType`, `insertAfterQuestionId`, `existingColumnId`, `labelLimitCount`, `labelLimitCountEnabled`, `defaultAnswer`.
|