beeswax-mcp 1.0.0 → 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 +1 -0
- package/dist/tools.js +82 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -107,6 +107,7 @@ reports the same on demand.
|
|
|
107
107
|
| `list_transaction_accounts` | `/active_account/transaction_accounts` |
|
|
108
108
|
| `list_companies` | `/active_account/companies` |
|
|
109
109
|
| `list_task_files`, `list_task_file_versions` | `/tasks/:id/files` (+ per-file version history) |
|
|
110
|
+
| `list_project_documents`, `get_project_document`, `create_project_document` (write), `update_project_document` (write), `list_project_document_versions`, `get_project_document_version`, `restore_project_document_version` (write) | `/project_documents` (+ per-document version history) |
|
|
110
111
|
| `list_products_services`, `get_product_service`, `create_product_service` (write), `update_product_service` (write), `delete_product_service` (write) | `/transaction_templates` |
|
|
111
112
|
| `list_manual_journals`, `get_manual_journal`, `create_manual_journal` (write), `finalise_manual_journal` (write) | `/raw_journal_entries` |
|
|
112
113
|
| `list_tax_returns`, `get_tax_return`, `get_tax_return_field_transactions`, `list_tax_return_findings`, `update_tax_return_field` (write), `confirm_tax_return_section` (write) | `/tax_returns` |
|
package/dist/tools.js
CHANGED
|
@@ -233,6 +233,88 @@ export const TOOLS = [
|
|
|
233
233
|
},
|
|
234
234
|
handler: (client, args) => client.getOne(`/tasks/${args.task_id}/files/${args.file_id}/versions`, ""),
|
|
235
235
|
},
|
|
236
|
+
// ── Project documents (freeform markdown documents) ─────────────────────
|
|
237
|
+
{
|
|
238
|
+
name: "list_project_documents",
|
|
239
|
+
description: "List project documents. Freeform documents are markdown written in Beeswax's document editor — proposals, briefs, meeting notes — styled by the account's invoice theme; other document_types are generated from library templates and are read-only via this API. Each row carries state (draft/published/finalized/archived), current_version_number, and editing_lock (who has it open in the web editor right now). Filter with project_id and/or document_type (e.g. 'freeform').",
|
|
240
|
+
inputSchema: {
|
|
241
|
+
type: "object",
|
|
242
|
+
properties: {
|
|
243
|
+
project_id: { type: "integer", description: "Only documents on this project" },
|
|
244
|
+
document_type: { type: "string", description: "e.g. 'freeform' for markdown documents" },
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
handler: (client, args) => client.fetchAll("/project_documents", "project_documents", {
|
|
248
|
+
project_id: args.project_id,
|
|
249
|
+
document_type: args.document_type,
|
|
250
|
+
}),
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
name: "get_project_document",
|
|
254
|
+
description: "A single project document including its full markdown `body` and editing_lock status. Check editing_lock before proposing edits — if someone has it open in the web editor, writes will be refused with a conflict until they finish.",
|
|
255
|
+
inputSchema: { type: "object", properties: { id: { type: "integer" } }, required: ["id"] },
|
|
256
|
+
handler: (client, args) => client.getOne(`/project_documents/${args.id}`, "project_document"),
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
name: "create_project_document",
|
|
260
|
+
description: "Create a freeform (markdown) document on a project. `body` is markdown (headings, lists, tables, blockquotes all render through the account's invoice theme). The optional `note` becomes the first version's 'what changed' line. Requires a token with the `project_documents:write` scope.",
|
|
261
|
+
inputSchema: {
|
|
262
|
+
type: "object",
|
|
263
|
+
properties: {
|
|
264
|
+
project_id: { type: "integer" },
|
|
265
|
+
name: { type: "string", description: "Document title (defaults to 'Untitled document')" },
|
|
266
|
+
body: { type: "string", description: "Markdown content" },
|
|
267
|
+
note: { type: "string", description: "Optional 'what changed' note for the first version" },
|
|
268
|
+
},
|
|
269
|
+
required: ["project_id"],
|
|
270
|
+
},
|
|
271
|
+
handler: (client, args) => client.mutate("POST", "/project_documents", {
|
|
272
|
+
project_document: { project_id: args.project_id, name: args.name, body: args.body, note: args.note },
|
|
273
|
+
}),
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
name: "update_project_document",
|
|
277
|
+
description: "Update a freeform document's markdown `body` and/or `name`. Only the fields you pass are changed; `body` REPLACES the whole content, so read the document first and send the complete edited markdown. Each successful update lands as exactly ONE new version in the history — pass `note` to label it. Refused while someone is editing in the web (409), and once the document is finalised or archived. Requires `project_documents:write`.",
|
|
278
|
+
inputSchema: {
|
|
279
|
+
type: "object",
|
|
280
|
+
properties: {
|
|
281
|
+
id: { type: "integer" },
|
|
282
|
+
name: { type: "string" },
|
|
283
|
+
body: { type: "string", description: "The complete replacement markdown" },
|
|
284
|
+
note: { type: "string", description: "Optional 'what changed' note for this version" },
|
|
285
|
+
},
|
|
286
|
+
required: ["id"],
|
|
287
|
+
},
|
|
288
|
+
handler: (client, args) => client.mutate("PATCH", `/project_documents/${args.id}`, {
|
|
289
|
+
project_document: { name: args.name, body: args.body, note: args.note },
|
|
290
|
+
}),
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
name: "list_project_document_versions",
|
|
294
|
+
description: "Version history of a project document, newest first. History is append-only — one version per web editing session (with the author's optional note), one per API update, plus 'Autosaved checkpoint' entries during long sessions and 'Restored from vN' entries for restores. Bodies are omitted here; read one with get_project_document_version.",
|
|
295
|
+
inputSchema: { type: "object", properties: { id: { type: "integer" } }, required: ["id"] },
|
|
296
|
+
handler: (client, args) => client.getOne(`/project_documents/${args.id}/versions`, ""),
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
name: "get_project_document_version",
|
|
300
|
+
description: "One version of a project document, addressed by its version_number (the 'v3' in the UI), including the full markdown body as it was at that point.",
|
|
301
|
+
inputSchema: {
|
|
302
|
+
type: "object",
|
|
303
|
+
properties: { id: { type: "integer" }, version_number: { type: "integer" } },
|
|
304
|
+
required: ["id", "version_number"],
|
|
305
|
+
},
|
|
306
|
+
handler: (client, args) => client.getOne(`/project_documents/${args.id}/versions/${args.version_number}`, "version"),
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
name: "restore_project_document_version",
|
|
310
|
+
description: "Restore a project document to an earlier version. Append-only: the restore itself becomes the next version ('Restored from vN'), so nothing is lost. Returns the document plus restored_version (null when the content already matched). Refused while someone is editing in the web. Requires `project_documents:write`.",
|
|
311
|
+
inputSchema: {
|
|
312
|
+
type: "object",
|
|
313
|
+
properties: { id: { type: "integer" }, version_number: { type: "integer" } },
|
|
314
|
+
required: ["id", "version_number"],
|
|
315
|
+
},
|
|
316
|
+
handler: (client, args) => client.mutate("POST", `/project_documents/${args.id}/versions/${args.version_number}/restore`, {}),
|
|
317
|
+
},
|
|
236
318
|
// ── Products & services catalogue (transaction templates) ──────────────
|
|
237
319
|
{
|
|
238
320
|
name: "list_products_services",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "beeswax-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Official MCP server for Beeswax (beeswaxapp.com) — query invoices, quotes, expenses, payments, journals, time entries, projects, products & services and tax returns from Claude and other MCP clients, and build quotes priced from your catalogue.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://www.beeswaxapp.com/support/mcp-setup",
|