{"tools":[{"name":"describe_workspace","title":"Describe workspace","group":"Getting started","description":"Everything to know before writing: the spaces the person can open with their issue types (and which parents each allows), each team's statuses and way of working, labels, priorities, link kinds and the people work can be assigned to. Call it once at the start instead of guessing names.","inputSchema":{"properties":{"space_key":{"description":"Only this space (optional)","type":"string"}},"type":"object"},"annotations":{"title":"Describe workspace","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"my_work","title":"My work","group":"Getting started","description":"What the person should look at now, across every space they can see: their open work items (overdue, blocked, due within a week, in progress, in an active sprint, flagged per item), open support requests assigned to them, and unread mentions.","inputSchema":{"properties":{},"type":"object"},"annotations":{"title":"My work","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"whats_new","title":"What's new","group":"Getting started","description":"What changed since you last asked (the first time: the last 7 days): a summary per space and kind, then each change, oldest first, with who made it and which fields changed. Each call picks up where the last one stopped; when more is true, call again for the rest. Use it at the start of a session to catch up, then get_issue / get_doc_page / get_request for the details.","inputSchema":{"properties":{"limit":{"description":"At most this many changes (default 100, max 200)","type":"integer"},"peek":{"description":"Look without moving the saved position (optional)","type":"boolean"}},"type":"object"},"annotations":{"title":"What's new","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"list_changes","title":"List changes","group":"Getting started","description":"The change feed, oldest first: what was created, updated, commented on, archived, restored or deleted, with who did it, which fields changed and (work items, requests) the old and new values. Keep next_cursor and pass it as cursor to get only what changed since; has_more means there is more right away. Without cursor it starts at since, or 24 hours ago. A cursor works for 30 days.","inputSchema":{"properties":{"cursor":{"description":"next_cursor of the last call (optional)","type":"string"},"kinds":{"description":"Only these kinds: issue (work items), request (support), doc (documentation pages), artifact, release, group (sprints and kanban groups), milestone, space (optional)","items":{"type":"string"},"type":"array"},"limit":{"description":"At most this many rows (default 50, max 200)","type":"integer"},"since":{"description":"Start here when there is no cursor: YYYY-MM-DD or an RFC 3339 time, at most 30 days ago (optional)","type":"string"},"space_key":{"description":"Only this space; a team also holds the work items it does (optional)","type":"string"},"wait":{"description":"While nothing is new, wait up to this many seconds (at most 30) and answer as soon as something is (optional): to wait for a reply or a status change","type":"integer"}},"type":"object"},"annotations":{"title":"List changes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"search","title":"Search","group":"Getting started","description":"Search spaces, issues, documentation and support requests the person can see.","inputSchema":{"properties":{"query":{"description":"Words or an issue key","type":"string"}},"required":["query"],"type":"object"},"annotations":{"title":"Search","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"list_spaces","title":"List spaces","group":"Getting started","description":"List the product, team and support spaces the person can open.","inputSchema":{"properties":{},"type":"object"},"annotations":{"title":"List spaces","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"find_similar","title":"Find similar","group":"Getting started","description":"Find work items whose title is like a text, best match first: check for an existing item before creating one (a duplicate report, the same task).","inputSchema":{"properties":{"include_closed":{"description":"Also done and closed items (optional; default open only)","type":"boolean"},"limit":{"description":"At most this many (default 10, max 25)","type":"integer"},"space_key":{"description":"Only this product space (optional)","type":"string"},"text":{"description":"A title or a short description","type":"string"}},"required":["text"],"type":"object"},"annotations":{"title":"Find similar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"list_issues","title":"List issues","group":"Work items","description":"List work items with filters: of one product or team space, or without space_key of every product you can see. Newest change first unless sort says otherwise. Paged: pass next_offset back as offset.","inputSchema":{"properties":{"assignee":{"description":"\"me\", a person's name or email, or \"none\"","type":"string"},"due_after":{"description":"Due on or after YYYY-MM-DD","type":"string"},"due_before":{"description":"Due on or before YYYY-MM-DD","type":"string"},"fields":{"description":"Only these fields in each row, to keep the answer short (optional; key is always there): key, title, type, status, priority, points, assignees, labels, product, team, sprint_or_group, parent, start_date, due_date, updated_at","items":{"type":"string"},"type":"array"},"label":{"description":"Label name","type":"string"},"limit":{"description":"At most this many (default 50, max 200)","type":"integer"},"offset":{"description":"Skip this many (paging)","type":"integer"},"parent":{"description":"Only the children of this issue key","type":"string"},"priority":{"description":"urgent, high, medium, low or none; several with commas","type":"string"},"query":{"description":"Words in the title","type":"string"},"sort":{"description":"updated (default), due (soonest first, undated last) or priority (urgent first)","type":"string"},"space_key":{"description":"Product or team space key, e.g. UPM (optional; default every product)","type":"string"},"status":{"description":"todo, progress, done, closed, open (not done or closed), or a team's working status by name (e.g. In review)","type":"string"},"team":{"description":"Team space key (or none)","type":"string"},"type":{"description":"Issue type name, e.g. Bug","type":"string"},"updated_since":{"description":"Only what changed at or after this: YYYY-MM-DD or an RFC 3339 time (optional)","type":"string"}},"type":"object"},"annotations":{"title":"List issues","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"get_issue","title":"Get issue","group":"Work items","description":"Fetch one issue by key, e.g. UPM-142, with its parent, children and links (and branches, commits and pull requests when code hosting is connected); include adds its latest comments and history, so one call gives the whole picture.","inputSchema":{"properties":{"include":{"description":"Also: comments (the latest 10), history (the latest 20 changes: who changed what, and when) (optional)","items":{"type":"string"},"type":"array"},"key":{"description":"Issue key","type":"string"}},"required":["key"],"type":"object"},"annotations":{"title":"Get issue","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"list_links","title":"List links","group":"Work items","description":"List an issue's related items and dependencies (blocks, is blocked by, relates to, duplicates).","inputSchema":{"properties":{"issue":{"description":"Issue key or id","type":"string"}},"required":["issue"],"type":"object"},"annotations":{"title":"List links","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"create_issue","title":"Create issue","group":"Work items","description":"Create a work item in a product backlog, or without space_key an account-level one (a theme or initiative, keyed with the org key; needs Roadmap on). describe_workspace lists each level's types.","inputSchema":{"properties":{"assignees":{"description":"People by name or email, or \"me\"; on update this replaces the whole list","items":{"type":"string"},"type":"array"},"description":{"description":"Description: text with **bold**, *italic*, `code`, ### headings, - lists and [[file:\u003cid\u003e]] file cards","type":"string"},"due_date":{"description":"YYYY-MM-DD (empty clears it on update)","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"labels":{"description":"Labels; on update this replaces the whole list","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent issue key, e.g. UPM-12 (empty clears it on update)","type":"string"},"points":{"description":"Story points (null clears it on update)","type":"integer"},"priority":{"description":"low, medium, high or urgent (none clears it on update)","type":"string"},"scheme":{"description":"Account-level only: the scheme the type belongs to, when several have a type of that name (optional)","type":"string"},"space_key":{"description":"Product space key, e.g. UPM (leave out for account-level work)","type":"string"},"start_date":{"description":"YYYY-MM-DD (empty clears it on update)","type":"string"},"team":{"description":"Team space key that works on it (empty clears it on update)","type":"string"},"title":{"description":"Title","type":"string"},"type":{"description":"Type name, e.g. Bug, Story, Task, Sub-task (with a parent), or an account-level type such as Initiative","type":"string"}},"required":["title"],"type":"object"},"annotations":{"title":"Create issue","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on issues or account-level issues"]},{"name":"update_issue","title":"Update issue","group":"Work items","description":"Change fields of an existing issue. Only the fields you pass change; status has its own tool.","inputSchema":{"properties":{"assignees":{"description":"People by name or email, or \"me\"; on update this replaces the whole list","items":{"type":"string"},"type":"array"},"description":{"description":"Description: text with **bold**, *italic*, `code`, ### headings, - lists and [[file:\u003cid\u003e]] file cards","type":"string"},"due_date":{"description":"YYYY-MM-DD (empty clears it on update)","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"key":{"description":"Issue key, e.g. UPM-142","type":"string"},"labels":{"description":"Labels; on update this replaces the whole list","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent issue key, e.g. UPM-12 (empty clears it on update)","type":"string"},"points":{"description":"Story points (null clears it on update)","type":"integer"},"priority":{"description":"low, medium, high or urgent (none clears it on update)","type":"string"},"start_date":{"description":"YYYY-MM-DD (empty clears it on update)","type":"string"},"team":{"description":"Team space key that works on it (empty clears it on update)","type":"string"},"title":{"description":"Title","type":"string"},"type":{"description":"Issue type name, e.g. Story","type":"string"}},"required":["key"],"type":"object"},"annotations":{"title":"Update issue","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"needs":["Edit on issues or account-level issues"]},{"name":"update_issues","title":"Update issues","group":"Work items","description":"Change several work items in one call: each entry is like update_issue (only the fields it passes change). With dry_run: true nothing is saved, but every change runs with all its checks (hierarchy rules, permissions, WIP limits) and is rolled back, so the answer says what would happen. Entries are applied one by one: one that fails leaves the others.","inputSchema":{"properties":{"dry_run":{"description":"Check without saving (optional)","type":"boolean"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"updates":{"description":"At most 50 changes","items":{"properties":{"assignees":{"description":"People by name or email, or \"me\"; on update this replaces the whole list","items":{"type":"string"},"type":"array"},"description":{"description":"Description: text with **bold**, *italic*, `code`, ### headings, - lists and [[file:\u003cid\u003e]] file cards","type":"string"},"due_date":{"description":"YYYY-MM-DD (empty clears it on update)","type":"string"},"key":{"description":"Issue key, e.g. UPM-142","type":"string"},"labels":{"description":"Labels; on update this replaces the whole list","items":{"type":"string"},"type":"array"},"parent":{"description":"Parent issue key, e.g. UPM-12 (empty clears it on update)","type":"string"},"points":{"description":"Story points (null clears it on update)","type":"integer"},"priority":{"description":"low, medium, high or urgent (none clears it on update)","type":"string"},"start_date":{"description":"YYYY-MM-DD (empty clears it on update)","type":"string"},"team":{"description":"Team space key that works on it (empty clears it on update)","type":"string"},"title":{"description":"Title","type":"string"},"type":{"description":"Issue type name","type":"string"}},"required":["key"],"type":"object"},"type":"array"}},"required":["updates"],"type":"object"},"annotations":{"title":"Update issues","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"needs":["Edit on issues or account-level issues"]},{"name":"set_issue_status","title":"Set issue status","group":"Work items","description":"Change an issue's status. Statuses other than To do, Done and Closed belong to the issue's team (its board columns).","inputSchema":{"properties":{"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"key":{"description":"Issue key","type":"string"},"status":{"description":"todo, done, closed, or one of the team's working statuses by name (e.g. In review); progress = the team's first one","type":"string"}},"required":["key","status"],"type":"object"},"annotations":{"title":"Set issue status","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"needs":["Edit on issues or account-level issues"]},{"name":"start_work","title":"Start work","group":"Work items","description":"Pick up a work item: assign yourself (others stay), move it to In progress (or the working status you name) and get a branch name that links back to it (branches, commits and pull requests that mention the key show in its Development section). The item needs a team to be in progress: pass team when it has none.","inputSchema":{"properties":{"branch_prefix":{"description":"Prefix for the branch name, e.g. \"feature/\" (optional)","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"key":{"description":"Work item key, e.g. UPM-142","type":"string"},"status":{"description":"A working status of its team (optional; default its first)","type":"string"},"team":{"description":"Team space key, when the item has no team (optional)","type":"string"}},"required":["key"],"type":"object"},"annotations":{"title":"Start work","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on issues or account-level issues"]},{"name":"revert_changes","title":"Revert changes","group":"Work items","description":"Undo changes to a work item since a time, read from its history: by default only your own (through this client or the app). Each field goes back to its value before the first of those changes, but only if nobody else changed it since; those are listed as conflicts. Reverts title, status, priority, points, dates, labels, type, team, parent and assignees; descriptions, sprints, releases, links and files are listed as not reverted. With dry_run nothing is saved.","inputSchema":{"properties":{"by":{"description":"\"me\" (default) or \"anyone\"","type":"string"},"dry_run":{"description":"Check without saving (optional)","type":"boolean"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"key":{"description":"Work item key","type":"string"},"since":{"description":"RFC 3339 time: undo changes at or after it","type":"string"}},"required":["key","since"],"type":"object"},"annotations":{"title":"Revert changes","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on issues or account-level issues"]},{"name":"link_issues","title":"Link issues","group":"Work items","description":"Link two issues.","inputSchema":{"properties":{"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"issue":{"description":"Issue key","type":"string"},"kind":{"description":"relates, blocks, is_blocked_by, duplicates or is_duplicated_by (read as: issue \u003ckind\u003e other)","type":"string"},"other":{"description":"The other issue's key","type":"string"}},"required":["issue","other","kind"],"type":"object"},"annotations":{"title":"Link issues","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":["Edit on issues or account-level issues"]},{"name":"unlink_issues","title":"Unlink issues","group":"Work items","description":"Remove the link between two issues.","inputSchema":{"properties":{"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"issue":{"description":"Issue key","type":"string"},"other":{"description":"The other issue's key","type":"string"}},"required":["issue","other"],"type":"object"},"annotations":{"title":"Unlink issues","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"needs":["Edit on issues or account-level issues"]},{"name":"list_comments","title":"List comments","group":"Comments and files","description":"List an issue's comments, oldest first.","inputSchema":{"properties":{"issue":{"description":"Issue key or id","type":"string"},"since":{"description":"Only comments written at or after this: YYYY-MM-DD or an RFC 3339 time (optional)","type":"string"}},"required":["issue"],"type":"object"},"annotations":{"title":"List comments","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"add_comment","title":"Add comment","group":"Comments and files","description":"Comment on an issue. Supports **bold**, *italic*, `code` and [[user:Name]] mentions.","inputSchema":{"properties":{"body":{"description":"Comment text","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"issue":{"description":"Issue key or id","type":"string"}},"required":["issue","body"],"type":"object"},"annotations":{"title":"Add comment","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on comments \u0026 attachments"]},{"name":"list_attachments","title":"List attachments","group":"Comments and files","description":"List the files attached to an issue.","inputSchema":{"properties":{"issue":{"description":"Issue key or id","type":"string"}},"required":["issue"],"type":"object"},"annotations":{"title":"List attachments","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"get_attachment","title":"Get attachment","group":"Comments and files","description":"Fetch an issue's attached file: images come back as images, text as text, other files (PDF, …) as an embedded file up to 5 MB.","inputSchema":{"properties":{"id":{"description":"Attachment id","type":"string"}},"required":["id"],"type":"object"},"annotations":{"title":"Get attachment","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"attach_file","title":"Attach file","group":"Comments and files","description":"Attach a file to an issue (up to about 4 MB through MCP). Put [[file:\u003cid\u003e]] in the description to place it as a card; otherwise it is listed at the end.","inputSchema":{"properties":{"content_base64":{"description":"The file's bytes, base64-encoded","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"issue":{"description":"Issue key or id","type":"string"},"name":{"description":"File name with extension, e.g. mockup.png","type":"string"},"text":{"description":"Or, for a text file, its text","type":"string"}},"required":["issue","name"],"type":"object"},"annotations":{"title":"Attach file","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on comments \u0026 attachments"]},{"name":"list_sprints","title":"List sprints","group":"Sprints","description":"List a team's sprints (or kanban groups) with their dates, status and how many of their work items are done. Use list_issues with the team's key for the items.","inputSchema":{"properties":{"space_key":{"description":"Team space key","type":"string"},"status":{"description":"planned, active, closed, or all (default)","type":"string"}},"required":["space_key"],"type":"object"},"annotations":{"title":"List sprints","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"plan_sprint","title":"Plan sprint","group":"Sprints","description":"Add the team's next sprint. Without dates it starts three days after the latest sprint and runs twelve days.","inputSchema":{"properties":{"end_date":{"description":"YYYY-MM-DD (optional)","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"name":{"description":"Name (optional; default Sprint N)","type":"string"},"space_key":{"description":"Team space key","type":"string"},"start_date":{"description":"YYYY-MM-DD (optional)","type":"string"}},"required":["space_key"],"type":"object"},"annotations":{"title":"Plan sprint","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on sprints"]},{"name":"move_to_sprint","title":"Move to sprint","group":"Sprints","description":"Move work items into one of a team's sprints or kanban groups, or back to its queue, at the end in the order given. Sub-items follow their parent.","inputSchema":{"properties":{"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"issues":{"description":"Work item keys (at most 50)","items":{"type":"string"},"type":"array"},"space_key":{"description":"Team space key","type":"string"},"sprint":{"description":"Sprint or group name (or id), or \"queue\" for the team's queue","type":"string"}},"required":["space_key","issues","sprint"],"type":"object"},"annotations":{"title":"Move to sprint","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"needs":["Edit on sprints"]},{"name":"start_sprint","title":"Start sprint","group":"Sprints","description":"Start a planned sprint (a team has one active sprint at a time).","inputSchema":{"properties":{"end_date":{"description":"YYYY-MM-DD (optional; default its planned end)","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"space_key":{"description":"Team space key","type":"string"},"sprint":{"description":"Sprint name or id (optional; default the next planned one)","type":"string"},"start_date":{"description":"YYYY-MM-DD (optional; default its planned start)","type":"string"}},"required":["space_key"],"type":"object"},"annotations":{"title":"Start sprint","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on sprints"]},{"name":"complete_sprint","title":"Complete sprint","group":"Sprints","description":"Complete the team's active sprint. Unfinished items move to the next sprint (created when there is none) or back to the queue as To do.","inputSchema":{"properties":{"end_date":{"description":"YYYY-MM-DD the sprint ended (optional; default its planned end); a new next sprint follows it","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"note":{"description":"Retrospective note (optional)","type":"string"},"space_key":{"description":"Team space key","type":"string"},"start_date":{"description":"YYYY-MM-DD the sprint started (optional; default its planned start)","type":"string"},"unfinished":{"description":"next or queue","type":"string"}},"required":["space_key","unfinished"],"type":"object"},"annotations":{"title":"Complete sprint","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on sprints"]},{"name":"list_releases","title":"List releases","group":"Releases and roadmap","description":"List a product's releases: upcoming ones (soonest first) and released ones, with their work items.","inputSchema":{"properties":{"space_key":{"description":"Product space key","type":"string"},"status":{"description":"upcoming (planned or in progress), released, or all (default)","type":"string"}},"required":["space_key"],"type":"object"},"annotations":{"title":"List releases","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"create_release","title":"Create release","group":"Releases and roadmap","description":"Add a release to a product, optionally with its work items (an item is in at most one open release).","inputSchema":{"properties":{"description":{"description":"Release notes; inline **bold**, *italic*, `code` and [links](https://…) (optional)","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"issues":{"description":"Work item keys of this product (optional)","items":{"type":"string"},"type":"array"},"name":{"description":"Name, e.g. 2.4 (at most 40 characters)","type":"string"},"space_key":{"description":"Product space key","type":"string"},"status":{"description":"planned (default) or progress","type":"string"},"target_date":{"description":"YYYY-MM-DD (optional)","type":"string"}},"required":["space_key","name"],"type":"object"},"annotations":{"title":"Create release","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on issues"]},{"name":"update_release","title":"Update release","group":"Releases and roadmap","description":"Change a release that isn't shipped yet: only the fields you pass change; add_issues and remove_issues change its work items.","inputSchema":{"properties":{"add_issues":{"description":"Work item keys to add (optional)","items":{"type":"string"},"type":"array"},"description":{"description":"Release notes (optional)","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"name":{"description":"New name (optional)","type":"string"},"release":{"description":"Release name or id","type":"string"},"remove_issues":{"description":"Work item keys to take out (optional)","items":{"type":"string"},"type":"array"},"space_key":{"description":"Product space key","type":"string"},"status":{"description":"planned or progress (optional)","type":"string"},"target_date":{"description":"YYYY-MM-DD, or empty to clear (optional)","type":"string"}},"required":["space_key","release"],"type":"object"},"annotations":{"title":"Update release","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"needs":["Edit on issues"]},{"name":"ship_release","title":"Ship release","group":"Releases and roadmap","description":"Mark a release as released (every one of its work items must be done or closed), or with undo: true, back to in progress.","inputSchema":{"properties":{"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"release":{"description":"Release name or id","type":"string"},"space_key":{"description":"Product space key","type":"string"},"undo":{"description":"Un-release instead (optional)","type":"boolean"}},"required":["space_key","release"],"type":"object"},"annotations":{"title":"Ship release","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on issues"]},{"name":"list_milestones","title":"List milestones","group":"Releases and roadmap","description":"List roadmap milestones: the workspace roadmap's, or a product or team space's.","inputSchema":{"properties":{"space_key":{"description":"Product or team space key (optional; default the workspace roadmap)","type":"string"}},"type":"object"},"annotations":{"title":"List milestones","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":["Roadmap on, view on the roadmap"]},{"name":"create_milestone","title":"Create milestone","group":"Releases and roadmap","description":"Add a milestone to the workspace roadmap or a space's.","inputSchema":{"properties":{"color":{"description":"#rrggbb (optional)","type":"string"},"date":{"description":"YYYY-MM-DD","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"name":{"description":"Name (at most 80 characters)","type":"string"},"space_key":{"description":"Product or team space key (optional; default the workspace roadmap)","type":"string"}},"required":["name","date"],"type":"object"},"annotations":{"title":"Create milestone","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["Roadmap on, view on the roadmap","Edit on the roadmap"]},{"name":"update_milestone","title":"Update milestone","group":"Releases and roadmap","description":"Change a milestone: only the fields you pass change.","inputSchema":{"properties":{"color":{"description":"#rrggbb, or empty to clear (optional)","type":"string"},"date":{"description":"YYYY-MM-DD (optional)","type":"string"},"id":{"description":"Milestone id (from list_milestones)","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"name":{"description":"New name (optional)","type":"string"}},"required":["id"],"type":"object"},"annotations":{"title":"Update milestone","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"needs":["Roadmap on, view on the roadmap","Edit on the roadmap"]},{"name":"list_requests","title":"List requests","group":"Support","description":"List the support requests of a support space (or of the product it serves), last changed first, with filters. Paged: pass next_offset back as offset.","inputSchema":{"properties":{"assignee":{"description":"\"me\", a person's name or email, or \"none\"","type":"string"},"fields":{"description":"Only these fields in each row, to keep the answer short (optional; key is always there): key, subject, status, priority, requester, assignees, product, team, line, issues, comments, created_at, updated_at","items":{"type":"string"},"type":"array"},"limit":{"description":"At most this many (default 50, max 200)","type":"integer"},"offset":{"description":"Skip this many (paging)","type":"integer"},"priority":{"description":"low, medium, high or urgent","type":"string"},"query":{"description":"Words in the subject or the requester's email","type":"string"},"space_key":{"description":"Support space key, or the key of a product with a service desk","type":"string"},"status":{"description":"open (not resolved or cancelled), closed, or one of open, progress, waiting, resolved, cancelled","type":"string"},"updated_since":{"description":"Only what changed at or after this: YYYY-MM-DD or an RFC 3339 time (optional)","type":"string"}},"required":["space_key"],"type":"object"},"annotations":{"title":"List requests","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":["Support on, view on tickets"]},{"name":"get_request","title":"Get request","group":"Support","description":"Fetch one support request by key, e.g. SUP-7: its fields, the conversation (replies to the requester, internal notes and the customer's messages) and the linked work items.","inputSchema":{"properties":{"key":{"description":"Request key","type":"string"}},"required":["key"],"type":"object"},"annotations":{"title":"Get request","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":["Support on, view on tickets"]},{"name":"reply_request","title":"Reply request","group":"Support","description":"Answer a support request. A reply is emailed to the requester (only write what they may read); internal: true adds a note only the team sees.","inputSchema":{"properties":{"body":{"description":"The text","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"internal":{"description":"An internal note instead of a reply (optional; default false)","type":"boolean"},"key":{"description":"Request key, e.g. SUP-7","type":"string"}},"required":["key","body"],"type":"object"},"annotations":{"title":"Reply request","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["Support on, view on tickets","Edit on tickets"]},{"name":"update_request","title":"Update request","group":"Support","description":"Change a support request's status, priority, assignees, team line or product. Only the fields you pass change.","inputSchema":{"properties":{"assignees":{"description":"People by name or email, or \"me\"; replaces the whole list","items":{"type":"string"},"type":"array"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"key":{"description":"Request key","type":"string"},"priority":{"description":"low, medium, high or urgent","type":"string"},"product":{"description":"Product space key it is about (empty clears it)","type":"string"},"status":{"description":"open, progress, waiting (on the customer; pauses the resolution target), resolved or cancelled","type":"string"},"team":{"description":"Team space key of the line handling it (empty clears it)","type":"string"}},"required":["key"],"type":"object"},"annotations":{"title":"Update request","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"needs":["Support on, view on tickets","Edit on tickets"]},{"name":"create_issue_from_request","title":"Create issue from request","group":"Support","description":"File a bug in the request's product backlog from a support request (subject, description and priority copied) and link the two. The request needs a product (set it with update_request).","inputSchema":{"properties":{"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"key":{"description":"Request key","type":"string"}},"required":["key"],"type":"object"},"annotations":{"title":"Create issue from request","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["Support on, view on tickets","Edit on tickets"]},{"name":"link_request_issue","title":"Link request issue","group":"Support","description":"Link a work item to a support request, or unlink it.","inputSchema":{"properties":{"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"issue":{"description":"Work item key","type":"string"},"key":{"description":"Request key","type":"string"},"unlink":{"description":"Remove the link instead (optional)","type":"boolean"}},"required":["key","issue"],"type":"object"},"annotations":{"title":"Link request issue","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":["Support on, view on tickets","Edit on tickets"]},{"name":"list_doc_pages","title":"List doc pages","group":"Documentation","description":"List documentation pages of a space, or of the workspace when space_key is empty, in tree order. Paged: pass next_offset back as offset.","inputSchema":{"properties":{"limit":{"description":"At most this many pages (default 50, max 200)","type":"integer"},"offset":{"description":"Skip this many (paging)","type":"integer"},"space_key":{"description":"Space key (optional)","type":"string"},"updated_since":{"description":"Only what changed at or after this: YYYY-MM-DD or an RFC 3339 time (optional)","type":"string"}},"type":"object"},"annotations":{"title":"List doc pages","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":["Documentation on, view on documentation"]},{"name":"get_doc_page","title":"Get doc page","group":"Documentation","description":"Fetch a documentation page with its content and its revision (the newest version number in its history). With since_revision, only what changed since that version: hunks of blocks removed and added, at their place in the page as it is now.","inputSchema":{"properties":{"id":{"description":"Page id","type":"string"},"since_revision":{"description":"A revision you read before (optional)","type":"integer"}},"required":["id"],"type":"object"},"annotations":{"title":"Get doc page","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":["Documentation on, view on documentation"]},{"name":"create_doc_page","title":"Create doc page","group":"Documentation","description":"Create a documentation page in a space's docs (or the workspace's): under a parent page, else at the end of the first section.","inputSchema":{"properties":{"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"parent_id":{"description":"Parent page id (optional)","type":"string"},"space_key":{"description":"Space key (optional)","type":"string"},"text":{"description":"Markdown-like text: # / ## / ### headings, - bullets, 1. numbered items, \u003e quotes, ``` code fences, --- dividers; blank lines separate paragraphs; inline **bold**, *italic*, `code` and [links](https://…)","type":"string"},"title":{"description":"Title","type":"string"}},"required":["title"],"type":"object"},"annotations":{"title":"Create doc page","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["Documentation on, view on documentation","Edit on documentation"]},{"name":"update_doc_page","title":"Update doc page","group":"Documentation","description":"Change an existing documentation page. Pass text (replaces the content) or blocks (the blocks array as get_doc_page returns it, edited), and/or a new title. Send base_version (the page's content_version) so a newer edit isn't overwritten.","inputSchema":{"properties":{"base_version":{"description":"The content_version you read (optional)","type":"integer"},"blocks":{"description":"The full content as blocks (optional; instead of text)","items":{"type":"object"},"type":"array"},"id":{"description":"Page id","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"text":{"description":"Markdown-like text: # / ## / ### headings, - bullets, 1. numbered items, \u003e quotes, ``` code fences, --- dividers; blank lines separate paragraphs; inline **bold**, *italic*, `code` and [links](https://…)","type":"string"},"title":{"description":"New title (optional)","type":"string"}},"required":["id"],"type":"object"},"annotations":{"title":"Update doc page","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"needs":["Documentation on, view on documentation","Edit on documentation"]},{"name":"patch_doc_page","title":"Patch doc page","group":"Documentation","description":"Edit part of a documentation page by its block ids (from get_doc_page) instead of sending the whole page: replace, delete or insert blocks, applied in order. Blocks you don't touch keep their ids and their comments; a block replaced by one block keeps its id. Send base_version so the ids are the ones you read.","inputSchema":{"properties":{"base_version":{"description":"The content_version you read (optional, recommended)","type":"integer"},"id":{"description":"Page id","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"ops":{"description":"At most 100 edits","items":{"properties":{"after":{"description":"insert: the id of the block to insert after, \"start\" or \"end\"","type":"string"},"block":{"description":"replace / delete: the id of a block as get_doc_page returns it","type":"string"},"blocks":{"description":"replace / insert: the new content as blocks (instead of text)","items":{"type":"object"},"type":"array"},"op":{"description":"replace, delete or insert","type":"string"},"text":{"description":"replace / insert: the new content as Markdown-like text: # / ## / ### headings, - bullets, 1. numbered items, \u003e quotes, ``` code fences, --- dividers; blank lines separate paragraphs; inline **bold**, *italic*, `code` and [links](https://…)","type":"string"}},"required":["op"],"type":"object"},"type":"array"},"title":{"description":"New title (optional)","type":"string"}},"required":["id","ops"],"type":"object"},"annotations":{"title":"Patch doc page","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"needs":["Documentation on, view on documentation","Edit on documentation"]},{"name":"list_artifacts","title":"List artifacts","group":"Artifacts","description":"List the artifacts (HTML pages such as UI mock-ups) the person can open, last updated first. Paged: pass next_offset back as offset.","inputSchema":{"properties":{"limit":{"description":"At most this many (default 50, max 200)","type":"integer"},"offset":{"description":"Skip this many (paging)","type":"integer"},"updated_since":{"description":"Only what changed at or after this: YYYY-MM-DD or an RFC 3339 time (optional)","type":"string"}},"type":"object"},"annotations":{"title":"List artifacts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":["AI on, view on the Assistant"]},{"name":"get_artifact","title":"Get artifact","group":"Artifacts","description":"Fetch an artifact: the HTML of its latest version (or of the version asked for) and, for a version with files, their list with the version each last changed in; with path, that one file instead (text, or base64 for binary files). Every version holds all of the artifact's files; history lists each version, newest first, with its summary and the files it added, changed or removed.","inputSchema":{"properties":{"history":{"description":"Also list every version with the files it changed (optional)","type":"boolean"},"id":{"description":"Artifact id","type":"string"},"path":{"description":"A file of the version to fetch (optional)","type":"string"},"version":{"description":"Version number (optional; default the latest)","type":"integer"}},"required":["id"],"type":"object"},"annotations":{"title":"Get artifact","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":["AI on, view on the Assistant"]},{"name":"create_artifact","title":"Create artifact","group":"Artifacts","description":"Publish a finished HTML page (e.g. a UI mock-up) as a new private artifact of the person's. Pass a single page as html, or a multi-file project (what you build: index.html with its stylesheets, scripts, images, fonts and other pages) as files, with paths as the pages reference them (relative, or from the root: /assets/app.js); paths built at run time from the root don't resolve. It is shown in a sandbox that loads only the artifact's own files: nothing from other sites (no CDNs, Google Fonts or remote images), so include every file a page loads (a design tool's runtime script too). No cookies or storage outside the page. A page is at most 2 MB, any other file 10 MB, at most 300 files. Returns its id, path and warnings about anything that won't load.","inputSchema":{"properties":{"entry":{"description":"The page shown first, among files (optional: index.html, or the only page)","type":"string"},"files":{"description":"The project's files, the page(s) included","items":{"properties":{"content_base64":{"description":"Or a binary file's bytes, base64-encoded (PNG, JPEG, fonts)","type":"string"},"path":{"description":"Path as the pages reference it, e.g. index.html, css/app.css, img/logo.svg","type":"string"},"text":{"description":"A text file's content (HTML, CSS, JS, SVG, JSON, …)","type":"string"}},"required":["path"],"type":"object"},"type":"array"},"html":{"description":"A single page: the complete HTML document, starting with \u003c!doctype html\u003e (or the page at entry, with files)","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"note":{"description":"One line on what it shows (optional)","type":"string"},"title":{"description":"Title (optional; else the page's \u003ctitle\u003e)","type":"string"}},"type":"object"},"annotations":{"title":"Create artifact","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["AI on, view on the Assistant","Edit on the Assistant"]},{"name":"update_artifact","title":"Update artifact","group":"Artifacts","description":"Publish a new version of an artifact the person owns. With html alone, the page changes and the latest version's other files stay; with files, they are the new version's files (keep_files: also keep the latest version's files you don't pass, to send only what changed). Pass a single page as html, or a multi-file project (what you build: index.html with its stylesheets, scripts, images, fonts and other pages) as files, with paths as the pages reference them (relative, or from the root: /assets/app.js); paths built at run time from the root don't resolve. It is shown in a sandbox that loads only the artifact's own files: nothing from other sites (no CDNs, Google Fonts or remote images), so include every file a page loads (a design tool's runtime script too). No cookies or storage outside the page. A page is at most 2 MB, any other file 10 MB, at most 300 files. Returns its id, path and warnings about anything that won't load.","inputSchema":{"properties":{"entry":{"description":"The page shown first, among files (optional: index.html, or the only page)","type":"string"},"files":{"description":"The project's files, the page(s) included","items":{"properties":{"content_base64":{"description":"Or a binary file's bytes, base64-encoded (PNG, JPEG, fonts)","type":"string"},"path":{"description":"Path as the pages reference it, e.g. index.html, css/app.css, img/logo.svg","type":"string"},"text":{"description":"A text file's content (HTML, CSS, JS, SVG, JSON, …)","type":"string"}},"required":["path"],"type":"object"},"type":"array"},"html":{"description":"A single page: the complete HTML document, starting with \u003c!doctype html\u003e (or the page at entry, with files)","type":"string"},"id":{"description":"Artifact id","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"keep_files":{"description":"Keep the latest version's files that files doesn't replace (optional)","type":"boolean"},"note":{"description":"One line on what changed (optional)","type":"string"},"title":{"description":"New title (optional)","type":"string"}},"required":["id"],"type":"object"},"annotations":{"title":"Update artifact","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["AI on, view on the Assistant","Edit on the Assistant"]},{"name":"restore_artifact_version","title":"Restore artifact version","group":"Artifacts","description":"Make an older version of an artifact the person owns the newest again: a new version with all of that version's files, noted in its chat. The versions after it stay.","inputSchema":{"properties":{"id":{"description":"Artifact id","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"version":{"description":"The version to restore","type":"integer"}},"required":["id","version"],"type":"object"},"annotations":{"title":"Restore artifact version","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["AI on, view on the Assistant","Edit on the Assistant"]},{"name":"create_space","title":"Create space","group":"Spaces and notifications","description":"Create a product space (a backlog with issue types), a team space (sprints or a board) or a support space (a ticket desk with a help centre; needs the Support feature). You become its admin.","inputSchema":{"properties":{"description":{"description":"One line on what it is for (optional)","type":"string"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"kind":{"description":"product, team or support","type":"string"},"name":{"description":"Name; the key is made from it","type":"string"}},"required":["kind","name"],"type":"object"},"annotations":{"title":"Create space","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"needs":["Edit on spaces"]},{"name":"list_notifications","title":"List notifications","group":"Spaces and notifications","description":"The person's notifications (mentions, comments on their work, assignments, sprint starts, escalations, due dates, service levels), newest first.","inputSchema":{"properties":{"limit":{"description":"At most this many (default 20, max 100)","type":"integer"},"unread_only":{"description":"Only unread ones (optional; default true)","type":"boolean"}},"type":"object"},"annotations":{"title":"List notifications","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]},{"name":"mark_notifications_read","title":"Mark notifications read","group":"Spaces and notifications","description":"Mark notifications read: the ids given, or all of them.","inputSchema":{"properties":{"all":{"description":"Mark every notification read (optional)","type":"boolean"},"idempotency_key":{"description":"Any unique string for this change (optional). Retrying with the same key returns the first call's result instead of doing it again; keys last a day.","type":"string"},"ids":{"description":"Notification ids (optional)","items":{"type":"string"},"type":"array"}},"type":"object"},"annotations":{"title":"Mark notifications read","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"needs":[]}],"resourceTemplates":[{"uriTemplate":"backlog://issue/{key}","name":"Work item","description":"A work item with its parent, children, links, latest comments and history (as get_issue).","mimeType":"application/json"},{"uriTemplate":"backlog://space/{key}","name":"Space","description":"A space with its issue types or statuses (as describe_workspace for one space).","mimeType":"application/json"},{"uriTemplate":"backlog://doc/{id}","name":"Documentation page","description":"A documentation page with its content (as get_doc_page).","mimeType":"application/json"},{"uriTemplate":"backlog://request/{key}","name":"Support request","description":"A support request with its conversation and linked work items (as get_request).","mimeType":"application/json"}],"prompts":[{"name":"catch_up","description":"What changed since you last looked, and what needs you.","arguments":[]},{"name":"standup","description":"Your stand-up: what you did, what's next, what blocks you.","arguments":[]},{"name":"file_bug","description":"Turn a description into a work item, after checking it isn't already known.","arguments":[{"name":"description","description":"What went wrong","required":true},{"name":"space_key","description":"Product space key (optional)","required":false}]},{"name":"triage_support","description":"Go through a support queue: priorities, owners and linked work.","arguments":[{"name":"space_key","description":"Support space key","required":true}]},{"name":"plan_sprint","description":"Propose the next sprint of a team from its queue.","arguments":[{"name":"space_key","description":"Team space key","required":true}]},{"name":"release_notes","description":"Draft release notes from a release's work items.","arguments":[{"name":"space_key","description":"Product space key","required":true},{"name":"release","description":"Release name (optional; default the next upcoming one)","required":false}]}],"groups":["Getting started","Work items","Comments and files","Sprints","Releases and roadmap","Support","Documentation","Artifacts","Spaces and notifications"]}