Kaiku
Qué hace este MCP
Manages team issues, comments, attachments, projects, wiki pages, and related development workflows.
Herramientas
Esquema de entrada
{'type': 'object', 'required': ['key', 'filename'], 'properties': {'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}, 'text': {'type': ['string', 'null'], 'default': None, 'description': "The file's content as text, stored as UTF-8 — for a log, CSV or Markdown file you are writing here. Alternative to 'contentBase64'; passing both is refused."}, 'filename': {'type': 'string', 'description': "File name to store, e.g. 'report.pdf'. Any directory part is dropped."}, 'mimeType': {'type': ['string', 'null'], 'default': None, 'description': "Content type to record for the listing, e.g. 'text/csv'. Ignored when the bytes identify themselves (a PNG is a PNG whatever you call it), and never used to serve the file."}, 'contentBase64': {'type': ['string', 'null'], 'default': None, 'description': "The file's bytes, base64-encoded (a 'data:…;base64,…' URL is accepted and unwrapped). Use 'text' instead when the file is text."}}}
Esquema de entrada
{'type': 'object', 'required': ['key', 'body'], 'properties': {'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}, 'body': {'type': 'string', 'description': 'Comment body. Markdown is kept as written, and carries $…$ / $$…$$ LaTeX formulas and [~username] mentions (the username, which list_users hands you ready-made — never the display name).'}, 'replyTo': {'type': ['integer', 'null'], 'default': None, 'description': 'The comment this one answers, as returned by get_comments — on the same issue and not deleted.'}}}
Esquema de entrada
{'type': 'object', 'required': ['filename'], 'properties': {'text': {'type': ['string', 'null'], 'default': None, 'description': "The file's content as text, stored as UTF-8 — for a log, CSV or Markdown file you are writing here. Alternative to 'contentBase64'; passing both is refused."}, 'title': {'type': ['string', 'null'], 'default': None, 'description': 'Exact page title, when identifying the page by title.'}, 'pageId': {'type': ['integer', 'null'], 'default': None, 'description': 'Page id (as returned by search_wiki).'}, 'comment': {'type': ['string', 'null'], 'default': None, 'description': "Short note about this upload, shown in the page's attachment list."}, 'filename': {'type': 'string', 'description': "File name to store, e.g. 'diagram.png'. Any directory part is dropped."}, 'mimeType': {'type': ['string', 'null'], 'default': None, 'description': "Content type to record for the listing, e.g. 'text/csv'. Ignored when the bytes identify themselves, and never used to serve the file."}, 'spaceKey': {'type': ['string', 'null'], 'default': None, 'description': 'Space key, when identifying the page by title.'}, 'contentBase64': {'type': ['string', 'null'], 'default': None, 'description': "The file's bytes, base64-encoded (a 'data:…;base64,…' URL is accepted and unwrapped). Use 'text' instead when the file is text."}}}
Esquema de entrada
{'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'string', 'description': 'Comment body as Markdown, which also carries $…$ / $$…$$ LaTeX formulas.'}, 'title': {'type': ['string', 'null'], 'default': None, 'description': 'Exact page title, when identifying the page by title.'}, 'pageId': {'type': ['integer', 'null'], 'default': None, 'description': 'Page id (as returned by search_wiki).'}, 'replyTo': {'type': ['integer', 'null'], 'default': None, 'description': 'The comment this one answers, as returned by get_wiki_page.'}, 'spaceKey': {'type': ['string', 'null'], 'default': None, 'description': 'Space key, when identifying the page by title.'}}}
Esquema de entrada
{'type': 'object', 'properties': {}}
Esquema de entrada
{'type': 'object', 'properties': {'weeksAgo': {'type': 'integer', 'default': 0, 'description': '0 is the last full week, 1 the one before it.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'to': {'type': ['string', 'null'], 'default': None, 'description': "End of the period, as YYYY-MM-DD, included. Use with 'from'."}, 'days': {'type': ['integer', 'null'], 'default': None, 'description': "How many days back from today. Defaults to 90, at most 730. Ignored when 'from' and 'to' are given."}, 'from': {'type': ['string', 'null'], 'default': None, 'description': "Start of the period, as YYYY-MM-DD. Use with 'to'."}}}
Esquema de entrada
{'type': 'object', 'properties': {'slug': {'type': ['string', 'null'], 'default': None, 'description': 'Only invoices of the company at this address.'}, 'limit': {'type': 'integer', 'default': 50, 'description': 'How many rows, newest first. Default 50, at most 100.'}, 'status': {'type': ['string', 'null'], 'default': None, 'description': "Only invoices in this state, e.g. 'open', 'paid', 'void'."}}}
Esquema de entrada
{'type': 'object', 'properties': {'weeksAgo': {'type': 'integer', 'default': 0, 'description': '0 is the last full week, 1 the one before it.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 30, 'description': 'Window for model spend, in days. Default 30; 0 means all time.'}}}
Esquema de entrada
{'type': 'object', 'properties': {}}
Esquema de entrada
{'type': 'object', 'required': ['enabled'], 'properties': {'note': {'type': ['string', 'null'], 'default': None, 'description': 'A line for the payer, e.g. which charges are whose. Shown with the details.'}, 'swift': {'type': ['string', 'null'], 'default': None, 'description': "The bank's SWIFT/BIC."}, 'account': {'type': ['string', 'null'], 'default': None, 'description': 'The account number or IBAN.'}, 'enabled': {'type': 'boolean', 'description': 'Whether this installation takes transfers. On is refused while a required field is missing; off never is.'}, 'purpose': {'type': ['string', 'null'], 'default': None, 'description': "What the payer must write as the purpose. Has to carry {invoice} — a transfer that does not name its bill arrives as a sum nobody can place. Defaults to 'Invoice {invoice}'."}, 'bankName': {'type': ['string', 'null'], 'default': None, 'description': "The bank's name and address."}, 'minimumUsd': {'type': ['number', 'null'], 'default': None, 'description': 'The smallest bill that may be paid by transfer, in USD — correspondent fees eat a small one. Left out there is NO floor, which is the cleared state and not zero; a customer under it is offered the other ways to pay and told why.'}, 'beneficiary': {'type': ['string', 'null'], 'default': None, 'description': "Who the money is sent to — the account holder's name as the bank has it."}, 'daysToArrive': {'type': ['integer', 'null'], 'default': None, 'description': 'How many days a wire is given to arrive, 1 to 60. The period stays open that long. Left out, the stored number is kept (7 to start with).'}, 'accountCurrency': {'type': ['string', 'null'], 'default': None, 'description': "The account's OWN currency, e.g. 'AMD'. Bills stay in USD; this is what the receiving bank converts into."}, 'intermediaryBank': {'type': ['string', 'null'], 'default': None, 'description': "The intermediary bank's name, where one is needed."}, 'intermediarySwift': {'type': ['string', 'null'], 'default': None, 'description': "The intermediary bank's SWIFT/BIC."}, 'intermediaryAccount': {'type': ['string', 'null'], 'default': None, 'description': 'Our account at the intermediary bank.'}}}
Esquema de entrada
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The company's address — 'acme' in acme.kaiku.tech."}}}
Esquema de entrada
{'type': 'object', 'properties': {'slug': {'type': ['string', 'null'], 'default': None, 'description': "Only the company at this address ('acme' in acme.kaiku.tech)."}, 'status': {'type': ['string', 'null'], 'default': None, 'description': "Only companies in this state: 'trial', 'active', 'free', 'over-limit', 'expired', 'suspended'."}, 'withOwners': {'type': 'boolean', 'default': False, 'description': 'Include who owns each company — username and display name, never an e-mail. Off by default: this is a statistics surface, and a list of customers with names on it is a customer list.'}, 'endingInDays': {'type': ['integer', 'null'], 'default': None, 'description': 'Only companies whose paid-for period ends within this many days. 0 means already run out.'}}}
Esquema de entrada
{'type': 'object', 'required': ['questionId', 'option'], 'properties': {'note': {'type': ['string', 'null'], 'default': None, 'description': "Words of your own beside the option — a qualification, not the answer itself ('Postgres, but only after the migration lands'). Ignored when the asker switched free text off; check 'allowsFreeText' on the question."}, 'option': {'type': 'integer', 'description': 'Which option to choose, counted from 0 in the order they were offered.'}, 'questionId': {'type': 'integer', 'description': "The question's id, as returned by list_issue_questions or ask_issue_question."}}}
Esquema de entrada
{'type': 'object', 'required': ['key', 'to', 'question', 'options'], 'properties': {'to': {'type': 'string', 'description': 'Who to ask: the username, which list_users hands you ready-made — never the display name. They must be able to see this project, and it cannot be you.'}, 'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}, 'options': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The answer options, in the order to offer them: at least 2, at most 8, each a short label rather than a paragraph. Fewer than two is not a question with options — that is a comment.'}, 'question': {'type': 'string', 'description': 'The question itself. Keep it to what the options answer.'}, 'ttlHours': {'type': ['integer', 'null'], 'default': None, 'description': 'How long to wait, in hours. Omitted is 48 (two days). 0 means no deadline at all — the question waits until somebody answers it, which is rarely what an agent wants.'}, 'allowFreeText': {'type': 'boolean', 'default': True, 'description': 'Whether the answerer may add words of their own beside the option they choose. Defaults to true. Set false when the answer has to be machine-comparable and nothing else.'}, 'defaultOption': {'type': ['integer', 'null'], 'default': None, 'description': 'Which option to take if nobody answers before the deadline, counted from 0. Give one whenever there is a safe assumption — it is what lets you carry on rather than stall. Omit it when no option is safe to assume: then the deadline only stops the waiting and decides nothing.'}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'summary'], 'properties': {'type': {'type': ['string', 'null'], 'default': None, 'description': "Issue type name, e.g. 'Task', 'Bug', 'Story', 'Epic'. Defaults to 'Task'."}, 'labels': {'type': ['string', 'null'], 'default': None, 'description': 'Labels to set, space or comma separated.'}, 'dueDate': {'type': ['string', 'null'], 'default': None, 'description': 'The day this is due, as YYYY-MM-DD. A calendar day, not a timestamp — do not send a time or a zone.'}, 'summary': {'type': 'string', 'description': 'Issue summary (title).'}, 'assignee': {'type': ['string', 'null'], 'default': None, 'description': 'Assignee username or email. Omit to leave unassigned.'}, 'priority': {'type': ['string', 'null'], 'default': None, 'description': "Priority name, e.g. 'High'."}, 'parentKey': {'type': ['string', 'null'], 'default': None, 'description': 'Parent issue key, to create this as a child/sub-task.'}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'UK'."}, 'description': {'type': ['string', 'null'], 'default': None, 'description': 'Issue description. Markdown is kept as written, and carries $…$ / $$…$$ LaTeX formulas and [~username] mentions (the username, which list_users hands you ready-made — never the display name).'}}}
Esquema de entrada
{'type': 'object', 'required': ['key', 'name'], 'properties': {'key': {'type': 'string', 'description': "Project key, 2–10 characters: a letter followed by letters or digits, e.g. 'BGS'. Uppercased."}, 'lead': {'type': ['string', 'null'], 'default': None, 'description': 'Username or email of the project lead. Defaults to you — a project with no lead is one nobody can configure: export, colour, the bgs connection and access grants all need a lead or an admin.'}, 'name': {'type': 'string', 'description': "Project name, e.g. 'Background agents'."}, 'parentKey': {'type': ['string', 'null'], 'default': None, 'description': "Key of the project this one is a subproject of. Everybody who may reach the parent may reach this project too, in the role they hold there — so add only the people the parent does not already have. Leave it out for a project of its own. One level: a subproject cannot have subprojects. The key here is still an ordinary key ('KYCB2B', not 'KYC-B2B'), because it is what every issue key is built from."}, 'description': {'type': ['string', 'null'], 'default': None, 'description': 'What the project is for. Markdown.'}, 'projectTypeKey': {'type': ['string', 'null'], 'default': None, 'description': "Jira project type: 'software' (the default), 'business' or 'service_desk'."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'name', 'status', 'template'], 'properties': {'name': {'type': 'string', 'description': "What the rule is called, e.g. 'Document pack'. At most 120 characters."}, 'type': {'type': ['string', 'null'], 'default': None, 'description': "Only issues of this type, by name, e.g. 'Bug'. Leave out for any type."}, 'label': {'type': ['string', 'null'], 'default': None, 'description': 'Only issues carrying this label (one word). Leave out for any label.'}, 'action': {'type': ['string', 'null'], 'default': None, 'description': "'checklist' (the default) or 'agent' for a duty. Fixed once the rule exists."}, 'capUsd': {'type': ['number', 'null'], 'default': None, 'description': 'For a duty: what one task may cost, in dollars, when more than the ordinary ceiling is needed. At most 5.'}, 'status': {'type': 'string', 'description': "The state whose ENTRY fires the rule, by name, e.g. 'Ready for review'. For a duty taken only by hand, an empty string."}, 'enabled': {'type': 'boolean', 'default': True, 'description': 'Whether the rule is on from the start. Default true.'}, 'template': {'type': 'string', 'description': "The checklist, as Markdown: a '### Heading' per group, '- [ ] item' per line, two spaces of indent to nest an item under another, and [~username] on an item to name who does it. For a duty: the instruction."}, 'agentRole': {'type': ['string', 'null'], 'default': None, 'description': "For a duty: the agent role's key, e.g. 'product'."}, 'doneStatus': {'type': ['string', 'null'], 'default': None, 'description': 'For a duty: the state it moves the issue to when done. Never a finished state. Leave out and it does not move the issue.'}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'ONB'."}, 'agentFields': {'type': ['string', 'null'], 'default': None, 'description': "For a duty: the fields it may set, comma-separated — priority, labels, duedate, or a project field's name."}, 'agentActions': {'type': ['string', 'null'], 'default': None, 'description': 'For a duty: what the agent may do beyond commenting, comma-separated — describe, subtasks, ask, wiki, report, support.'}}}
Esquema de entrada
{'type': 'object', 'required': ['spaceKey', 'title'], 'properties': {'title': {'type': 'string', 'description': 'Page title. Must be unique within the space — the title is how pages are addressed here.'}, 'labels': {'type': ['string', 'null'], 'default': None, 'description': 'Labels to set, space or comma separated.'}, 'markdown': {'type': ['string', 'null'], 'default': None, 'description': "Page body as Markdown, which also carries $…$ / $$…$$ LaTeX formulas and the wiki's macros on a line of their own — {toc}, {children}, {info} … {info}, {expand:title=…} … {expand}."}, 'parentId': {'type': ['integer', 'null'], 'default': None, 'description': 'Parent page id. Omit to hang the page off the space home page.'}, 'spaceKey': {'type': 'string', 'description': "Space key, e.g. 'PM'. Every project has exactly one space, keyed like the project."}, 'parentTitle': {'type': ['string', 'null'], 'default': None, 'description': "Parent page title, as an alternative to 'parentId'. Must be a page in the same space."}}}
Esquema de entrada
{'type': 'object', 'required': ['letterId', 'decision'], 'properties': {'decision': {'type': 'string', 'description': "'release' or 'dismiss'."}, 'letterId': {'type': 'integer', 'description': "The letter's id, from list_support_letters."}}}
Esquema de entrada
{'type': 'object', 'required': ['key', 'id'], 'properties': {'id': {'type': 'integer', 'description': 'Record id, as returned by get_agent_usage.'}, 'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}}}
Esquema de entrada
{'type': 'object', 'required': ['key'], 'properties': {'id': {'type': ['integer', 'null'], 'default': None, 'description': "Attachment id, as listed by get_issue. An alternative to 'filename'."}, 'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}, 'filename': {'type': ['string', 'null'], 'default': None, 'description': 'File name to remove, as listed by get_issue.'}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'name'], 'properties': {'name': {'type': 'string', 'description': "Field name, e.g. 'Provider'."}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'CRM'."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'name'], 'properties': {'name': {'type': 'string', 'description': "The own type's name."}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'TH'."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'id'], 'properties': {'id': {'type': 'integer', 'description': "The rule's id, from list_project_rules."}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'ONB'."}}}
Esquema de entrada
{'type': 'object', 'required': ['filename'], 'properties': {'title': {'type': ['string', 'null'], 'default': None, 'description': 'Exact page title, when identifying the page by title.'}, 'pageId': {'type': ['integer', 'null'], 'default': None, 'description': 'Page id (as returned by search_wiki).'}, 'filename': {'type': 'string', 'description': 'File name to remove, as listed by get_wiki_page.'}, 'spaceKey': {'type': ['string', 'null'], 'default': None, 'description': 'Space key, when identifying the page by title.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'id': {'type': ['integer', 'null'], 'default': None, 'description': 'Page id (as returned by search_wiki).'}, 'title': {'type': ['string', 'null'], 'default': None, 'description': 'Exact page title, when identifying the page by title.'}, 'spaceKey': {'type': ['string', 'null'], 'default': None, 'description': 'Space key, when identifying the page by title.'}, 'includeChildren': {'type': 'boolean', 'default': False, 'description': "Delete the page's descendants along with it. Off by default."}}}
Esquema de entrada
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}}}
Esquema de entrada
{'type': 'object', 'required': ['key', 'filename'], 'properties': {'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}, 'filename': {'type': 'string', 'description': 'File name, as listed by get_issue.'}}}
Esquema de entrada
{'type': 'object', 'required': ['change'], 'properties': {'repo': {'type': ['string', 'null'], 'default': None, 'description': "Which repository, as 'group/repo'. Omit when only one is open."}, 'change': {'type': 'string', 'description': "The merge request or pull request number ('!12', '#12' or '12'), or a commit's hash."}}}
Esquema de entrada
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}, 'limit': {'type': 'integer', 'default': 20, 'description': 'How many comments to return (default 20, max 100).'}, 'startAt': {'type': ['integer', 'null'], 'default': None, 'description': "Where to start, counted from the OLDEST comment as 0. Omit for the most recent page; pass 'startAt' - 'limit' from a previous answer to step back one page."}}}
Esquema de entrada
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'id'], 'properties': {'id': {'type': 'integer', 'description': "The rule's id, from list_project_rules."}, 'limit': {'type': 'integer', 'default': 20, 'description': 'How many lines, newest first (default 20, max 100).'}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'ONB'."}}}
Esquema de entrada
{'type': 'object', 'required': ['letterId'], 'properties': {'letterId': {'type': 'integer', 'description': "The letter's id."}}}
Esquema de entrada
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': "Issue key of the request, e.g. 'SUPPORT-12'."}}}
Esquema de entrada
{'type': 'object', 'required': ['filename'], 'properties': {'title': {'type': ['string', 'null'], 'default': None, 'description': 'Exact page title, when identifying the page by title.'}, 'pageId': {'type': ['integer', 'null'], 'default': None, 'description': 'Page id (as returned by search_wiki).'}, 'filename': {'type': 'string', 'description': 'File name, as listed by get_wiki_page.'}, 'spaceKey': {'type': ['string', 'null'], 'default': None, 'description': 'Space key, when identifying the page by title.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'id': {'type': ['integer', 'null'], 'default': None, 'description': 'Page id (as returned by search_wiki).'}, 'limit': {'type': ['integer', 'null'], 'default': None, 'description': "How many lines to return from 'offset' (default 200)."}, 'title': {'type': ['string', 'null'], 'default': None, 'description': 'Exact page title, when looking the page up by title.'}, 'offset': {'type': ['integer', 'null'], 'default': None, 'description': "Return only the Markdown source from this 1-based line on — for a page without headings to navigate by. Pair with 'limit'."}, 'outline': {'type': 'boolean', 'default': False, 'description': "Return the page's table of contents instead of its body: per heading its level, text, anchor, the 1-based lines its section spans in the Markdown source, and its size in characters. Start here on a large page."}, 'section': {'type': ['string', 'null'], 'default': None, 'description': "Return only this section's Markdown — its heading line down to the next heading of the same or a higher level, subsections included. Name it by its anchor (as 'outline' gives it: the id a {toc} entry links to) or by its heading text."}, 'spaceKey': {'type': ['string', 'null'], 'default': None, 'description': 'Space key, when looking the page up by title.'}, 'withRelated': {'type': 'boolean', 'default': False, 'description': "With 'outline', 'section' or 'offset': also return the page's children, attachments, comments and linked issues, which a partial read otherwise leaves out."}, 'withMarkdown': {'type': 'boolean', 'default': False, 'description': "Return the Markdown source ('markdown') instead of the plain text — what to edit and pass back to update_wiki_page, and, for each comment, to update_wiki_comment. Off by default: reading costs less as text."}}}
Esquema de entrada
{'type': 'object', 'required': ['from', 'to', 'type'], 'properties': {'to': {'type': 'string', 'description': "The issue at the other end, e.g. 'PM-417'."}, 'from': {'type': 'string', 'description': "The issue the phrase is said about, e.g. 'PM-419'."}, 'type': {'type': 'string', 'description': "How 'from' relates to 'to', in words: 'blocks', 'is blocked by', 'duplicates', 'clones', 'relates to'. Whatever this workspace's link types call themselves — a refusal lists them."}}}
Esquema de entrada
{'type': 'object', 'required': ['issueKey'], 'properties': {'title': {'type': ['string', 'null'], 'default': None, 'description': 'Exact page title, when identifying the page by title.'}, 'pageId': {'type': ['integer', 'null'], 'default': None, 'description': 'Page id (as returned by search_wiki).'}, 'issueKey': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}, 'spaceKey': {'type': ['string', 'null'], 'default': None, 'description': 'Space key, when identifying the page by title.'}, 'relationship': {'type': ['string', 'null'], 'default': None, 'description': "How the page relates to the issue, free text — e.g. 'documentation' (the default), 'specification', 'design'."}}}
Esquema de entrada
{'type': 'object', 'properties': {'path': {'type': ['string', 'null'], 'default': None, 'description': 'Directory inside the repository. Omit for its root.'}, 'repo': {'type': ['string', 'null'], 'default': None, 'description': "Which repository, as 'group/repo'. Its last segment alone is enough when unambiguous; omit it when only one is open."}, 'reference': {'type': ['string', 'null'], 'default': None, 'description': 'Branch, tag or commit. Omit for the default branch.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'pageId': {'type': ['integer', 'null'], 'default': None, 'description': 'Wiki page id.'}, 'issueKey': {'type': ['string', 'null'], 'default': None, 'description': "Issue key, e.g. 'UK-1'."}}}
Esquema de entrada
{'type': 'object', 'properties': {'key': {'type': ['string', 'null'], 'default': None, 'description': "Limit to one issue, e.g. 'UK-1'. Omit to look across every project this token can reach."}, 'from': {'type': ['string', 'null'], 'default': None, 'description': "'agent' for only what an agent put to somebody (a resolution, PM-602), 'people' for only what a person asked. Omit for both."}, 'role': {'type': ['string', 'null'], 'default': None, 'description': "Whose questions: 'to_me' (waiting on you to answer), 'asked' (you asked them, and you are waiting), or 'any'. Defaults to 'to_me' with no key, and to 'any' when a key is given."}, 'limit': {'type': 'integer', 'default': 20, 'description': 'How many to return (default 20, max 100).'}, 'state': {'type': ['string', 'null'], 'default': 'open', 'description': "'open' (the default — still waiting on somebody) or 'all', which adds the answered, the withdrawn and the expired (the deadline passed with no default and no answer)."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey'], 'properties': {'projectKey': {'type': 'string', 'description': "Project key, e.g. 'UK'."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey'], 'properties': {'projectKey': {'type': 'string', 'description': "Project key, e.g. 'CRM'."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey'], 'properties': {'projectKey': {'type': 'string', 'description': "Project key, e.g. 'ONB'."}}}
Esquema de entrada
{'type': 'object', 'properties': {}}
Esquema de entrada
{'type': 'object', 'properties': {'state': {'type': ['string', 'null'], 'default': None, 'description': "One of 'held', 'failed', 'ignored', 'dismissed'. Omit for held and failed."}}}
Esquema de entrada
{'type': 'object', 'properties': {'who': {'type': ['string', 'null'], 'default': None, 'description': "'all' (default), 'mine' (assigned to you) or 'unassigned'."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey'], 'properties': {'projectKey': {'type': 'string', 'description': "Project key, e.g. 'TH'."}}}
Esquema de entrada
{'type': 'object', 'properties': {'text': {'type': ['string', 'null'], 'default': None, 'description': 'Free text to match in username, display name or email.'}, 'limit': {'type': 'integer', 'default': 50, 'description': 'Max users to return (default 50, max 200).'}, 'projectKey': {'type': ['string', 'null'], 'default': None, 'description': 'Restrict to members of this project key (must be visible to the token).'}, 'includeInactive': {'type': 'boolean', 'default': False, 'description': 'Include deactivated accounts, which can be neither assigned nor mentioned. Off by default.'}}}
Esquema de entrada
{'type': 'object', 'properties': {}}
Esquema de entrada
{'type': 'object', 'properties': {}}
Esquema de entrada
{'type': 'object', 'required': ['key', 'toProject'], 'properties': {'key': {'type': 'string', 'description': "The issue to move, e.g. 'PM-12'."}, 'apply': {'type': 'boolean', 'default': False, 'description': 'false (the default) answers what the move would do and changes nothing. true does it.'}, 'statuses': {'type': ['string', 'null'], 'default': None, 'description': "What each source status becomes in the target project, as 'In Review=Review, Blocked=On hold'. Only needed for states the target does not already have under the same name."}, 'toProject': {'type': 'string', 'description': "Project key to move it into, e.g. 'CRM'."}}}
Esquema de entrada
{'type': 'object', 'required': ['path'], 'properties': {'path': {'type': 'string', 'description': "The file's path inside the repository, e.g. 'src/app/main.ts'. Not a URL."}, 'repo': {'type': ['string', 'null'], 'default': None, 'description': "Which repository, as 'group/repo'. Omit when only one is open."}, 'reference': {'type': ['string', 'null'], 'default': None, 'description': 'Branch, tag or commit. Omit for the default branch.'}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'tag'], 'properties': {'tag': {'type': 'string', 'description': "The track's tag, e.g. 'cherry-orchard'."}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'TH'."}}}
Esquema de entrada
{'type': 'object', 'required': ['key', 'body'], 'properties': {'key': {'type': 'string', 'description': "Issue key of the request, e.g. 'SUPPORT-12'."}, 'body': {'type': 'string', 'description': 'What to tell the requester. Markdown is kept as written.'}}}
Esquema de entrada
{'type': 'object', 'required': ['key', 'source', 'externalId'], 'properties': {'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}, 'host': {'type': ['string', 'null'], 'default': None, 'description': 'Which host it ran on.'}, 'note': {'type': ['string', 'null'], 'default': None, 'description': 'Short note, e.g. the outcome.'}, 'agent': {'type': ['string', 'null'], 'default': None, 'description': "Which agent did the work, e.g. 'claude-code'."}, 'model': {'type': ['string', 'null'], 'default': None, 'description': "Which model it ran on, e.g. 'claude-opus-5'."}, 'runId': {'type': ['string', 'null'], 'default': None, 'description': 'The run this record belongs to, when one run reports several records (different models or hosts).'}, 'source': {'type': 'string', 'description': "Who is reporting, e.g. 'bg-agent-api'. Idempotency is scoped to it."}, 'costUsd': {'type': ['number', 'null'], 'default': None, 'description': 'Cost in USD, if you know the rates that applied.'}, 'endedAt': {'type': ['string', 'null'], 'format': 'date-time', 'default': None, 'description': 'When the run ended (ISO 8601).'}, 'startedAt': {'type': ['string', 'null'], 'format': 'date-time', 'default': None, 'description': 'When the run started (ISO 8601).'}, 'externalId': {'type': 'string', 'description': 'Your own key for this record (usually the run id). Re-sending it updates the record.'}, 'inputTokens': {'type': ['integer', 'null'], 'default': None, 'description': 'Input (prompt) tokens.'}, 'agentSeconds': {'type': ['integer', 'null'], 'default': None, 'description': 'Wall-clock seconds the run took. Machine time, not a worklog.'}, 'outputTokens': {'type': ['integer', 'null'], 'default': None, 'description': 'Output (completion) tokens.'}, 'cacheReadTokens': {'type': ['integer', 'null'], 'default': None, 'description': 'Cache-read tokens.'}, 'cacheWriteTokens': {'type': ['integer', 'null'], 'default': None, 'description': 'Cache-write tokens.'}}}
Esquema de entrada
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'description': 'Credential id, from list_credentials.'}}}
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'path': {'type': ['string', 'null'], 'default': None, 'description': "Narrow to files whose path contains this, such as 'src/' or '.ts'."}, 'repo': {'type': ['string', 'null'], 'default': None, 'description': "Which repository, as 'group/repo'. Omit to search every repository open here."}, 'query': {'type': 'string', 'description': 'What to look for, taken literally unless regexp is set. A space is a space, not two terms.'}, 'regexp': {'type': 'boolean', 'default': False, 'description': 'Read query as a regular expression. One with no literal in it may not finish in time.'}, 'caseSensitive': {'type': 'boolean', 'default': False, 'description': 'Match case. Off by default.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'jql': {'type': ['string', 'null'], 'default': None, 'description': 'A JQL query, e.g. `assignee = currentUser() AND statusCategory != Done ORDER BY updated DESC`. FIELDS: project, status, statuscategory, issuetype, type, priority, resolution, assignee, reporter, creator, key, issuekey, id, summary, description, sprint, parent, epic, labels, archived, agent, text, created, updated, duedate. OPERATORS: = != ~ !~ > >= < <=, IN (...), NOT IN (...), IS EMPTY, IS NOT EMPTY, combined with AND / OR, with parentheses around a sub-expression — `project = PM AND (status = Blocked OR priority = Highest)` — plus an optional trailing ORDER BY <field> [DESC]. `~` means contains (substring) and is the one to use for free text — `text` searches summary, description and comments. `>` `>=` `<` `<=` are for created/updated/duedate only, with absolute YYYY-MM-DD values: there are NO relative-date functions, so compute the date yourself. The only function is currentUser(), for assignee/reporter/creator. `archived` is this tracker\'s own field: archived issues are left out unless the query mentions it. `epic` is this tracker\'s own too, and it is the wide one: `epic = PM-12` matches that epic AND the work under it — its children and their sub-tasks — which is how one asks for an epic\'s whole board in a single clause. `parent` is the narrow one: direct children only, and never the epic itself. `agent` is this tracker\'s own as well: `agent = product` is an issue an agent of that role has right now — working on it or waiting on its question — and `agent IS NOT EMPTY` is any agent; the assignee of such an issue is still the person it works for. Quote values containing spaces. Seeded values — status: Backlog, "To Do", "In Progress", "In Review", Blocked, Done; statusCategory: "To Do", "In Progress", Done; priority: Highest, High, Medium, Low, Lowest; type: Epic, Story, Task, Bug, "Sub-task". A project\'s own columns (PM-170) can be searched too, by name — Segment = AI — or as customfield_20003 / cf[20003]; list_project_fields names them.'}, 'text': {'type': ['string', 'null'], 'default': None, 'description': 'Shorthand for `key ~ … OR summary ~ …`. Narrows the query further when `jql` is given too.'}, 'limit': {'type': 'integer', 'default': 25, 'description': 'Max issues to return (default 25, max 100).'}, 'status': {'type': ['string', 'null'], 'default': None, 'description': "Shorthand for `status = …` (e.g. 'In Progress', 'Done'). Narrows the query further when `jql` is given too."}, 'projectKey': {'type': ['string', 'null'], 'default': None, 'description': 'Shorthand for `project = …` (must be visible to the token). Narrows the query further when `jql` is given too.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'text': {'type': ['string', 'null'], 'default': None, 'description': 'Free text to match in the page title, its body, or the text of an attached SVG diagram.'}, 'limit': {'type': 'integer', 'default': 25, 'description': 'Max pages to return (default 25, max 100).'}, 'spaceKey': {'type': ['string', 'null'], 'default': None, 'description': "Restrict to this space key (e.g. 'PM')."}}}
Esquema de entrada
{'type': 'object', 'required': ['key', 'values'], 'properties': {'key': {'type': 'string', 'description': "Issue key, e.g. 'CRM-1'."}, 'values': {'type': 'string', 'description': "Field names to values, as 'Segment=AI; Country=Poland' or a JSON object. List values are given by option name, people by username, dates as 2026-08-21."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'name'], 'properties': {'icon': {'type': ['string', 'null'], 'default': None, 'description': 'The glyph that mark wears, from the palette list_project_fields returns. Not for a country field: that one marks a card with the flag of the country the issue holds, so passing an icon is refused rather than ignored.'}, 'kind': {'type': ['string', 'null'], 'default': None, 'description': "What it holds: 'text', 'number', 'date' (a day), 'datetime' (a day and a time, written like 2026-10-01T19:30+03:00), 'user', 'select' (a list) or 'country' (a country, written as its name or its two-letter code and shown with a flag). Required when creating; ignored when the field already exists, since a kind cannot change."}, 'name': {'type': 'string', 'description': "Field name, e.g. 'Segment'. An existing field with this name is edited rather than duplicated."}, 'newName': {'type': ['string', 'null'], 'default': None, 'description': 'Rename the field to this. Leave out to keep the name.'}, 'options': {'type': ['string', 'null'], 'default': None, 'description': "For a list: its options, as 'AI:green, Skins:orange, GameCards' or a JSON array of {name, color}. A colour is optional and must be one of: orange, amber, red, pink, purple, blue, teal, green. Options left out are REMOVED — send the whole set."}, 'showIcon': {'type': ['boolean', 'null'], 'default': None, 'description': 'Mark a board card when this field has a value: true to switch the mark on, false off. Leave out to keep it as it is.'}, 'issueType': {'type': ['string', 'null'], 'default': None, 'description': "Keep the field for issues of one type only, by name — e.g. 'Показ' — or '' for every type. Leave out to keep it as it is."}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'CRM'."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'name'], 'properties': {'name': {'type': 'string', 'description': "The type's name. An own type of this project with this name is renamed (with newName) rather than duplicated."}, 'newName': {'type': ['string', 'null'], 'default': None, 'description': 'Rename the type to this. Leave out to add or keep it.'}, 'subtask': {'type': ['boolean', 'null'], 'default': None, 'description': 'When adding: true for a sub-task type, whose issues hang off a parent. Cannot be changed afterwards.'}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'TH'."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey'], 'properties': {'parentKey': {'type': ['string', 'null'], 'default': None, 'description': "Key of the project it becomes a subproject of, e.g. 'KYC'. Leave it out (or empty) to detach it and leave it a project of its own."}, 'projectKey': {'type': 'string', 'description': "Key of the project to move, e.g. 'KYCB2B'."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'tag'], 'properties': {'tag': {'type': 'string', 'description': "The label that puts an issue in this track, e.g. 'cherry-orchard'. No spaces. An existing track with this tag is edited rather than duplicated; matched exactly, so 'Hamlet' and 'hamlet' are two tags, as they are two labels."}, 'icon': {'type': ['string', 'null'], 'default': None, 'description': 'One or two emoji shown BESIDE the name, never instead of it. Leave it out to keep what is there; send an empty string to take it off. Anything that is not an emoji is refused rather than ignored.'}, 'name': {'type': ['string', 'null'], 'default': None, 'description': "What a reader sees, e.g. 'The Cherry Orchard'. Leave it out to keep what is there; send an empty string to drop it and let the tag speak."}, 'newTag': {'type': ['string', 'null'], 'default': None, 'description': 'Rename the tag to this. The label on existing issues is NOT rewritten, so work in the old tag leaves the track — rename only when the issues are being relabelled too.'}, 'archived': {'type': ['boolean', 'null'], 'default': None, 'description': "true takes the track off the row above the board WITHOUT undeclaring it — a play that has been staged: its name, icon, place and tag are kept, its issues stay in it (they do not become 'outside every track'), and links to it keep working. false puts it back in the row. Leave it out to keep what is there. Prefer this to remove_track for a track that is finished."}, 'position': {'type': ['integer', 'null'], 'default': None, 'description': 'Where it sits in the row above the board, counting from 1. Leave it out and a new track goes last, an existing one stays where it is.'}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'TH'."}}}
Esquema de entrada
{'type': 'object', 'properties': {'to': {'type': ['string', 'null'], 'default': None, 'description': "The other end, e.g. 'PM-417'. Not needed when 'linkId' is given."}, 'from': {'type': ['string', 'null'], 'default': None, 'description': "One end, e.g. 'PM-419'. Not needed when 'linkId' is given."}, 'type': {'type': ['string', 'null'], 'default': None, 'description': "Which link, when the two issues are joined by more than one: the phrase as get_issue says it ('blocks', 'is blocked by', 'relates to')."}, 'linkId': {'type': ['integer', 'null'], 'default': None, 'description': "The link's id, as get_issue returns it in 'links'."}}}
Esquema de entrada
{'type': 'object', 'required': ['issueKey'], 'properties': {'title': {'type': ['string', 'null'], 'default': None, 'description': 'Exact page title, when identifying the page by title.'}, 'pageId': {'type': ['integer', 'null'], 'default': None, 'description': 'Page id (as returned by search_wiki).'}, 'issueKey': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}, 'spaceKey': {'type': ['string', 'null'], 'default': None, 'description': 'Space key, when identifying the page by title.'}}}
Esquema de entrada
{'type': 'object', 'required': ['key', 'commentId'], 'properties': {'key': {'type': 'string', 'description': "Issue key the comment is on, e.g. 'UK-1'."}, 'body': {'type': ['string', 'null'], 'default': None, 'description': 'The new body, replacing the old one entirely. Markdown is kept as written, and carries $…$ / $$…$$ LaTeX formulas and [~username] mentions.'}, 'edits': {'type': ['array', 'null'], 'items': {'type': ['object', 'null'], 'properties': {'newText': {'type': ['string', 'null'], 'description': "What to put in its place. An empty string deletes. To insert, put an anchor in 'oldText' and the same anchor plus the addition here."}, 'oldText': {'type': ['string', 'null'], 'description': "The text to replace, exactly as it stands in the Markdown source — whitespace and line breaks included. Must occur exactly once unless 'replaceAll' is set; include a few surrounding words to make it unique."}, 'replaceAll': {'type': 'boolean', 'description': 'Replace every occurrence rather than requiring exactly one.'}}}, 'default': None, 'description': "Exact replacements in the comment, changing part of it in place. Matched against the body as get_comments returns it — stored as written, so what you read is what an 'oldText' has to equal, whitespace and line breaks included. Every edit is looked for in that text, not in what the edits before it produced; if any one does not fit, none is applied."}, 'commentId': {'type': 'integer', 'description': "The comment's id, as returned by get_comments or add_comment."}}}
Esquema de entrada
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': "Issue key, e.g. 'UK-1'."}, 'type': {'type': ['string', 'null'], 'default': None, 'description': "New issue type name, e.g. 'Task', 'Bug', 'Story', 'Epic'."}, 'fields': {'type': ['string', 'null'], 'default': None, 'description': "The project's own columns to fill in with this update, by their NAMES: 'Segment=AI; Country=Poland', or a JSON object. Same shape as set_issue_fields — this exists here because a move a workflow conditions on a column has to set it in the same call."}, 'labels': {'type': ['string', 'null'], 'default': None, 'description': 'Labels to set, space or comma separated. Replaces the existing set.'}, 'status': {'type': ['string', 'null'], 'default': None, 'description': "Status name to move the issue to, e.g. 'In Progress', 'Done'."}, 'dueDate': {'type': ['string', 'null'], 'default': None, 'description': 'The day this is due, as YYYY-MM-DD. A calendar day, not a timestamp. Pass an empty string to clear it.'}, 'summary': {'type': ['string', 'null'], 'default': None, 'description': 'New summary (title).'}, 'assignee': {'type': ['string', 'null'], 'default': None, 'description': "Assignee username or email. Pass an empty string to unassign. 'agent:<role>' (e.g. 'agent:product') hands the issue to that agent instead: you become the assignee and the agent works on your behalf — allowed only where a switched-on duty of that role in this project takes issues like this one (list_project_rules shows the duties)."}, 'priority': {'type': ['string', 'null'], 'default': None, 'description': "Priority name, e.g. 'High'."}, 'parentKey': {'type': ['string', 'null'], 'default': None, 'description': "Key of the issue this one hangs off, e.g. 'PM-276' — moves it under that story or epic. To DETACH it instead, send detachParent: true; an empty string still works but is easy to lose on the way. Nothing is renamed and the key never changes: an issue keeps the key of the project it lives in. A sub-task must stay in its parent's project; anything else may cross projects."}, 'resolution': {'type': ['string', 'null'], 'default': None, 'description': "Resolution name to set, e.g. 'Fixed', 'Won't Do'. Some workflows require one on the move into a finished state; sending it here is how that condition is met."}, 'description': {'type': ['string', 'null'], 'default': None, 'description': 'New description. Markdown, with $…$ / $$…$$ LaTeX formulas and [~username] mentions.'}, 'detachParent': {'type': 'boolean', 'default': False, 'description': 'Take this issue out from under its parent and leave it top-level. The reliable way to detach: unlike an empty parentKey it cannot arrive as the two characters "" or be dropped as «nothing was sent». Refused together with a parentKey, since the two would be asking for opposite things.'}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey', 'id'], 'properties': {'id': {'type': 'integer', 'description': "The rule's id, from list_project_rules."}, 'name': {'type': ['string', 'null'], 'default': None, 'description': 'A new name.'}, 'type': {'type': ['string', 'null'], 'default': None, 'description': 'Only issues of this type, by name. An empty string means any type.'}, 'label': {'type': ['string', 'null'], 'default': None, 'description': 'Only issues with this label. An empty string means any label.'}, 'capUsd': {'type': ['number', 'null'], 'default': None, 'description': 'For a duty: what one task may cost, in dollars, at most 5; 0 goes back to the ordinary ceiling.'}, 'status': {'type': ['string', 'null'], 'default': None, 'description': 'A new state to fire on, by name.'}, 'enabled': {'type': ['boolean', 'null'], 'default': None, 'description': 'true to switch the rule on, false to switch it off.'}, 'template': {'type': ['string', 'null'], 'default': None, 'description': 'A new checklist template (Markdown). Replaces the old one for issues that enter the state from now on; checklists already added stay as they are.'}, 'agentRole': {'type': ['string', 'null'], 'default': None, 'description': 'For a duty: a new agent role key.'}, 'doneStatus': {'type': ['string', 'null'], 'default': None, 'description': 'For a duty: a new review state; an empty string and it no longer moves the issue.'}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'ONB'."}, 'agentFields': {'type': ['string', 'null'], 'default': None, 'description': 'For a duty: the whole new list of fields, comma-separated.'}, 'agentActions': {'type': ['string', 'null'], 'default': None, 'description': 'For a duty: the whole new list of actions, comma-separated.'}}}
Esquema de entrada
{'type': 'object', 'required': ['commentId'], 'properties': {'edits': {'type': ['array', 'null'], 'items': {'type': ['object', 'null'], 'properties': {'newText': {'type': ['string', 'null'], 'description': "What to put in its place. An empty string deletes. To insert, put an anchor in 'oldText' and the same anchor plus the addition here."}, 'oldText': {'type': ['string', 'null'], 'description': "The text to replace, exactly as it stands in the Markdown source — whitespace and line breaks included. Must occur exactly once unless 'replaceAll' is set; include a few surrounding words to make it unique."}, 'replaceAll': {'type': 'boolean', 'description': 'Replace every occurrence rather than requiring exactly one.'}}}, 'default': None, 'description': "Exact replacements in the comment's Markdown — the text get_wiki_page returns as a comment's 'markdown'. Every 'oldText' is matched against it as you read it (not against the result of the other edits) and must occur exactly once unless 'replaceAll' is set; if any edit does not fit, none is applied."}, 'markdown': {'type': ['string', 'null'], 'default': None, 'description': 'The whole comment, replacing what is there. Markdown, which also carries $…$ / $$…$$ LaTeX formulas.'}, 'commentId': {'type': 'integer', 'description': "The comment's id, as get_wiki_page lists it or add_wiki_comment returned."}, 'inlineMatch': {'type': ['integer', 'null'], 'default': None, 'description': "Which occurrence of 'inlineSelection' on the page to anchor to, counted from 1. Only needed when the text occurs more than once."}, 'expectedVersion': {'type': ['integer', 'null'], 'default': None, 'description': "The version you read (from get_wiki_page). If the comment has moved on since, the edit is refused instead of overwriting somebody else's."}, 'inlineSelection': {'type': ['string', 'null'], 'default': None, 'description': "Move the inline anchor: the page text this comment should point at, copied exactly from the page. An empty string detaches it, making it a footer comment. Refused when the page does not carry that text, or carries it more than once and 'inlineMatch' does not say which — never resolved by guessing."}}}
Esquema de entrada
{'type': 'object', 'properties': {'id': {'type': ['integer', 'null'], 'default': None, 'description': 'Page id (as returned by search_wiki).'}, 'edits': {'type': ['array', 'null'], 'items': {'type': ['object', 'null'], 'properties': {'newText': {'type': ['string', 'null'], 'description': "What to put in its place. An empty string deletes. To insert, put an anchor in 'oldText' and the same anchor plus the addition here."}, 'oldText': {'type': ['string', 'null'], 'description': "The text to replace, exactly as it stands in the Markdown source — whitespace and line breaks included. Must occur exactly once unless 'replaceAll' is set; include a few surrounding words to make it unique."}, 'replaceAll': {'type': 'boolean', 'description': 'Replace every occurrence rather than requiring exactly one.'}}}, 'default': None, 'description': "Exact replacements in the page's Markdown source — the text get_wiki_page returns with 'section', 'offset' or withMarkdown: true. Every 'oldText' is matched against the page as you read it (not against the result of the other edits) and must occur exactly once unless 'replaceAll' is set; if any edit does not fit, none is applied. Pair with 'expectedVersion'."}, 'title': {'type': ['string', 'null'], 'default': None, 'description': 'Current page title, when identifying the page by title.'}, 'labels': {'type': ['string', 'null'], 'default': None, 'description': 'Labels to set, space or comma separated. Replaces the existing set.'}, 'message': {'type': ['string', 'null'], 'default': None, 'description': 'Short note for the page history, e.g. why you changed it.'}, 'markdown': {'type': ['string', 'null'], 'default': None, 'description': "The complete new body as Markdown — replaces what is there. Carries $…$ / $$…$$ LaTeX formulas and the wiki's macros on a line of their own ({toc}, {children}, {info} … {info}, {expand:title=…} … {expand})."}, 'newTitle': {'type': ['string', 'null'], 'default': None, 'description': "New title. The page's existing links follow the rename."}, 'parentId': {'type': ['integer', 'null'], 'default': None, 'description': 'Move the page under this parent page id.'}, 'spaceKey': {'type': ['string', 'null'], 'default': None, 'description': 'Space key, when identifying the page by title.'}, 'minorEdit': {'type': 'boolean', 'default': False, 'description': 'Mark this as a minor edit in the history.'}, 'toTopLevel': {'type': 'boolean', 'default': False, 'description': "Move the page to the top of its space, out from under any parent, so it sits beside the space's other root pages. Use this instead of parentId/parentTitle — a tool argument has no way to say 'no parent' by leaving one out."}, 'parentTitle': {'type': ['string', 'null'], 'default': None, 'description': 'Move the page under the page with this title, in the same space.'}, 'appendMarkdown': {'type': ['string', 'null'], 'default': None, 'description': "Markdown to add to the end of the page, leaving the rest as it is. Same syntax as 'markdown'."}, 'replaceSection': {'type': ['object', 'null'], 'default': None, 'properties': {'section': {'type': ['string', 'null'], 'description': 'The section to replace: its anchor as get_wiki_page(outline: true) gives it, or its heading text.'}, 'markdown': {'type': ['string', 'null'], 'description': 'The Markdown that replaces it, heading line included — the section as get_wiki_page(section: …) returned it, changed. An empty string removes the section.'}}, 'description': "Replace one whole section: 'section' names it as get_wiki_page's 'section' does (anchor or heading text), 'markdown' is what replaces it — heading line included, as reading the section returned it. Can be combined with 'edits' elsewhere on the page."}, 'expectedVersion': {'type': ['integer', 'null'], 'default': None, 'description': "The version you read (from get_wiki_page). If the page has moved on since, the edit is refused instead of overwriting someone else's."}}}
Esquema de entrada
{'type': 'object', 'required': ['projectKey'], 'properties': {'id': {'type': ['integer', 'null'], 'default': None, 'description': 'Existing connection id to update; omit to create a new one.'}, 'url': {'type': ['string', 'null'], 'default': None, 'description': 'MCP server URL — use https (required when creating).'}, 'name': {'type': ['string', 'null'], 'default': None, 'description': 'Connection display name (required when creating).'}, 'token': {'type': ['string', 'null'], 'default': None, 'description': 'Bearer auth token. Omit to keep the current token when updating.'}, 'enabled': {'type': ['boolean', 'null'], 'default': None, 'description': 'Whether the connection is enabled.'}, 'projectKey': {'type': 'string', 'description': "Project key, e.g. 'UK'."}}}
Esquema de entrada
{'type': 'object', 'required': ['questionId'], 'properties': {'questionId': {'type': 'integer', 'description': "The question's id, as returned by list_issue_questions or ask_issue_question."}}}
Cambios recientes en herramientas
Servidores MCP similares
ainote
Stores and synchronizes notes, tasks, development documents, project intent, knowledge graphs, environment secrets, vault files, …
WhiteMagic — governed local memory for agent continuity
Provides local persistent memory, hybrid retrieval, and session continuity for coding and other agents.
Atlassian Rovo MCP Server
Searches and manages Jira, Confluence, Loom, and related Atlassian work data.
ctlsurf
Provides coding agents with a system-of-record notebook containing pages, datastores, tasks, and skills.
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
Dayze — Life Context
Provides authenticated personal life-context data and tools for contacts, memories, events, expenses, trips, assets, places, and …
YouSpot
Connects personal contacts, companies, notes, files, CRM records, email, Slack, LinkedIn, and calendars, with search, relationshi…
cypher-mcp
Provides named Cypher graph queries and code-orientation tools for tracing capabilities, symbols, invariants, provenance, changes…