Decknote
mcp remote · streamable-http · v1.0.0 · source: crawl
https://decknote.app/api/v1/mcp
Kanban boards your AI agent can use: add, complete, move and recall tasks with your team.
Works
90
Verified Oct 31, 2026 · p50 571 ms · p95 602 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'Decknote' |
| tools_listed | 15 | pass | 211 tools |
| schema_complete | 15 | pass | 211 of 211 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 571 ms |
| latency_p95 | 5 | pass | p95 602 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | fail | update_board: base64 payload; add_expense_receipt: base64 payload; get_invoice_pdf: base64 payload |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (211)
| Name | Description | Schema |
|---|---|---|
create_label | Adds a label to a board. Colors: green, yellow, orange, red, purple, blue, sky, pink. | typed |
update_label | Renames or recolors a label; the change shows on every card that has it. | typed |
delete_label | Deletes a label from a board and removes it from every card that has it. Needs confirm: true; without it the result is a preview. | typed |
set_task_estimate | Sets how long a task is expected to take, or clears it with null. Written with a unit: 4h, 1h30, 90m, 1.5h (a bare number is minutes); up to 10,000 hours. Needs the editor role on the project. | typed |
set_task_billable | Sets whether time logged on a task is billable to the client (true or false), or makes it follow the project's default (null). Applies to time logged from then on; entries already logged keep their se | typed |
get_task_time | Reads the time of one task: its estimate, the time tracked so far, how close that is to the estimate (ok, warning from 80%, over), whether its time is billable, and its time entries. The project owner | typed |
list_clients | Lists the user's clients (the companies or people projects are done for) with their contact details, currency, default hourly rate in cents and how many projects use each. The free plan includes 2 act | typed |
overview | Snapshot of the user's Decknote account: plan and limits, recent boards, what needs attention (overdue and due-today tasks, unread notifications, upcoming reminders), sharing (pending invitations, sha | typed |
list_boards | Lists the boards the user can access, each with its lists (ids and titles), the user's role on it (OWNER, EDITOR or VIEWER), whether it is archived and whether it is a favorite. These board and list i | typed |
create_board | Creates a new board owned by the user. `template` sets the initial lists and labels, in the user's language: blank (To do / In progress / Done), kanban, content or personal; `lists` replaces the templ | typed |
create_list | Adds a list (column) to a board, at the end or, with first: true, before the other lists. Returns the new list with its id. Needs edit access to the board. | typed |
search_tasks | Searches the user's tasks (cards) across boards by free text in title and description, and by board, list, status (open, completed, all or archived) and due date. Answers questions like what is still | typed |
get_task | Reads one task in full: title, description, dates, completion, board and list, labels, assignees, checklists with their items, comments with reactions, attachments, links to other tasks, custom field | typed |
create_task | Adds a task (card) to a list, or to a board's first list when only boardId is given. The description becomes the card's page and accepts Markdown (headings, bullet and numbered lists, - [ ] task lists | typed |
update_task | Edits a task: title, description, due date, start date, repeat or cover (a color, or one of the task's image attachments). The description accepts Markdown and replaces the card's whole page. null cle | typed |
complete_task | Marks a task as completed (done). | typed |
reopen_task | Marks a completed task as not done again. | typed |
archive_task | Archives a task: it leaves the board but keeps all its data and can be restored from the board's archive. Archiving a dated repeating task creates its next occurrence, as in the app. | typed |
move_task | Moves a task to another list: on the same board, optionally to a position (index 0 = top), or on another board the user can edit (it lands at the end). Moving to another board drops the old board's la | typed |
add_comment | Adds a comment to a task as the user. By default nobody is notified. With notify: true it notifies @mentioned board members and the card's watchers by push and email, as commenting in the app does; th | typed |
add_reminder | Adds a reminder for the user on a task: a push notification and an email at a chosen moment. Either `at` (an ISO 8601 instant), or relative to the due date (`daysBefore` + local `time` + IANA `timeZon | typed |
list_reminders | Lists the user's pending reminders, soonest first, optionally on one board, with each task's title and due date. | typed |
remove_reminder | Deletes one of the user's reminders. | typed |
search | Searches the open and completed cards of every board the user can access by text in title and description. Returns card ids, titles (with the board) and links. | typed |
fetch | Reads one card by id as a document: title, board and list, due date, labels, description, checklists and comments. | typed |
get_board | Reads one board in full, like opening it in the app: lists with their cards (dates, labels, assignees, checklist progress, custom field values), labels, members and the user's role, custom fields, rul | typed |
list_activity | Lists a board's activity history, newest first: who did what, and when. How far back it goes follows the board owner's plan (Free: 40 entries, Pro: 200), as in the app. | typed |
update_board | Changes a board's title, icon (one emoji), cover color or background image (Pro; PNG, JPEG, WEBP or GIF up to 5 MB, base64-encoded), or removes the background. Needs edit access to the board. | typed |
set_board_preferences | Sets the user's own preferences for a board: favorite (starred) and muted (no notifications from it). Affects only the user. | typed |
duplicate_board | Copies a board the user can see into a new board the user owns: lists, cards (content, dates, checklists, labels) and look. Members, comments and attachments are not copied. Counts toward the free pla | typed |
archive_board | Archives a board the user owns: it leaves everyone's dashboard and keeps all its data until it is restored. Archived boards don't count toward the free plan's 5 owned boards. | typed |
restore_board | Restores an archived board the user owns to everyone's dashboard. | typed |
delete_board | Permanently deletes a board the user owns, with every list, card, comment and attachment on it, also for the people it is shared with. Irreversible. Without confirm: true nothing is deleted and the re | typed |
import_trello_board | Creates a board from a Trello JSON export (in Trello: Menu → Print, export and share → Export as JSON): lists, cards with Markdown descriptions, dates, labels, checklists, comments and links. Counts t | typed |
share_board | Shares a board the user owns with someone by email, as EDITOR or VIEWER. People with an account get access right away; others get an invitation to sign up. Decknote emails them either way, so it needs | typed |
update_member | Changes a member's role on a board the user owns: EDITOR (can change things) or VIEWER (read only). | typed |
remove_member | Removes someone from a board the user owns: they lose access, and their assignments, watches and reactions on it are removed (their comments stay). Needs confirm: true; without it the result is a prev | typed |
leave_board | Removes the user from a board someone else shared with them; only the owner can add them back. The owner can't leave their own board. Needs confirm: true; without it the result is a preview. | typed |
transfer_board | Hands a board the user owns to one of its members: they become the owner (their plan then decides the board's Pro features) and the user stays on as an editor. Needs confirm: true; without it the resu | typed |
set_public_link | Turns a board's public read-only link on or off, or issues a new one so the old one stops working. Anyone with the link can view the board without an account. Owner only. Needs confirm: true; without | typed |
list_embeds | Lists the live embeds of a board the user owns (the board shown inside another app of the user's). | typed |
create_embed | Lets another app of the user's show this board in an iframe (Pro, owner only): a name and up to 5 https origins allowed to frame it, read-only unless canEdit. That app's server then requests a session | typed |
revoke_embed | Turns off one of a board's embeds: the app showing it loses access at its next request. Needs confirm: true; without it the result is a preview. | typed |
update_list | Renames a list, sets its WIP limit (Pro; null clears it) or moves it to another position among the board's lists (index 0 = first). Needs edit access to the board. | typed |
duplicate_list | Copies a list with its open cards (content, dates, labels, checklists) to the end of the same board. | typed |
sort_list | Reorders a list's cards by due date (soonest first, undated last), by title (A to Z) or by creation (newest first). | typed |
delete_list | Permanently deletes a list and every card in it, archived ones included. Irreversible. Needs confirm: true; without it the result is a preview with the number of cards that would be lost. | typed |
create_custom_field | Adds a custom field to a board's cards: text, number, select (with up to 20 options), checkbox or date. The free plan allows 3 per board. | typed |
update_custom_field | Renames a custom field or changes a select field's options. Removing an option that cards use clears it from them, which needs confirm: true; without it the result is a preview. | typed |
delete_custom_field | Deletes a custom field and its value on every card. Needs confirm: true; without it the result is a preview. | typed |
create_saved_view | Saves a personal view of a board: how to show it (board, table, calendar or timeline) and a filter (due date, labels, assignees). Only the user sees it. The free plan allows 3 per board. | typed |
delete_saved_view | Deletes one of the user's saved views. Needs confirm: true; without it the result is a preview. | typed |
create_automation | Adds a board rule: WHEN a card is added to a list / moved to a list / gets a label, THEN move it, add or remove a label, assign someone, set the due date N days ahead, archive it, or comment. Triggers | typed |
set_automation_enabled | Turns a board rule on or off without deleting it. | typed |
delete_automation | Deletes a board rule. Needs confirm: true; without it the result is a preview. | typed |
duplicate_task | Copies a task right below the original: title, description, dates, labels, cover, field values and checklists (not comments, assignees or attachments). | typed |
restore_task | Puts an archived task back on its list. | typed |
delete_task | Permanently deletes a task with its comments, checklists and attachments. Irreversible. Needs confirm: true; without it the result is a preview of what would be lost. | typed |
set_task_labels | Adds and/or removes labels of the task's board on a task. Adding a label runs the board's 'label added' rules, as in the app. | typed |
set_task_assignees | Assigns or unassigns board members on a task. Assigning someone other than the user sends them a push and an email, as in the app, so it needs confirm: true and returns a preview without it; self-assi | typed |
watch_task | Starts or stops watching a task (watchers are notified of new comments on it). Affects only the user. | typed |
set_task_field | Sets a custom field's value on a task, or clears it with null. text: any text; number: a number; select: one of its options; checkbox: true or false; date: YYYY-MM-DD. | typed |
link_tasks | Relates two tasks on the same board: 'blocks' (from blocks to) or 'relates' (both ways). | typed |
unlink_tasks | Removes a relation between two tasks. | typed |
bulk_tasks | Acts on up to 100 tasks of one board at once, like multi-select in the app: moves them to a list, adds a label, or archives them (repeating ones create their next occurrence). | typed |
create_task_from_template | Adds a task to a list from one of the board's card templates. | typed |
save_task_as_template | Saves a task's description and labels as a reusable card template on its board. | typed |
delete_card_template | Deletes a card template; tasks made from it stay. Needs confirm: true; without it the result is a preview. | typed |
edit_comment | Edits a comment's text (the user's own, or any on a board the user owns). It shows as edited. | typed |
delete_comment | Deletes a comment (the user's own, or any on a board the user owns). Needs confirm: true; without it the result is a preview. | typed |
react_to_comment | Adds or removes the user's emoji reaction on a comment. Emojis: 👍 ❤️ 🎉 😄 👀 🚀. | typed |
add_checklist | Adds a checklist with its items to a task, in addition to its other checklists. | typed |
update_checklist | Renames a checklist or moves it among the task's checklists (index 0 = top). | typed |
delete_checklist | Deletes a checklist with all its items. Needs confirm: true; without it the result is a preview. | typed |
add_checklist_items | Adds items at the end of a checklist. | typed |
update_checklist_item | Checks or unchecks a checklist item, or changes its text. | typed |
delete_checklist_item | Deletes one checklist item. A checklist keeps at least one item, so its last item only goes away with the whole checklist. Needs confirm: true; without it the result is a preview. | typed |
add_attachment | Attaches a link (url) or a file (contentBase64 + filename) to a task. Files follow the board owner's plan: 5 MB each and 100 MB per board on Free, 25 MB and 2 GB on Pro. Photos are optimized, as in th | typed |
rename_attachment | Renames an attachment; a file keeps its extension. | typed |
delete_attachment | Deletes an attachment from a task (and the task's cover, if it was the cover image). Needs confirm: true; without it the result is a preview. | typed |
list_my_tasks | Lists the user's tasks across every board, like the app's My tasks page: open cards assigned to the user plus dated cards on the user's own boards that nobody is assigned to, grouped as overdue, today | typed |
list_notifications | Lists the user's notifications (mentions, assignments, comments on watched cards, due-date digests), newest first, with the unread count. | typed |
mark_notifications_read | Marks notifications as read: one (notificationId, which also marks the others about the same card, as opening it in the app does), every one about a card (cardId), or all of them (all: true). | typed |
get_account | Reads the user's account and settings: name, email, language, time zone, notification preferences, plan with its limits and usage, upgrade prices, API tokens and connected apps (names and dates only; | typed |
update_account | Changes the user's settings: display name, language (en, es, fr), time zone (IANA, e.g. America/Argentina/Buenos_Aires; the daily digest goes out in the user's morning) and which notifications they ge | typed |
revoke_access | Revokes one of the user's API tokens (apiTokenId) or disconnects a connected app (appClientId), as listed in the account. Whatever used it stops working at once, including this connection if it is the | typed |
list_webhooks | Lists the account's webhooks and Slack channels: kind (slack or json), a shortened address, the board it listens to (null: every board the user owns, plus invoices and estimates), the event types it s | typed |
create_webhook | Adds a webhook: from then on, each chosen event of the user's boards is sent outside Decknote. kind "slack" posts a line to a Slack channel through a Slack incoming-webhook URL (https://hooks.slack.co | typed |
update_webhook | Changes one of the account's webhooks: the event types it sends, turns it off or on (enabled), or replaces its signing secret (rotateSecret: the new one comes back once, and the old one stops verifyin | typed |
delete_webhook | Deletes one of the account's webhooks: nothing more is sent to its address. Needs confirm: true; without it the result is a preview. | typed |
test_webhook | Sends a test to one of the account's webhooks now and returns how it went (ok, HTTP status, error): a sample of the first event type it sends, marked "test": true (a Slack channel gets a line saying i | typed |
export_data | Exports everything the user can read in Decknote as one JSON document (boards, lists, cards, checklists, comments, attachment metadata), the same export as Settings → Your data. Up to 5 per hour. | typed |
start_pro_checkout | Starts an upgrade to Decknote Pro (14-day free trial, then US$9/month or US$90/year) by creating a Stripe Checkout link where the user pays; this tool charges nothing. Without confirm: true it returns | typed |
open_billing_portal | Creates a link to Stripe's billing portal, where the user manages their Pro subscription: payment card, invoices, monthly or yearly billing, cancellation. Changes happen there, made by the user. | typed |
create_client | Adds a client. Projects are linked to a client in their settings; the client's currency and default hourly rate apply to their time. The free plan includes 2 active clients; Pro has no limit. | typed |
api_read | Reads from Decknote's HTTP API (reference: https://decknote.app/api-docs#mcp-http-api) as the signed-in user, with GET; it doesn't change anything. Covers what no dedicated tool returns, such as the c | typed |
api_create | Creates something through Decknote's HTTP API (reference: https://decknote.app/api-docs#mcp-http-api) as the signed-in user, with POST. Reachable: POST /api/v1/boards: a board: { title, template? }; P | typed |
show_board | Shows a board as an interactive kanban that updates live while the conversation is open: lists and cards with labels, due dates, checklist progress and assignees, where the user can drag cards between | typed |
get_board_live_url | Returns a short-lived address (2 minutes to connect) of a board's live event stream: a Server-Sent Events URL that announces every change to the board and who is viewing it. Used by the board view to | typed |
start_timer | Starts the user's time tracker on a project, optionally on one of its tasks. There is one timer per person: a timer already running is stopped and its time kept first (a timer stopped within 30 second | typed |
stop_timer | Stops the user's running timer and keeps the elapsed time as a time entry. A timer stopped within 30 seconds is dropped as an accidental click. Says so when no timer was running. | typed |
get_running_timer | Returns the user's running timer, if any: the project, the task, the note, when it started and how long it has run. | typed |
log_time | Adds hours by hand to a project, or to one of its tasks. The entry takes the project's hourly rate (or the client's) and is billable according to the task's setting, else the project's, unless billabl | typed |
list_time_entries | Lists the time entries of a project, newest first, with who logged each, the task, the day, the minutes and whether it is billable. The project owner reads everyone's entries, with their hourly rates | typed |
update_time_entry | Changes a finished time entry: its duration, day, note, whether it is billable, or the task it is on (null takes it off any task). A person edits their own entries and the project owner edits anyone's | typed |
delete_time_entry | Permanently deletes a time entry, or a running timer. A person deletes their own entries and the project owner deletes anyone's; time already billed to a client cannot be deleted. Needs confirm: true; | typed |
update_client | Changes a client's name, contact details, currency, default hourly rate or notes; null clears an optional field. A new rate applies to time logged from then on: entries already logged keep the rate th | typed |
archive_client | Archives a client: it leaves the active list and stops counting toward the plan's client limit. Its projects keep the link and all the time stays. Needs confirm: true; without it the result is a previ | typed |
restore_client | Brings an archived client back to the active list. The free plan's limit of 2 active clients applies. | typed |
get_project_settings | Reads a board's project settings: client, status (active, on hold, completed, cancelled), budget (none, hours or money), default hourly rate in cents, whether time is billable by default, and start an | typed |
update_project_settings | Turns a board into a project or changes its settings: client (one of the user's own), status, budget type with its hours or amount, default hourly rate, billable by default, start and due dates. null | typed |
get_project_summary | Summarizes a project: time tracked, billable time, the billable amount in cents, how much of the budget is used (ok, warning from 80%, over) and the hours of each person. The project owner reads all o | typed |
get_week_timesheet | Returns the user's own timesheet for one week, Monday to Sunday: a row per project and task with the minutes of each day, the totals per day and the week's total. | typed |
get_time_report | Adds up the time logged in a date range, grouped by project, client, person, task or day: minutes, billable minutes and the billable amount in cents (hours times the rate each entry was logged with; c | typed |
export_time_report | Exports the detail lines of a date range as CSV text (date, project, client, task, person, hours, billable, rate per hour), with the same filters and visibility as the time report. Cells that start wi | typed |
get_billing_profile | Reads the user's billing details that are copied onto every new invoice and estimate: business name, address, tax id, email, phone, currency, the invoice and estimate prefixes and next numbers, the de | typed |
delete_project_template | Permanently deletes a saved template of the user (projects already made from it are untouched; the starters cannot be deleted). Needs confirm: true; without it the result is a preview. | typed |
update_billing_profile | Sets or changes the user's billing details: business name (required the first time), address, tax id, email, phone, currency, prefixes and next numbers of invoices and estimates, default tax (percenta | typed |
list_expenses | Lists the expenses logged on a project (costs to bill back or to track), newest first, with the person, day, category, description, vendor, amount in cents, whether it is billable and whether it was a | typed |
create_expense | Logs an expense on a project: what was spent, the amount, the day, a category (travel, software, hardware, services, meals, other), the vendor, whether it can be billed to the client, and optionally a | typed |
update_expense | Changes an expense that is not yet on an invoice: description, amount, day, category, vendor, billable, markup (project owner only) or its task (null removes it). The person who logged it and the proj | typed |
delete_expense | Permanently deletes an expense that is not yet on an invoice. The person who logged it and the project owner can delete it. Needs confirm: true; without it the result is a preview of what would be los | typed |
add_expense_receipt | Attaches a receipt to an expense: a photo (JPG, PNG, WebP or GIF, optimized like task photos) or a PDF, sent base64-encoded with its filename. The person who logged the expense and the project owner c | typed |
delete_expense_receipt | Deletes a receipt of an expense for good. The person who logged the expense and the project owner can delete it. Needs confirm: true; without it the result is a preview. | typed |
list_pages | Lists a project's notes or discussions, pinned first and then the most recently touched (a reply counts), up to 200: title, a snippet, who started it, comment count, pinned and archived. Searches titl | typed |
list_invoices | Lists the user's invoices and estimates, newest first, 25 per page (up to 100): number, kind, status (draft, sent, paid, overdue, void, accepted, declined), client, project, dates, and total, paid and | typed |
get_invoice | Reads one invoice or estimate in full: status, dates, the sender and the client copied onto it, every line, tax, discount, totals, payments, balance, the public link (null if none), when it was sent, | typed |
get_invoice_pdf | Returns one invoice or estimate as a PDF file, base64-encoded (contentBase64), with its file name and size: the A4 sheet its client gets by mail and from the link, in English or Spanish (default: the | typed |
get_receivables_aging | Shows what clients still owe on sent invoices, by how late it is: not yet due, 1-30 days, 31-60 and 61 or more days past due, per currency and per client (the biggest debt first), in cents. | typed |
export_invoices_csv | Exports the matching invoices and estimates as CSV text for an accountant: number, type, status, dates, client, currency, subtotal, discount, tax, total, paid and balance. Same filters as the list. Ce | typed |
get_billing_report | A studio's numbers for a date range (default: the last 12 months): invoiced and collected by month, by client and what each client owes, expenses by project and category, and the profitability of each | typed |
create_invoice | Creates a draft invoice or estimate, with its lines if given, copying the user's billing details and the chosen client onto it. The draft is private: nothing is sent or published. It has no number unt | typed |
list_unbilled_work | Lists what a project could still bill: its finished billable time entries (person, task, day, minutes and the rate each will be priced at, in cents) and its billable expenses not yet on an invoice. On | typed |
get_workload | Plans the team's work: for each person, the time left on their open tasks with an estimate (the estimate minus the time tracked), placed in the week of each task's due date for the next six weeks, aga | typed |
preview_invoice_from_work | Shows the lines and totals an invoice made from a project's unbilled work would have, without creating anything or taking any hours: finished billable time and billable expenses, grouped per task (def | typed |
create_invoice_from_work | Creates a draft invoice from a project's unbilled work (same options as the preview): the finished billable hours and billable expenses become lines and are tied to the invoice, so they cannot be invo | typed |
update_invoice | Changes a document. A draft takes every field (client, dates, currency, tax, discount, notes, terms, who it is for, project and the whole list of lines, which replaces the current ones); once sent onl | typed |
send_invoice | Marks a draft as sent, gives it the next number and publishes its link: anyone who has the link can read the document (lines, amounts, the user's business details), and for an estimate answer it. Noth | typed |
get_invoice_email_draft | Shows the email that would go to the client for a draft or sent document: the address, the subject and the text, with the personal message and the language if given; a reminder reads differently for a | typed |
set_my_weekly_capacity | Sets how many hours a week the user can work, which the workload view compares their planned work with: 40, 37.5 or 37:30; 0 for someone who is away, at most 168. Only the user's own: there is no way | typed |
list_project_templates | Lists the templates a new project can start from: the starters that come with Decknote (website project, marketing campaign, monthly retainer) and the ones the user saved, each with its lists, number | typed |
set_timer_alert | Sets after how many hours a running timer sends the user a notification (and a push to their devices), once per timer: 0 turns it off; otherwise between 0.5 and 24 hours (the Time page offers 4, 8, 10 | typed |
email_invoice | Emails the document to the client from Decknote on the user's behalf (replies go to the user), with a link to it; a draft takes the next number, becomes sent and its link is published. One plain addre | typed |
regenerate_invoice_link | Replaces the public link of a document with a new one: the old link stops working at once for anyone who has it, and the new one lets anyone who holds it read the document. Not for a voided document. | typed |
revoke_invoice_link | Turns a document's public link off: the client can no longer open the document until a new link is made. The document itself is unchanged. Needs confirm: true; without it the result is a preview. | typed |
void_invoice | Voids a sent invoice or estimate: it cannot change any more, its number is kept, and the hours and expenses it had taken go back to the project's unbilled work. A draft is not voided (it is deleted). | typed |
delete_invoice_draft | Deletes a draft invoice or estimate for good. Only a draft: it was not sent, so no client saw it, and it has no number, so no gap is left in the numbering. The hours and expenses it had taken go back | typed |
record_invoice_payment | Records that the client paid, fully or in part, on a sent invoice: the amount, the day (default today, not in the future), the method (bank, card, cash, paypal, other) and a note. It records that the | typed |
remove_invoice_payment | Deletes a recorded payment from an invoice, as if it had not been written down; a paid invoice that is no longer covered goes back to sent. It undoes a note in the books; no money moves. Needs confirm | typed |
list_recurring_invoices | Lists the user's recurring invoices: for each, the client, the total of each invoice, how often (every N weeks, months or years), the next date, how many are left (null = no end), what happens to each | typed |
save_project_as_template | Saves a project's shape as a template: its lists, open tasks (title, estimate, billable, labels, checklists with the items unticked, due dates as days from the start), labels and billable default. Its | typed |
create_recurring_invoice | Pro. Makes an invoice repeat: a new invoice with the same client, lines, tax, notes and terms is made on each date (every N weeks, months or years from nextDate), until endAfter invoices are made or w | typed |
update_recurring_invoice | Changes a recurring invoice: how often, the next date (a new cadence counts from it), endAfter (null = no end), what happens to each new invoice, the days to pay, or pauses it (active false) and resum | typed |
delete_recurring_invoice | Deletes a recurring invoice: no more invoices are made from it. The invoices it already made stay as they are. Needs confirm: true; without it the result is a preview. | typed |
duplicate_invoice | Creates a new draft with the same client, lines, tax, notes and terms as an invoice or estimate, dated today and without a number until it is sent; no work, no payments. Counts toward the free plan's | typed |
convert_estimate_to_invoice | Turns an accepted estimate into a draft invoice with the same lines, once while that invoice stands (after the invoice is voided or its draft deleted, the estimate can be turned into a new one). Count | typed |
convert_estimate_to_project | Makes a project board from an accepted estimate that is not tied to a project yet: the estimate's client, its amount before tax (budget "money", the default), its hours ("hours") or no budget ("none") | typed |
record_estimate_answer | Records that the client accepted or declined a sent estimate (by phone or email), with the name of who answered. The estimate leaves the sent state; an accepted one can become an invoice. Needs confir | typed |
get_client_portal | Reads a project's client portal settings: whether it exists and is on, its link (anyone who has the link can read the page), what it shows (tasks, hours, documents), whether clients can comment, the w | typed |
create_project_from_template | Creates a new project from a starter or saved template: its lists, labels, tasks with estimates and checklists, and settings, with due dates shifted onto the start date (default today). The template i | typed |
update_client_portal | Turns a project's client portal on or off and sets what it shows: tasks, hours (hours only; rates and money are left out), the list of sent documents, whether clients may comment, a welcome text and t | typed |
regenerate_client_portal_link | Replaces the secret in a project's client portal link: the old link stops working at once, for anyone who has it, and the new link lets whoever holds it read the portal. The portal's settings, tasks a | typed |
set_task_visible_to_client | Shows a task on the project's client portal, or stops showing it. Visitors read the task's title, whether it is done, in progress or late, and its due date, and can comment on it; descriptions, files, | typed |
get_task_portal | Reads what the client portal means for one task: whether it is marked visible to the client and, for the project owner, whether the portal is on, the conversation with the client on that task (up to 2 | typed |
reply_to_client | Posts an answer from the team under a task on the client portal, shown to anyone who has the portal link under the studio name (not the user's own name) and marking the client's comments on that task | typed |
mark_client_comments_read | Marks the client's portal comments as read, and clears the bell notices about them: those of one task (cardId) or every one of the project (boardId). Give exactly one of the two. Only the project owne | typed |
delete_client_comment | Permanently removes one comment from a task's conversation on the client portal (spam, a mistake): the client's page stops showing it at once. Works on the client's comments and on the team's answers. | typed |
list_projects | Lists the projects the user can see (boards with project settings): client, status (active, on hold, completed, cancelled), dates, hours tracked, the budget and how much of it is used (ok, warning fro | typed |
create_project | Creates a new project: a board with the plain three-list layout and project settings (active), optionally for one of the user's clients. Counts against the free plan's board limit like any board. To t | typed |
rename_project_template | Changes the name and description of a saved template (also one that is damaged and cannot be used). The description is cleared when not given. | typed |
get_page | Reads one note or discussion in full: its title, its body as Markdown (up to 100,000 characters; bodyTruncated says it was cut), who started it, whether it is pinned or archived, its comments oldest f | typed |
create_page | Starts a note (shared writing any editor can change) or a discussion (its text belongs to its author and the owner; editors answer with comments) in a project. The body is Markdown; links must be http | typed |
update_page | Changes a page's title and/or body (Markdown, replacing the whole body). It needs the rev from when the page was read: if somebody saved in between, the save is refused with the reason and nothing is | typed |
set_page_pinned | Pins a page to the top of its list, or unpins it. Only the project owner; an archived page cannot be pinned. | typed |
set_page_archived | Archives a page (it leaves the list, becomes read-only and loses its pin) or restores it. Only the project owner. | typed |
delete_page | Permanently deletes a note or discussion with all its comments. Its author and the project owner can. Needs confirm: true; without it the result is a preview. | typed |
add_page_comment | Adds a comment to a note or discussion (plain text, up to 5000 characters); the page moves up its list. Not on an archived page. Needs the editor role on the project. | typed |
edit_page_comment | Changes the text of one of the user's own page comments. Not on an archived page. Needs the editor role on the project. | typed |
delete_page_comment | Permanently deletes a page comment. Its author and the project owner can. Needs confirm: true; without it the result is a preview. | typed |
list_project_files | Lists every file and link attached to a project's tasks, newest first (up to 200): name, type (image, pdf, document, sheet, archive, media, link, other), MIME type, size, the task and list it is on, a | typed |
list_team_rates | Lists the user's team (themselves, the people on their projects and whoever logged time on them) with each person's default hourly rate, what an hour of theirs costs the user, their weekly capacity an | typed |
set_team_rate | Sets what a person is billed at by default on the user's projects (hourlyRate) and what an hour of theirs costs the user (hourlyCost), per hour. They apply to hours logged from then on: each hour keep | typed |
get_member_rates | For a project the user owns: the project's and the client's rates and, for each person who can log time there (the owner and the editors), the rate set for them on this project, what a new hour of the | typed |
set_member_rate | Sets what one person is billed at on one project the user owns, over the project's, the client's and their default. null goes back to those. It applies to hours logged from then on. The person must be | typed |
reprice_time | A rate or a cost is frozen on each hour when it is logged, so one set today does not reach last month's hours. This gives the hours logged on or after `from` (not invoiced, not running, not on a close | typed |
get_profitability_report | What the hours were worth, what they cost and what is left, for a range of at most 400 days, by project (default), client, person or task (each task with its project; the hours of a project logged wit | typed |
get_utilization_report | For each person on the user's team: what they could work in a range of at most 400 days (their weekly capacity over Monday to Friday, less the user's holidays and their own time off), their hours on t | typed |
get_assignments_report | Who is doing what: every open task (not completed, not archived) of the projects the user owns, grouped by the person it is assigned to, plus a group for the tasks nobody is assigned to (userId null); | typed |
preview_time_import | Reads a CSV of hours (Toggl, Harvest, Clockify or any CSV with a date and a duration or start and end times) and says what importing it would do, without writing anything: the rows that can be importe | typed |
import_time_csv | Imports a CSV of hours: creates the clients and projects it names (when createClients is on), a task for each task name, and one time entry per row, logged as the user unless the file names a project | typed |
list_time_imports | Lists the user's time imports, newest first (the last 30): the source (toggl, harvest, clockify, generic), the file name, whether it is done or was undone, how many entries and how many minutes it bro | typed |
undo_time_import | Takes an import back: deletes its time entries and the clients, projects and tasks it created that nobody has used since (those that were used are kept, and the result counts them). Refused when some | typed |
create_sample_project | Creates a sample client, a sample project with a budget, six tasks with estimates and two weeks of hours, labelled as a sample in its name, so reports, the budget bar and the timesheet have something | typed |
delete_sample_project | Permanently deletes the sample project with everything on it (its tasks, hours and anything added to it since) and the sample client if nothing else uses it. The user's own projects and reports are un | typed |
list_holidays | Lists the holidays on the user's calendar, oldest first (up to 1,000): day, name and whether it falls on a weekend (a weekend holiday takes nothing from anyone's capacity). A holiday takes the whole w | typed |
add_holiday | Adds a holiday to the user's calendar: one per day, with a name of up to 80 characters. That day holds no work for anybody in the user's Workload, so every person's capacity for that week is one worki | typed |
remove_holiday | Removes a holiday from the user's calendar: that day counts as a working day again in everybody's capacity. Needs confirm: true; without it the result is a preview. A Pro feature. | typed |
list_time_off | Lists time off (vacation, sick leave, other), soonest first (up to 500): the user's own and, on Pro, that of the editors of the projects the user owns. Each has the person, the kind, the first and las | typed |
add_time_off | Records time off for the user or, on Pro, for an editor of a project the user owns: a vacation, sick leave or other, from a first day to a last day (a single day when no last day is given), for the wh | typed |
update_time_off | Changes the kind, the days, the minutes off each day or the note of a time off; what is not given stays as it was, and null minutes make it the whole working day again. A person changes their own (cha | typed |
remove_time_off | Deletes a time off (the user's own, or on Pro one of an editor of the user's projects): those days count as working days again in the Workload. Needs confirm: true; without it the result is a preview. | typed |
approve_time_off | Approves a time off an editor of a project the user owns asked for: from then on it lowers that person's capacity in the Workload, and the person gets a notification. A Pro feature (the team calendar) | typed |
reject_time_off | Rejects a time off an editor of a project the user owns asked for, or one approved before: it no longer lowers that person's capacity. The note is read by the person, who gets a notification. A Pro fe | typed |
get_time_rules | Reads the rules that close logged hours. Without boardId: the rules the user has set for the projects they own: lockedUntil (the last closed day: nobody, the owner included, can add, edit, move or del | typed |
set_time_rules | Sets the rules that close logged hours on all the projects the user owns, which change what every person on them can do: lockedUntil, a day (YYYY-MM-DD, up to today) closes every day on or before it f | typed |
get_timer_alert | Reads the user's alert for a timer left running: how many hours a timer may run before Decknote sends a notification (and a push to their devices), once per timer; 0 means off. The default is 8 hours. | typed |
list_timesheets | Lists the weeks of hours handed in for approval, newest week first (up to 100 of each): toReview, the weeks the people on the user's projects submitted to the user, and mine, the weeks the user submit | typed |
submit_timesheet | Hands in the user's week of hours (give any day of it; weeks run Monday to Sunday) for approval to each owner of the projects the user logged hours on that week, or only to ownerId. From then on the u | typed |
withdraw_timesheet | Takes back a week the user submitted that is still waiting for approval: its hours can be changed again and the week can be submitted again later. An approved week can only be reopened by the project | typed |
approve_timesheet | Approves a week of hours a person on the user's projects submitted for approval: its hours stay closed to that person (the user, as the project owner, can still change them) and the person gets a noti | typed |
reject_timesheet | Sends back a week of hours a person submitted to the user, or reopens one the user approved: its hours open again for that person, who can change them and submit the week again. The note goes to the p | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/app-decknote-decknote)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.