{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_6ycua55ywq9g","handle":"kaiku","url":"https://wellknown.network/agents/kaiku","links":{"self":"https://wellknown.network/agents/kaiku/record.json","html":"https://wellknown.network/agents/kaiku","markdown":"https://wellknown.network/agents/kaiku/record.md","api":"https://wellknown.network/api/v1/agents/kaiku","status":"https://wellknown.network/api/v1/agents/kaiku/status","claim":"https://wellknown.network/agents/kaiku/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/kaiku/claim.json","badge":"https://wellknown.network/agents/kaiku/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/kaiku/history","tools":"https://wellknown.network/api/v1/agents/kaiku/tools"},"ard":{"identifier":"urn:air:app.kaiku.tech:server:kaiku","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Kaiku","summary":"Issue tracker and wiki for teams and their agents: find, file and update issues, write pages.","description":"Issue tracker and wiki for teams and their agents: find, file and update issues, write pages.","publisher":{"name":"tech.kaiku","url":null},"homepage":"https://kaiku.tech/en/docs/mcp?utm_source=mcp-registry","repository":null,"version":"1.3.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://app.kaiku.tech/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://mcp.kaiku.tech/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://{workspace}.kaiku.tech/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-25T19:14:16.62648Z","publishedAt":"2026-09-25T19:14:16.62648Z","registryName":"tech.kaiku/kaiku"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":1,"provenance":"derived"},{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":1,"provenance":"derived"},{"slug":"data.database","name":"Databases","confidence":1,"provenance":"derived"},{"slug":"dev.version-control","name":"Version Control","confidence":1,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":1,"provenance":"derived"},{"slug":"dev.filesystem","name":"Filesystem","confidence":1,"provenance":"derived"},{"slug":"productivity.notes","name":"Notes & Docs","confidence":0.833,"provenance":"derived"},{"slug":"data.web-search","name":"Web Search","confidence":0.583,"provenance":"derived"}],"categories":["content","data","dev","documents","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 41m ago.","lastOkAt":"2026-10-10T08:32:36.391Z","lastProbedAt":"2026-10-10T08:32:36.391Z","statusComputedAt":"2026-10-10T08:34:07.601Z","reliability30d":{"probes":120,"successRate":0.95,"p50Ms":27,"basis":"mixed","measures":{"availability":"availability (some checks stopped at authentication)","latency":"response time (mixed)","tools":"partially observed","summary":"Some successful checks reached the service and some stopped at an authentication response; figures combine both."},"checks":{"total":120,"ok":114,"authBoundaryOk":48,"serviceOk":66,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T08:32:36.391Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":26,"error":null,"detail":{"tools":[{"name":"add_attachment","description":"Attach a file to an issue: pass its bytes as 'contentBase64', or its content as 'text' when the file is text. Attaching a filename the issue already has replace"},{"name":"add_comment","description":"Add a comment to an issue, or reply to one of its comments ('replyTo' is a comment id from get_comments). A reply notifies the author of the comment it answers,"},{"name":"add_wiki_attachment","description":"Attach a file to a wiki page, identified by 'pageId' or by 'spaceKey' + 'title': pass its bytes as 'contentBase64', or its content as 'text' when the file is te"},{"name":"add_wiki_comment","description":"Comment on a wiki page, or reply to one of its comments ('replyTo' is a comment id from get_wiki_page). A reply notifies the author of the comment it answers, w"},{"name":"admin_bank_transfer","description":"Administrators only: where a bank transfer is to be sent (PM-625) — beneficiary, account and its own currency, bank and SWIFT, the intermediary bank if there is"},{"name":"admin_errors_week","description":"Administrators only: the error collector's week — events and distinct errors per project against the week before, errors first seen that week with their release"},{"name":"admin_funnel","description":"Administrators only: the installation as a business over a period — registrations, how many of them became working companies, purchases and conversion by cohort"},{"name":"admin_invoices","description":"Administrators only: what companies were asked to pay and what answered it — each invoice with its amount, its coin, whether it is paid and what is short, and t"},{"name":"admin_landing_week","description":"Administrators only: the landing site's week — visits, where they came from, clicks on sign-up, and the registrations that followed. The same numbers the weekly"},{"name":"admin_load","description":"Administrators only: how loaded this machine is and what the language models cost. Load is this machine's own — database, streams, memory, processor, traffic an"},{"name":"admin_overview","description":"Administrators only: the whole installation by the numbers — accounts, workspaces, projects, issues, comments and sprints, plus issues broken down by status and"},{"name":"admin_set_bank_transfer","description":"Administrators only, and this one CHANGES things: state where bank transfers are to be sent. Send the WHOLE set every time — anything left out is cleared, not k"},{"name":"admin_workspace_journal","description":"Administrators only: what was done to one company and by whom — created, plan changed, period extended by hand, credited, suspended, resumed, erased — newest fi"},{"name":"admin_workspaces","description":"Administrators only: every company on the installation — its plan, what state it is in (trial, active, over-limit, suspended…), when what it paid for runs out, "},{"name":"answer_issue_question","description":"Answer a question that was put to you on an issue, by choosing one of its options. Only the person the question was addressed to may answer it; answering again "},{"name":"ask_issue_question","description":"Ask one person a question with pre-written answer options, in an issue's thread — the way to get a decision that does not get lost in the comment stream. The qu"},{"name":"check_checklist_item","description":"Tick or untick one checklist item by the 'id' get_checklist gave it. Written as a click on the item is: the same history line and the same notices to the issue'"},{"name":"create_credential","description":"Attach a secret — a password, a key, a test login — to an issue or a wiki page, instead of writing it in a comment or a description, where everyone on the proje"},{"name":"create_issue","description":"Create an issue in a project visible to this token. Returns the new issue key. Requires permission to create issues in that project. Answers with 'notified' (wh"},{"name":"create_project","description":"Administrators only: create a project — a new key, a starter board, and its own wiki space, led by you unless you name someone else. The key is yours to choose "},{"name":"create_project_rule","description":"Add a rule to a project: when an issue enters 'status', append 'template' to its description. A rule appends its checklist to an issue's description when the is"},{"name":"create_version","description":"Add a version to a project, at the end of its sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue ca"},{"name":"create_wiki_page","description":"Create a wiki page from Markdown in a space you can write to. Hangs off the space home page unless you name a parent (by 'parentId', or by 'parentTitle' within "},{"name":"decide_support_letter","description":"Decide what a held or failed letter to the support address is. 'release' files it as if it had just arrived, past the spam filter and the limits: it joins the r"},{"name":"delete_agent_usage","description":"Remove one agent-usage record from an issue, by the id that get_agent_usage returns. For correcting a record's numbers, re-send it with report_agent_usage inste"},{"name":"delete_attachment","description":"Remove a file from an issue, by 'filename' or by attachment 'id' — both come back from get_issue. Requires permission to edit issues in that project."},{"name":"delete_credential","description":"Remove a credential, by the id from list_credentials — the value, its reader list and the record of who read it go with it, and it cannot be brought back. Only "},{"name":"delete_project_field","description":"Remove a column from a project. Answers with how many issues lost a value, because that number is what the decision was about — the issues themselves are untouc"},{"name":"delete_project_issue_type","description":"Remove an issue type of this project's own. Refused while any issue is of it or any field is kept for it — change those first; a rule on it goes with it. Projec"},{"name":"delete_project_rule","description":"Remove a project rule, by its id from list_project_rules. Checklists it already added stay in their issues; its journal goes with it. To stop it for a while ins"},{"name":"delete_wiki_attachment","description":"Remove a file from a wiki page, by its 'filename' as listed by get_wiki_page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. References to it in the"},{"name":"delete_wiki_page","description":"Delete a wiki page. Identify it by 'id', or by 'spaceKey' + 'title'. A page with children takes its whole subtree with it, so that is refused unless you pass in"},{"name":"get_agent_usage","description":"What background-agent runs have cost an issue (local or mirrored/upstream): one record per run (tokens by kind, machine time, agent/model/host) plus the totals."},{"name":"get_attachment","description":"Read one file attached to an issue — its bytes, base64-encoded — by the issue key and the 'filename' as get_issue lists it. The bytes travel as text through the"},{"name":"get_change","description":"The files one merge request, pull request or commit touches, with their diffs. Large diffs arrive cut."},{"name":"get_checklist","description":"Read an issue's checklist — the '- [ ]' lines of its description — as items, in order: each with a stable 'id' (pass it to check_checklist_item), 'checked', its"},{"name":"get_comments","description":"Read the discussion on an issue, oldest first. Without 'startAt' you get the END of the thread — the most recent 'limit' comments — because catching up means re"},{"name":"get_issue","description":"Get one issue by key (e.g. 'UK-1') if it is visible to this token, including its description, status, assignee, labels, sub-tasks, the issues it is linked to an"},{"name":"get_project_rule_runs","description":"A project rule's journal, newest first: each time an issue entered the rule's state and matched its conditions — which issue, who moved it, and the outcome: 'ap"},{"name":"get_started","description":"What this company and one of its projects could still set up in the tracker, and what is set up already — call it when the person has just started or asks what "},{"name":"get_support_letter","description":"Read one letter to the support address whole — the quoted thread and the signature that the request's comment leaves out, the HTML part as text, and the headers"},{"name":"get_support_request","description":"Read who is behind a support request: the requester's name and email, whether they asked signed in (and from which workspace), their client version, what the pr"},{"name":"get_wiki_attachment","description":"Read one file attached to a wiki page — its bytes, base64-encoded — identifying the page by 'pageId' or by 'spaceKey' + 'title' and the file by 'filename' as ge"},{"name":"get_wiki_page","description":"Get one wiki page by id, or by space key + title, if it is visible to this token. Returns the page text, its labels, its parent and child pages, its comments, a"},{"name":"link_issues","description":"Link two issues: link_issues('PM-419', 'PM-417', 'is blocked by') records that PM-419 is blocked by PM-417. 'type' is the PHRASE, said as a person says it — 'bl"},{"name":"link_wiki_page","description":"Link a wiki page to an issue. The link then shows on both the issue and the page, and survives the page being renamed or moved. Identify the page by 'pageId', o"},{"name":"list_code","description":"List a directory of a repository connected to a project. Only repositories whose owners opened them to agents can be read."},{"name":"list_credentials","description":"List the credentials attached to an issue or a wiki page that this token may read — names and who attached them, never the values. Pass issueKey or pageId. Use "},{"name":"list_environments","description":"A project's environments, in order, and its ten newest deployments. An environment is one of the places a project's work is put out to — 'dev', 'staging', 'prod"},{"name":"list_issue_questions","description":"Questions with answer options, in either direction: what is waiting on YOU to answer (role='to_me'), what YOU asked and are waiting on somebody for (role='asked"},{"name":"list_legal_library","description":"List the acts in the legal library — what this installation's agents have already read off the official sites: url, title, the day the text is as of (fetched_at"},{"name":"list_mcp_connections","description":"List the external MCP connections configured for a project. Auth tokens are never returned (only whether one is set)."},{"name":"list_project_fields","description":"The columns a project keeps about its issues: name, kind, and a list's options with their colours. Also the customfield_… name each one answers to, for searchin"},{"name":"list_project_rules","description":"A project's rules: when an issue enters a state, a checklist from a template is appended to its description. A rule appends its checklist to an issue's descript"},{"name":"list_projects","description":"List the projects visible to this token (a project-scoped token sees only its project). A project with a 'parent' is a subproject of that one: it has its own is"},{"name":"list_support_letters","description":"List letters to the support address that did not become part of a request: 'held' (looked like spam, or too many at once from one address or on one request), 'f"},{"name":"list_support_queue","description":"The support desk's queue: open requests, the most urgent first — overdue, then due soonest, then those waiting on their requester. Each item says whose turn it "},{"name":"list_tracks","description":"The tracks a project is cut into: a track is a LABEL the project declared meaningful — a play, a campaign, a rollout — and work joins one by carrying that label"},{"name":"list_users","description":"List the people you can assign work to or mention: the members of the projects this token can see. Optionally filter by free text (username, display name or ema"},{"name":"list_versions","description":"A project's versions, in their sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue carries versions "},{"name":"list_wiki_spaces","description":"List the wiki spaces visible to this token. Every project has exactly one space, keyed like the project."},{"name":"local_files_setup","description":"How the person connects pm-files — a small local MCP server that attaches files from their own computer to issues and wiki pages by path, and saves attachments "},{"name":"move_issue","description":"Move an issue into another project, taking its comments, history, attachments, links and sub-tasks with it. The key does NOT change: 'PM-12' stays 'PM-12' where"},{"name":"read_code","description":"Read one file from a repository connected to a project. A long file arrives cut and says so; generated and binary files are not read."},{"name":"release_version","description":"Mark a version released — or, with released=false, take the mark back. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's o"},{"name":"remove_track","description":"Undeclare a track. THE LABEL STAYS ON THE WORK: what goes is the declaration, so the issues keep their tag and declaring the track again brings exactly the same"},{"name":"reply_to_requester","description":"Write to the person who opened a support request. The text becomes a comment the requester can read on their page and is emailed to them — unlike add_comment, w"},{"name":"report_agent_usage","description":"Record what one agent run cost an issue (local or mirrored/upstream): tokens by kind and machine time. Re-sending the same 'source' + 'externalId' updates that "},{"name":"report_deployment","description":"Say that something was deployed to one of a project's environments — the call a pipeline step makes. An environment is one of the places a project's work is put"},{"name":"reveal_credential","description":"Read one credential's value, by the id from list_credentials. This is the same act as pressing reveal on the screen and carries the same cost: it is recorded ag"},{"name":"search_code","description":"Find where a string appears in the code of the repositories connected to a project, with the file, the line number and the lines around it. Only repositories wh"},{"name":"search_issues","description":"Search the issues visible to this token, with a JQL query — the same JQL the Jira REST surface takes, read by the same parser. A query naming a field this track"},{"name":"search_legal_library","description":"Search the laws, regulations and standards this installation's agents have already read off the official sites (EUR-Lex, legislation.gov.uk, Fedlex, FATF and ot"},{"name":"search_wiki","description":"Search wiki pages visible to this token by free text (matched in the title, the body, and the labels written on an attached SVG diagram). Optionally restrict to"},{"name":"set_environments","description":"Make a project's environments exactly this list, in this order — the last is where finished work ends up. An environment is one of the places a project's work i"},{"name":"set_issue_fields","description":"Fill in a project's own columns on one issue, by their NAMES: 'Segment=AI; Country=Poland; Started=2026-08-01', or a JSON object. A country column takes the cou"},{"name":"set_project_field","description":"Add a column to a project, or edit the one that already has this name. Keyed by name rather than by id: 'make sure there is a Segment field with these options' "},{"name":"set_project_issue_type","description":"Add an issue type of this project's own — e.g. 'Показ' — or rename one it already has. Keyed by name. The shared types (Epic, Story, Task, Bug, Sub-task, Client"},{"name":"set_project_parent","description":"Make an existing project a subproject of another, or take it back out with an empty parentKey. This is about ACCESS, not about names or issues: everyone who may"},{"name":"set_track","description":"Declare a track on a project, or edit the one that already has this tag. The tag is the LABEL issues carry to join it ('cherry-orchard'), so it cannot contain a"},{"name":"site_traffic","description":"How a project's website was visited, from the service that counts it: Google Search Console (clicks, impressions, ctr, position by query, page, country, device "},{"name":"unlink_issues","description":"Remove a link between two issues: name both ends (and, when more than one link joins them, the phrase — 'blocks', 'relates to'), or give the 'linkId' get_issue "},{"name":"unlink_wiki_page","description":"Remove the link between an issue and a wiki page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. Requires permission to edit the issue. The page its"},{"name":"update_comment","description":"Edit a comment on an issue: pass 'body' to replace the whole of it, or 'edits' to change part of it — exact find-and-replace against the comment as get_comments"},{"name":"update_credential","description":"Change a credential, by the id from list_credentials: its name, its value, or who may read it — each on its own, and only what you pass is touched, so taking so"},{"name":"update_issue","description":"Update an issue: any of summary, description, type, assignee, priority, labels, dueDate, parentKey, fixVersions, or status (which performs the transition, and f"},{"name":"update_project_rule","description":"Change a project rule, by its id from list_project_rules. Only what you pass changes: pass just 'enabled' to switch a rule on or off, or any of the others to ed"},{"name":"update_version","description":"Change a version: its name, description, days, or whether it is archived. Only what you pass is changed. A version is what a project's work goes out in — '2.4.0"},{"name":"update_wiki_comment","description":"Edit a comment on a wiki page — your own, or anyone's with full write access in that project. Read it first with get_wiki_page(withMarkdown: true), which gives "},{"name":"update_wiki_page","description":"Edit a wiki page: retitle it, change its body, move it under another parent (or to the top of its space), or set its labels. Identify it by 'id', or by 'spaceKe"},{"name":"upsert_mcp_connection","description":"Admin only: create or update a project's external MCP connection. Pass 'id' to update an existing one (omit to create). 'token' is stored server-side and never "},{"name":"withdraw_issue_question","description":"Take back a question you asked, when it no longer needs answering — you worked it out, or the task moved on. The comment stays in the thread (the conversation h"}],"toolCount":92,"toolsHash":"d0a81921d662a6b62eb5eade3b9142815633faf81f0518260e006e2702a34203","serverName":"kaiku","capabilities":["tools"],"serverVersion":"1.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T08:32:14.523Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":27,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"mcp\", resource_metadata=\"https://app.kaiku.tech/.well-known/oauth-protected-resource/mcp\""}},{"at":"2026-10-10T01:25:05.001Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":35,"error":null,"detail":{"tools":[{"name":"add_attachment","description":"Attach a file to an issue: pass its bytes as 'contentBase64', or its content as 'text' when the file is text. Attaching a filename the issue already has replace"},{"name":"add_comment","description":"Add a comment to an issue, or reply to one of its comments ('replyTo' is a comment id from get_comments). A reply notifies the author of the comment it answers,"},{"name":"add_wiki_attachment","description":"Attach a file to a wiki page, identified by 'pageId' or by 'spaceKey' + 'title': pass its bytes as 'contentBase64', or its content as 'text' when the file is te"},{"name":"add_wiki_comment","description":"Comment on a wiki page, or reply to one of its comments ('replyTo' is a comment id from get_wiki_page). A reply notifies the author of the comment it answers, w"},{"name":"admin_bank_transfer","description":"Administrators only: where a bank transfer is to be sent (PM-625) — beneficiary, account and its own currency, bank and SWIFT, the intermediary bank if there is"},{"name":"admin_errors_week","description":"Administrators only: the error collector's week — events and distinct errors per project against the week before, errors first seen that week with their release"},{"name":"admin_funnel","description":"Administrators only: the installation as a business over a period — registrations, how many of them became working companies, purchases and conversion by cohort"},{"name":"admin_invoices","description":"Administrators only: what companies were asked to pay and what answered it — each invoice with its amount, its coin, whether it is paid and what is short, and t"},{"name":"admin_landing_week","description":"Administrators only: the landing site's week — visits, where they came from, clicks on sign-up, and the registrations that followed. The same numbers the weekly"},{"name":"admin_load","description":"Administrators only: how loaded this machine is and what the language models cost. Load is this machine's own — database, streams, memory, processor, traffic an"},{"name":"admin_overview","description":"Administrators only: the whole installation by the numbers — accounts, workspaces, projects, issues, comments and sprints, plus issues broken down by status and"},{"name":"admin_set_bank_transfer","description":"Administrators only, and this one CHANGES things: state where bank transfers are to be sent. Send the WHOLE set every time — anything left out is cleared, not k"},{"name":"admin_workspace_journal","description":"Administrators only: what was done to one company and by whom — created, plan changed, period extended by hand, credited, suspended, resumed, erased — newest fi"},{"name":"admin_workspaces","description":"Administrators only: every company on the installation — its plan, what state it is in (trial, active, over-limit, suspended…), when what it paid for runs out, "},{"name":"answer_issue_question","description":"Answer a question that was put to you on an issue, by choosing one of its options. Only the person the question was addressed to may answer it; answering again "},{"name":"ask_issue_question","description":"Ask one person a question with pre-written answer options, in an issue's thread — the way to get a decision that does not get lost in the comment stream. The qu"},{"name":"check_checklist_item","description":"Tick or untick one checklist item by the 'id' get_checklist gave it. Written as a click on the item is: the same history line and the same notices to the issue'"},{"name":"create_credential","description":"Attach a secret — a password, a key, a test login — to an issue or a wiki page, instead of writing it in a comment or a description, where everyone on the proje"},{"name":"create_issue","description":"Create an issue in a project visible to this token. Returns the new issue key. Requires permission to create issues in that project. Answers with 'notified' (wh"},{"name":"create_project","description":"Administrators only: create a project — a new key, a starter board, and its own wiki space, led by you unless you name someone else. The key is yours to choose "},{"name":"create_project_rule","description":"Add a rule to a project: when an issue enters 'status', append 'template' to its description. A rule appends its checklist to an issue's description when the is"},{"name":"create_version","description":"Add a version to a project, at the end of its sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue ca"},{"name":"create_wiki_page","description":"Create a wiki page from Markdown in a space you can write to. Hangs off the space home page unless you name a parent (by 'parentId', or by 'parentTitle' within "},{"name":"decide_support_letter","description":"Decide what a held or failed letter to the support address is. 'release' files it as if it had just arrived, past the spam filter and the limits: it joins the r"},{"name":"delete_agent_usage","description":"Remove one agent-usage record from an issue, by the id that get_agent_usage returns. For correcting a record's numbers, re-send it with report_agent_usage inste"},{"name":"delete_attachment","description":"Remove a file from an issue, by 'filename' or by attachment 'id' — both come back from get_issue. Requires permission to edit issues in that project."},{"name":"delete_credential","description":"Remove a credential, by the id from list_credentials — the value, its reader list and the record of who read it go with it, and it cannot be brought back. Only "},{"name":"delete_project_field","description":"Remove a column from a project. Answers with how many issues lost a value, because that number is what the decision was about — the issues themselves are untouc"},{"name":"delete_project_issue_type","description":"Remove an issue type of this project's own. Refused while any issue is of it or any field is kept for it — change those first; a rule on it goes with it. Projec"},{"name":"delete_project_rule","description":"Remove a project rule, by its id from list_project_rules. Checklists it already added stay in their issues; its journal goes with it. To stop it for a while ins"},{"name":"delete_wiki_attachment","description":"Remove a file from a wiki page, by its 'filename' as listed by get_wiki_page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. References to it in the"},{"name":"delete_wiki_page","description":"Delete a wiki page. Identify it by 'id', or by 'spaceKey' + 'title'. A page with children takes its whole subtree with it, so that is refused unless you pass in"},{"name":"get_agent_usage","description":"What background-agent runs have cost an issue (local or mirrored/upstream): one record per run (tokens by kind, machine time, agent/model/host) plus the totals."},{"name":"get_attachment","description":"Read one file attached to an issue — its bytes, base64-encoded — by the issue key and the 'filename' as get_issue lists it. The bytes travel as text through the"},{"name":"get_change","description":"The files one merge request, pull request or commit touches, with their diffs. Large diffs arrive cut."},{"name":"get_checklist","description":"Read an issue's checklist — the '- [ ]' lines of its description — as items, in order: each with a stable 'id' (pass it to check_checklist_item), 'checked', its"},{"name":"get_comments","description":"Read the discussion on an issue, oldest first. Without 'startAt' you get the END of the thread — the most recent 'limit' comments — because catching up means re"},{"name":"get_issue","description":"Get one issue by key (e.g. 'UK-1') if it is visible to this token, including its description, status, assignee, labels, sub-tasks, the issues it is linked to an"},{"name":"get_project_rule_runs","description":"A project rule's journal, newest first: each time an issue entered the rule's state and matched its conditions — which issue, who moved it, and the outcome: 'ap"},{"name":"get_started","description":"What this company and one of its projects could still set up in the tracker, and what is set up already — call it when the person has just started or asks what "},{"name":"get_support_letter","description":"Read one letter to the support address whole — the quoted thread and the signature that the request's comment leaves out, the HTML part as text, and the headers"},{"name":"get_support_request","description":"Read who is behind a support request: the requester's name and email, whether they asked signed in (and from which workspace), their client version, what the pr"},{"name":"get_wiki_attachment","description":"Read one file attached to a wiki page — its bytes, base64-encoded — identifying the page by 'pageId' or by 'spaceKey' + 'title' and the file by 'filename' as ge"},{"name":"get_wiki_page","description":"Get one wiki page by id, or by space key + title, if it is visible to this token. Returns the page text, its labels, its parent and child pages, its comments, a"},{"name":"link_issues","description":"Link two issues: link_issues('PM-419', 'PM-417', 'is blocked by') records that PM-419 is blocked by PM-417. 'type' is the PHRASE, said as a person says it — 'bl"},{"name":"link_wiki_page","description":"Link a wiki page to an issue. The link then shows on both the issue and the page, and survives the page being renamed or moved. Identify the page by 'pageId', o"},{"name":"list_code","description":"List a directory of a repository connected to a project. Only repositories whose owners opened them to agents can be read."},{"name":"list_credentials","description":"List the credentials attached to an issue or a wiki page that this token may read — names and who attached them, never the values. Pass issueKey or pageId. Use "},{"name":"list_environments","description":"A project's environments, in order, and its ten newest deployments. An environment is one of the places a project's work is put out to — 'dev', 'staging', 'prod"},{"name":"list_issue_questions","description":"Questions with answer options, in either direction: what is waiting on YOU to answer (role='to_me'), what YOU asked and are waiting on somebody for (role='asked"},{"name":"list_legal_library","description":"List the acts in the legal library — what this installation's agents have already read off the official sites: url, title, the day the text is as of (fetched_at"},{"name":"list_mcp_connections","description":"List the external MCP connections configured for a project. Auth tokens are never returned (only whether one is set)."},{"name":"list_project_fields","description":"The columns a project keeps about its issues: name, kind, and a list's options with their colours. Also the customfield_… name each one answers to, for searchin"},{"name":"list_project_rules","description":"A project's rules: when an issue enters a state, a checklist from a template is appended to its description. A rule appends its checklist to an issue's descript"},{"name":"list_projects","description":"List the projects visible to this token (a project-scoped token sees only its project). A project with a 'parent' is a subproject of that one: it has its own is"},{"name":"list_support_letters","description":"List letters to the support address that did not become part of a request: 'held' (looked like spam, or too many at once from one address or on one request), 'f"},{"name":"list_support_queue","description":"The support desk's queue: open requests, the most urgent first — overdue, then due soonest, then those waiting on their requester. Each item says whose turn it "},{"name":"list_tracks","description":"The tracks a project is cut into: a track is a LABEL the project declared meaningful — a play, a campaign, a rollout — and work joins one by carrying that label"},{"name":"list_users","description":"List the people you can assign work to or mention: the members of the projects this token can see. Optionally filter by free text (username, display name or ema"},{"name":"list_versions","description":"A project's versions, in their sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue carries versions "},{"name":"list_wiki_spaces","description":"List the wiki spaces visible to this token. Every project has exactly one space, keyed like the project."},{"name":"local_files_setup","description":"How the person connects pm-files — a small local MCP server that attaches files from their own computer to issues and wiki pages by path, and saves attachments "},{"name":"move_issue","description":"Move an issue into another project, taking its comments, history, attachments, links and sub-tasks with it. The key does NOT change: 'PM-12' stays 'PM-12' where"},{"name":"read_code","description":"Read one file from a repository connected to a project. A long file arrives cut and says so; generated and binary files are not read."},{"name":"release_version","description":"Mark a version released — or, with released=false, take the mark back. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's o"},{"name":"remove_track","description":"Undeclare a track. THE LABEL STAYS ON THE WORK: what goes is the declaration, so the issues keep their tag and declaring the track again brings exactly the same"},{"name":"reply_to_requester","description":"Write to the person who opened a support request. The text becomes a comment the requester can read on their page and is emailed to them — unlike add_comment, w"},{"name":"report_agent_usage","description":"Record what one agent run cost an issue (local or mirrored/upstream): tokens by kind and machine time. Re-sending the same 'source' + 'externalId' updates that "},{"name":"report_deployment","description":"Say that something was deployed to one of a project's environments — the call a pipeline step makes. An environment is one of the places a project's work is put"},{"name":"reveal_credential","description":"Read one credential's value, by the id from list_credentials. This is the same act as pressing reveal on the screen and carries the same cost: it is recorded ag"},{"name":"search_code","description":"Find where a string appears in the code of the repositories connected to a project, with the file, the line number and the lines around it. Only repositories wh"},{"name":"search_issues","description":"Search the issues visible to this token, with a JQL query — the same JQL the Jira REST surface takes, read by the same parser. A query naming a field this track"},{"name":"search_legal_library","description":"Search the laws, regulations and standards this installation's agents have already read off the official sites (EUR-Lex, legislation.gov.uk, Fedlex, FATF and ot"},{"name":"search_wiki","description":"Search wiki pages visible to this token by free text (matched in the title, the body, and the labels written on an attached SVG diagram). Optionally restrict to"},{"name":"set_environments","description":"Make a project's environments exactly this list, in this order — the last is where finished work ends up. An environment is one of the places a project's work i"},{"name":"set_issue_fields","description":"Fill in a project's own columns on one issue, by their NAMES: 'Segment=AI; Country=Poland; Started=2026-08-01', or a JSON object. A country column takes the cou"},{"name":"set_project_field","description":"Add a column to a project, or edit the one that already has this name. Keyed by name rather than by id: 'make sure there is a Segment field with these options' "},{"name":"set_project_issue_type","description":"Add an issue type of this project's own — e.g. 'Показ' — or rename one it already has. Keyed by name. The shared types (Epic, Story, Task, Bug, Sub-task, Client"},{"name":"set_project_parent","description":"Make an existing project a subproject of another, or take it back out with an empty parentKey. This is about ACCESS, not about names or issues: everyone who may"},{"name":"set_track","description":"Declare a track on a project, or edit the one that already has this tag. The tag is the LABEL issues carry to join it ('cherry-orchard'), so it cannot contain a"},{"name":"site_traffic","description":"How a project's website was visited, from the service that counts it: Google Search Console (clicks, impressions, ctr, position by query, page, country, device "},{"name":"unlink_issues","description":"Remove a link between two issues: name both ends (and, when more than one link joins them, the phrase — 'blocks', 'relates to'), or give the 'linkId' get_issue "},{"name":"unlink_wiki_page","description":"Remove the link between an issue and a wiki page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. Requires permission to edit the issue. The page its"},{"name":"update_comment","description":"Edit a comment on an issue: pass 'body' to replace the whole of it, or 'edits' to change part of it — exact find-and-replace against the comment as get_comments"},{"name":"update_credential","description":"Change a credential, by the id from list_credentials: its name, its value, or who may read it — each on its own, and only what you pass is touched, so taking so"},{"name":"update_issue","description":"Update an issue: any of summary, description, type, assignee, priority, labels, dueDate, parentKey, fixVersions, or status (which performs the transition, and f"},{"name":"update_project_rule","description":"Change a project rule, by its id from list_project_rules. Only what you pass changes: pass just 'enabled' to switch a rule on or off, or any of the others to ed"},{"name":"update_version","description":"Change a version: its name, description, days, or whether it is archived. Only what you pass is changed. A version is what a project's work goes out in — '2.4.0"},{"name":"update_wiki_comment","description":"Edit a comment on a wiki page — your own, or anyone's with full write access in that project. Read it first with get_wiki_page(withMarkdown: true), which gives "},{"name":"update_wiki_page","description":"Edit a wiki page: retitle it, change its body, move it under another parent (or to the top of its space), or set its labels. Identify it by 'id', or by 'spaceKe"},{"name":"upsert_mcp_connection","description":"Admin only: create or update a project's external MCP connection. Pass 'id' to update an existing one (omit to create). 'token' is stored server-side and never "},{"name":"withdraw_issue_question","description":"Take back a question you asked, when it no longer needs answering — you worked it out, or the task moved on. The comment stays in the thread (the conversation h"}],"toolCount":92,"toolsHash":"d0a81921d662a6b62eb5eade3b9142815633faf81f0518260e006e2702a34203","serverName":"kaiku","capabilities":["tools"],"serverVersion":"1.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T01:25:01.211Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":24,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"mcp\", resource_metadata=\"https://app.kaiku.tech/.well-known/oauth-protected-resource/mcp\""}},{"at":"2026-10-09T18:27:12.619Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":31,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"mcp\", resource_metadata=\"https://app.kaiku.tech/.well-known/oauth-protected-resource/mcp\""}},{"at":"2026-10-09T18:25:22.761Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":27,"error":null,"detail":{"tools":[{"name":"add_attachment","description":"Attach a file to an issue: pass its bytes as 'contentBase64', or its content as 'text' when the file is text. Attaching a filename the issue already has replace"},{"name":"add_comment","description":"Add a comment to an issue, or reply to one of its comments ('replyTo' is a comment id from get_comments). A reply notifies the author of the comment it answers,"},{"name":"add_wiki_attachment","description":"Attach a file to a wiki page, identified by 'pageId' or by 'spaceKey' + 'title': pass its bytes as 'contentBase64', or its content as 'text' when the file is te"},{"name":"add_wiki_comment","description":"Comment on a wiki page, or reply to one of its comments ('replyTo' is a comment id from get_wiki_page). A reply notifies the author of the comment it answers, w"},{"name":"admin_bank_transfer","description":"Administrators only: where a bank transfer is to be sent (PM-625) — beneficiary, account and its own currency, bank and SWIFT, the intermediary bank if there is"},{"name":"admin_errors_week","description":"Administrators only: the error collector's week — events and distinct errors per project against the week before, errors first seen that week with their release"},{"name":"admin_funnel","description":"Administrators only: the installation as a business over a period — registrations, how many of them became working companies, purchases and conversion by cohort"},{"name":"admin_invoices","description":"Administrators only: what companies were asked to pay and what answered it — each invoice with its amount, its coin, whether it is paid and what is short, and t"},{"name":"admin_landing_week","description":"Administrators only: the landing site's week — visits, where they came from, clicks on sign-up, and the registrations that followed. The same numbers the weekly"},{"name":"admin_load","description":"Administrators only: how loaded this machine is and what the language models cost. Load is this machine's own — database, streams, memory, processor, traffic an"},{"name":"admin_overview","description":"Administrators only: the whole installation by the numbers — accounts, workspaces, projects, issues, comments and sprints, plus issues broken down by status and"},{"name":"admin_set_bank_transfer","description":"Administrators only, and this one CHANGES things: state where bank transfers are to be sent. Send the WHOLE set every time — anything left out is cleared, not k"},{"name":"admin_workspace_journal","description":"Administrators only: what was done to one company and by whom — created, plan changed, period extended by hand, credited, suspended, resumed, erased — newest fi"},{"name":"admin_workspaces","description":"Administrators only: every company on the installation — its plan, what state it is in (trial, active, over-limit, suspended…), when what it paid for runs out, "},{"name":"answer_issue_question","description":"Answer a question that was put to you on an issue, by choosing one of its options. Only the person the question was addressed to may answer it; answering again "},{"name":"ask_issue_question","description":"Ask one person a question with pre-written answer options, in an issue's thread — the way to get a decision that does not get lost in the comment stream. The qu"},{"name":"check_checklist_item","description":"Tick or untick one checklist item by the 'id' get_checklist gave it. Written as a click on the item is: the same history line and the same notices to the issue'"},{"name":"create_credential","description":"Attach a secret — a password, a key, a test login — to an issue or a wiki page, instead of writing it in a comment or a description, where everyone on the proje"},{"name":"create_issue","description":"Create an issue in a project visible to this token. Returns the new issue key. Requires permission to create issues in that project. Answers with 'notified' (wh"},{"name":"create_project","description":"Administrators only: create a project — a new key, a starter board, and its own wiki space, led by you unless you name someone else. The key is yours to choose "},{"name":"create_project_rule","description":"Add a rule to a project: when an issue enters 'status', append 'template' to its description. A rule appends its checklist to an issue's description when the is"},{"name":"create_version","description":"Add a version to a project, at the end of its sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue ca"},{"name":"create_wiki_page","description":"Create a wiki page from Markdown in a space you can write to. Hangs off the space home page unless you name a parent (by 'parentId', or by 'parentTitle' within "},{"name":"decide_support_letter","description":"Decide what a held or failed letter to the support address is. 'release' files it as if it had just arrived, past the spam filter and the limits: it joins the r"},{"name":"delete_agent_usage","description":"Remove one agent-usage record from an issue, by the id that get_agent_usage returns. For correcting a record's numbers, re-send it with report_agent_usage inste"},{"name":"delete_attachment","description":"Remove a file from an issue, by 'filename' or by attachment 'id' — both come back from get_issue. Requires permission to edit issues in that project."},{"name":"delete_credential","description":"Remove a credential, by the id from list_credentials — the value, its reader list and the record of who read it go with it, and it cannot be brought back. Only "},{"name":"delete_project_field","description":"Remove a column from a project. Answers with how many issues lost a value, because that number is what the decision was about — the issues themselves are untouc"},{"name":"delete_project_issue_type","description":"Remove an issue type of this project's own. Refused while any issue is of it or any field is kept for it — change those first; a rule on it goes with it. Projec"},{"name":"delete_project_rule","description":"Remove a project rule, by its id from list_project_rules. Checklists it already added stay in their issues; its journal goes with it. To stop it for a while ins"},{"name":"delete_wiki_attachment","description":"Remove a file from a wiki page, by its 'filename' as listed by get_wiki_page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. References to it in the"},{"name":"delete_wiki_page","description":"Delete a wiki page. Identify it by 'id', or by 'spaceKey' + 'title'. A page with children takes its whole subtree with it, so that is refused unless you pass in"},{"name":"get_agent_usage","description":"What background-agent runs have cost an issue (local or mirrored/upstream): one record per run (tokens by kind, machine time, agent/model/host) plus the totals."},{"name":"get_attachment","description":"Read one file attached to an issue — its bytes, base64-encoded — by the issue key and the 'filename' as get_issue lists it. The bytes travel as text through the"},{"name":"get_change","description":"The files one merge request, pull request or commit touches, with their diffs. Large diffs arrive cut."},{"name":"get_checklist","description":"Read an issue's checklist — the '- [ ]' lines of its description — as items, in order: each with a stable 'id' (pass it to check_checklist_item), 'checked', its"},{"name":"get_comments","description":"Read the discussion on an issue, oldest first. Without 'startAt' you get the END of the thread — the most recent 'limit' comments — because catching up means re"},{"name":"get_issue","description":"Get one issue by key (e.g. 'UK-1') if it is visible to this token, including its description, status, assignee, labels, sub-tasks, the issues it is linked to an"},{"name":"get_project_rule_runs","description":"A project rule's journal, newest first: each time an issue entered the rule's state and matched its conditions — which issue, who moved it, and the outcome: 'ap"},{"name":"get_started","description":"What this company and one of its projects could still set up in the tracker, and what is set up already — call it when the person has just started or asks what "},{"name":"get_support_letter","description":"Read one letter to the support address whole — the quoted thread and the signature that the request's comment leaves out, the HTML part as text, and the headers"},{"name":"get_support_request","description":"Read who is behind a support request: the requester's name and email, whether they asked signed in (and from which workspace), their client version, what the pr"},{"name":"get_wiki_attachment","description":"Read one file attached to a wiki page — its bytes, base64-encoded — identifying the page by 'pageId' or by 'spaceKey' + 'title' and the file by 'filename' as ge"},{"name":"get_wiki_page","description":"Get one wiki page by id, or by space key + title, if it is visible to this token. Returns the page text, its labels, its parent and child pages, its comments, a"},{"name":"link_issues","description":"Link two issues: link_issues('PM-419', 'PM-417', 'is blocked by') records that PM-419 is blocked by PM-417. 'type' is the PHRASE, said as a person says it — 'bl"},{"name":"link_wiki_page","description":"Link a wiki page to an issue. The link then shows on both the issue and the page, and survives the page being renamed or moved. Identify the page by 'pageId', o"},{"name":"list_code","description":"List a directory of a repository connected to a project. Only repositories whose owners opened them to agents can be read."},{"name":"list_credentials","description":"List the credentials attached to an issue or a wiki page that this token may read — names and who attached them, never the values. Pass issueKey or pageId. Use "},{"name":"list_environments","description":"A project's environments, in order, and its ten newest deployments. An environment is one of the places a project's work is put out to — 'dev', 'staging', 'prod"},{"name":"list_issue_questions","description":"Questions with answer options, in either direction: what is waiting on YOU to answer (role='to_me'), what YOU asked and are waiting on somebody for (role='asked"},{"name":"list_legal_library","description":"List the acts in the legal library — what this installation's agents have already read off the official sites: url, title, the day the text is as of (fetched_at"},{"name":"list_mcp_connections","description":"List the external MCP connections configured for a project. Auth tokens are never returned (only whether one is set)."},{"name":"list_project_fields","description":"The columns a project keeps about its issues: name, kind, and a list's options with their colours. Also the customfield_… name each one answers to, for searchin"},{"name":"list_project_rules","description":"A project's rules: when an issue enters a state, a checklist from a template is appended to its description. A rule appends its checklist to an issue's descript"},{"name":"list_projects","description":"List the projects visible to this token (a project-scoped token sees only its project). A project with a 'parent' is a subproject of that one: it has its own is"},{"name":"list_support_letters","description":"List letters to the support address that did not become part of a request: 'held' (looked like spam, or too many at once from one address or on one request), 'f"},{"name":"list_support_queue","description":"The support desk's queue: open requests, the most urgent first — overdue, then due soonest, then those waiting on their requester. Each item says whose turn it "},{"name":"list_tracks","description":"The tracks a project is cut into: a track is a LABEL the project declared meaningful — a play, a campaign, a rollout — and work joins one by carrying that label"},{"name":"list_users","description":"List the people you can assign work to or mention: the members of the projects this token can see. Optionally filter by free text (username, display name or ema"},{"name":"list_versions","description":"A project's versions, in their sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue carries versions "},{"name":"list_wiki_spaces","description":"List the wiki spaces visible to this token. Every project has exactly one space, keyed like the project."},{"name":"local_files_setup","description":"How the person connects pm-files — a small local MCP server that attaches files from their own computer to issues and wiki pages by path, and saves attachments "},{"name":"move_issue","description":"Move an issue into another project, taking its comments, history, attachments, links and sub-tasks with it. The key does NOT change: 'PM-12' stays 'PM-12' where"},{"name":"read_code","description":"Read one file from a repository connected to a project. A long file arrives cut and says so; generated and binary files are not read."},{"name":"release_version","description":"Mark a version released — or, with released=false, take the mark back. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's o"},{"name":"remove_track","description":"Undeclare a track. THE LABEL STAYS ON THE WORK: what goes is the declaration, so the issues keep their tag and declaring the track again brings exactly the same"},{"name":"reply_to_requester","description":"Write to the person who opened a support request. The text becomes a comment the requester can read on their page and is emailed to them — unlike add_comment, w"},{"name":"report_agent_usage","description":"Record what one agent run cost an issue (local or mirrored/upstream): tokens by kind and machine time. Re-sending the same 'source' + 'externalId' updates that "},{"name":"report_deployment","description":"Say that something was deployed to one of a project's environments — the call a pipeline step makes. An environment is one of the places a project's work is put"},{"name":"reveal_credential","description":"Read one credential's value, by the id from list_credentials. This is the same act as pressing reveal on the screen and carries the same cost: it is recorded ag"},{"name":"search_code","description":"Find where a string appears in the code of the repositories connected to a project, with the file, the line number and the lines around it. Only repositories wh"},{"name":"search_issues","description":"Search the issues visible to this token, with a JQL query — the same JQL the Jira REST surface takes, read by the same parser. A query naming a field this track"},{"name":"search_legal_library","description":"Search the laws, regulations and standards this installation's agents have already read off the official sites (EUR-Lex, legislation.gov.uk, Fedlex, FATF and ot"},{"name":"search_wiki","description":"Search wiki pages visible to this token by free text (matched in the title, the body, and the labels written on an attached SVG diagram). Optionally restrict to"},{"name":"set_environments","description":"Make a project's environments exactly this list, in this order — the last is where finished work ends up. An environment is one of the places a project's work i"},{"name":"set_issue_fields","description":"Fill in a project's own columns on one issue, by their NAMES: 'Segment=AI; Country=Poland; Started=2026-08-01', or a JSON object. A country column takes the cou"},{"name":"set_project_field","description":"Add a column to a project, or edit the one that already has this name. Keyed by name rather than by id: 'make sure there is a Segment field with these options' "},{"name":"set_project_issue_type","description":"Add an issue type of this project's own — e.g. 'Показ' — or rename one it already has. Keyed by name. The shared types (Epic, Story, Task, Bug, Sub-task, Client"},{"name":"set_project_parent","description":"Make an existing project a subproject of another, or take it back out with an empty parentKey. This is about ACCESS, not about names or issues: everyone who may"},{"name":"set_track","description":"Declare a track on a project, or edit the one that already has this tag. The tag is the LABEL issues carry to join it ('cherry-orchard'), so it cannot contain a"},{"name":"site_traffic","description":"How a project's website was visited, from the service that counts it: Google Search Console (clicks, impressions, ctr, position by query, page, country, device "},{"name":"unlink_issues","description":"Remove a link between two issues: name both ends (and, when more than one link joins them, the phrase — 'blocks', 'relates to'), or give the 'linkId' get_issue "},{"name":"unlink_wiki_page","description":"Remove the link between an issue and a wiki page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. Requires permission to edit the issue. The page its"},{"name":"update_comment","description":"Edit a comment on an issue: pass 'body' to replace the whole of it, or 'edits' to change part of it — exact find-and-replace against the comment as get_comments"},{"name":"update_credential","description":"Change a credential, by the id from list_credentials: its name, its value, or who may read it — each on its own, and only what you pass is touched, so taking so"},{"name":"update_issue","description":"Update an issue: any of summary, description, type, assignee, priority, labels, dueDate, parentKey, fixVersions, or status (which performs the transition, and f"},{"name":"update_project_rule","description":"Change a project rule, by its id from list_project_rules. Only what you pass changes: pass just 'enabled' to switch a rule on or off, or any of the others to ed"},{"name":"update_version","description":"Change a version: its name, description, days, or whether it is archived. Only what you pass is changed. A version is what a project's work goes out in — '2.4.0"},{"name":"update_wiki_comment","description":"Edit a comment on a wiki page — your own, or anyone's with full write access in that project. Read it first with get_wiki_page(withMarkdown: true), which gives "},{"name":"update_wiki_page","description":"Edit a wiki page: retitle it, change its body, move it under another parent (or to the top of its space), or set its labels. Identify it by 'id', or by 'spaceKe"},{"name":"upsert_mcp_connection","description":"Admin only: create or update a project's external MCP connection. Pass 'id' to update an existing one (omit to create). 'token' is stored server-side and never "},{"name":"withdraw_issue_question","description":"Take back a question you asked, when it no longer needs answering — you worked it out, or the task moved on. The comment stays in the thread (the conversation h"}],"toolCount":92,"toolsHash":"d0a81921d662a6b62eb5eade3b9142815633faf81f0518260e006e2702a34203","serverName":"kaiku","capabilities":["tools"],"serverVersion":"1.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T12:30:09.227Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":64,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"mcp\", resource_metadata=\"https://app.kaiku.tech/.well-known/oauth-protected-resource/mcp\""}},{"at":"2026-10-09T11:27:17.459Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":29,"error":null,"detail":{"tools":[{"name":"add_attachment","description":"Attach a file to an issue: pass its bytes as 'contentBase64', or its content as 'text' when the file is text. Attaching a filename the issue already has replace"},{"name":"add_comment","description":"Add a comment to an issue, or reply to one of its comments ('replyTo' is a comment id from get_comments). A reply notifies the author of the comment it answers,"},{"name":"add_wiki_attachment","description":"Attach a file to a wiki page, identified by 'pageId' or by 'spaceKey' + 'title': pass its bytes as 'contentBase64', or its content as 'text' when the file is te"},{"name":"add_wiki_comment","description":"Comment on a wiki page, or reply to one of its comments ('replyTo' is a comment id from get_wiki_page). A reply notifies the author of the comment it answers, w"},{"name":"admin_bank_transfer","description":"Administrators only: where a bank transfer is to be sent (PM-625) — beneficiary, account and its own currency, bank and SWIFT, the intermediary bank if there is"},{"name":"admin_errors_week","description":"Administrators only: the error collector's week — events and distinct errors per project against the week before, errors first seen that week with their release"},{"name":"admin_funnel","description":"Administrators only: the installation as a business over a period — registrations, how many of them became working companies, purchases and conversion by cohort"},{"name":"admin_invoices","description":"Administrators only: what companies were asked to pay and what answered it — each invoice with its amount, its coin, whether it is paid and what is short, and t"},{"name":"admin_landing_week","description":"Administrators only: the landing site's week — visits, where they came from, clicks on sign-up, and the registrations that followed. The same numbers the weekly"},{"name":"admin_load","description":"Administrators only: how loaded this machine is and what the language models cost. Load is this machine's own — database, streams, memory, processor, traffic an"},{"name":"admin_overview","description":"Administrators only: the whole installation by the numbers — accounts, workspaces, projects, issues, comments and sprints, plus issues broken down by status and"},{"name":"admin_set_bank_transfer","description":"Administrators only, and this one CHANGES things: state where bank transfers are to be sent. Send the WHOLE set every time — anything left out is cleared, not k"},{"name":"admin_workspace_journal","description":"Administrators only: what was done to one company and by whom — created, plan changed, period extended by hand, credited, suspended, resumed, erased — newest fi"},{"name":"admin_workspaces","description":"Administrators only: every company on the installation — its plan, what state it is in (trial, active, over-limit, suspended…), when what it paid for runs out, "},{"name":"answer_issue_question","description":"Answer a question that was put to you on an issue, by choosing one of its options. Only the person the question was addressed to may answer it; answering again "},{"name":"ask_issue_question","description":"Ask one person a question with pre-written answer options, in an issue's thread — the way to get a decision that does not get lost in the comment stream. The qu"},{"name":"check_checklist_item","description":"Tick or untick one checklist item by the 'id' get_checklist gave it. Written as a click on the item is: the same history line and the same notices to the issue'"},{"name":"create_credential","description":"Attach a secret — a password, a key, a test login — to an issue or a wiki page, instead of writing it in a comment or a description, where everyone on the proje"},{"name":"create_issue","description":"Create an issue in a project visible to this token. Returns the new issue key. Requires permission to create issues in that project. Answers with 'notified' (wh"},{"name":"create_project","description":"Administrators only: create a project — a new key, a starter board, and its own wiki space, led by you unless you name someone else. The key is yours to choose "},{"name":"create_project_rule","description":"Add a rule to a project: when an issue enters 'status', append 'template' to its description. A rule appends its checklist to an issue's description when the is"},{"name":"create_version","description":"Add a version to a project, at the end of its sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue ca"},{"name":"create_wiki_page","description":"Create a wiki page from Markdown in a space you can write to. Hangs off the space home page unless you name a parent (by 'parentId', or by 'parentTitle' within "},{"name":"decide_support_letter","description":"Decide what a held or failed letter to the support address is. 'release' files it as if it had just arrived, past the spam filter and the limits: it joins the r"},{"name":"delete_agent_usage","description":"Remove one agent-usage record from an issue, by the id that get_agent_usage returns. For correcting a record's numbers, re-send it with report_agent_usage inste"},{"name":"delete_attachment","description":"Remove a file from an issue, by 'filename' or by attachment 'id' — both come back from get_issue. Requires permission to edit issues in that project."},{"name":"delete_credential","description":"Remove a credential, by the id from list_credentials — the value, its reader list and the record of who read it go with it, and it cannot be brought back. Only "},{"name":"delete_project_field","description":"Remove a column from a project. Answers with how many issues lost a value, because that number is what the decision was about — the issues themselves are untouc"},{"name":"delete_project_issue_type","description":"Remove an issue type of this project's own. Refused while any issue is of it or any field is kept for it — change those first; a rule on it goes with it. Projec"},{"name":"delete_project_rule","description":"Remove a project rule, by its id from list_project_rules. Checklists it already added stay in their issues; its journal goes with it. To stop it for a while ins"},{"name":"delete_wiki_attachment","description":"Remove a file from a wiki page, by its 'filename' as listed by get_wiki_page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. References to it in the"},{"name":"delete_wiki_page","description":"Delete a wiki page. Identify it by 'id', or by 'spaceKey' + 'title'. A page with children takes its whole subtree with it, so that is refused unless you pass in"},{"name":"get_agent_usage","description":"What background-agent runs have cost an issue (local or mirrored/upstream): one record per run (tokens by kind, machine time, agent/model/host) plus the totals."},{"name":"get_attachment","description":"Read one file attached to an issue — its bytes, base64-encoded — by the issue key and the 'filename' as get_issue lists it. The bytes travel as text through the"},{"name":"get_change","description":"The files one merge request, pull request or commit touches, with their diffs. Large diffs arrive cut."},{"name":"get_checklist","description":"Read an issue's checklist — the '- [ ]' lines of its description — as items, in order: each with a stable 'id' (pass it to check_checklist_item), 'checked', its"},{"name":"get_comments","description":"Read the discussion on an issue, oldest first. Without 'startAt' you get the END of the thread — the most recent 'limit' comments — because catching up means re"},{"name":"get_issue","description":"Get one issue by key (e.g. 'UK-1') if it is visible to this token, including its description, status, assignee, labels, sub-tasks, the issues it is linked to an"},{"name":"get_project_rule_runs","description":"A project rule's journal, newest first: each time an issue entered the rule's state and matched its conditions — which issue, who moved it, and the outcome: 'ap"},{"name":"get_started","description":"What this company and one of its projects could still set up in the tracker, and what is set up already — call it when the person has just started or asks what "},{"name":"get_support_letter","description":"Read one letter to the support address whole — the quoted thread and the signature that the request's comment leaves out, the HTML part as text, and the headers"},{"name":"get_support_request","description":"Read who is behind a support request: the requester's name and email, whether they asked signed in (and from which workspace), their client version, what the pr"},{"name":"get_wiki_attachment","description":"Read one file attached to a wiki page — its bytes, base64-encoded — identifying the page by 'pageId' or by 'spaceKey' + 'title' and the file by 'filename' as ge"},{"name":"get_wiki_page","description":"Get one wiki page by id, or by space key + title, if it is visible to this token. Returns the page text, its labels, its parent and child pages, its comments, a"},{"name":"link_issues","description":"Link two issues: link_issues('PM-419', 'PM-417', 'is blocked by') records that PM-419 is blocked by PM-417. 'type' is the PHRASE, said as a person says it — 'bl"},{"name":"link_wiki_page","description":"Link a wiki page to an issue. The link then shows on both the issue and the page, and survives the page being renamed or moved. Identify the page by 'pageId', o"},{"name":"list_code","description":"List a directory of a repository connected to a project. Only repositories whose owners opened them to agents can be read."},{"name":"list_credentials","description":"List the credentials attached to an issue or a wiki page that this token may read — names and who attached them, never the values. Pass issueKey or pageId. Use "},{"name":"list_environments","description":"A project's environments, in order, and its ten newest deployments. An environment is one of the places a project's work is put out to — 'dev', 'staging', 'prod"},{"name":"list_issue_questions","description":"Questions with answer options, in either direction: what is waiting on YOU to answer (role='to_me'), what YOU asked and are waiting on somebody for (role='asked"},{"name":"list_legal_library","description":"List the acts in the legal library — what this installation's agents have already read off the official sites: url, title, the day the text is as of (fetched_at"},{"name":"list_mcp_connections","description":"List the external MCP connections configured for a project. Auth tokens are never returned (only whether one is set)."},{"name":"list_project_fields","description":"The columns a project keeps about its issues: name, kind, and a list's options with their colours. Also the customfield_… name each one answers to, for searchin"},{"name":"list_project_rules","description":"A project's rules: when an issue enters a state, a checklist from a template is appended to its description. A rule appends its checklist to an issue's descript"},{"name":"list_projects","description":"List the projects visible to this token (a project-scoped token sees only its project). A project with a 'parent' is a subproject of that one: it has its own is"},{"name":"list_support_letters","description":"List letters to the support address that did not become part of a request: 'held' (looked like spam, or too many at once from one address or on one request), 'f"},{"name":"list_support_queue","description":"The support desk's queue: open requests, the most urgent first — overdue, then due soonest, then those waiting on their requester. Each item says whose turn it "},{"name":"list_tracks","description":"The tracks a project is cut into: a track is a LABEL the project declared meaningful — a play, a campaign, a rollout — and work joins one by carrying that label"},{"name":"list_users","description":"List the people you can assign work to or mention: the members of the projects this token can see. Optionally filter by free text (username, display name or ema"},{"name":"list_versions","description":"A project's versions, in their sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue carries versions "},{"name":"list_wiki_spaces","description":"List the wiki spaces visible to this token. Every project has exactly one space, keyed like the project."},{"name":"local_files_setup","description":"How the person connects pm-files — a small local MCP server that attaches files from their own computer to issues and wiki pages by path, and saves attachments "},{"name":"move_issue","description":"Move an issue into another project, taking its comments, history, attachments, links and sub-tasks with it. The key does NOT change: 'PM-12' stays 'PM-12' where"},{"name":"read_code","description":"Read one file from a repository connected to a project. A long file arrives cut and says so; generated and binary files are not read."},{"name":"release_version","description":"Mark a version released — or, with released=false, take the mark back. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's o"},{"name":"remove_track","description":"Undeclare a track. THE LABEL STAYS ON THE WORK: what goes is the declaration, so the issues keep their tag and declaring the track again brings exactly the same"},{"name":"reply_to_requester","description":"Write to the person who opened a support request. The text becomes a comment the requester can read on their page and is emailed to them — unlike add_comment, w"},{"name":"report_agent_usage","description":"Record what one agent run cost an issue (local or mirrored/upstream): tokens by kind and machine time. Re-sending the same 'source' + 'externalId' updates that "},{"name":"report_deployment","description":"Say that something was deployed to one of a project's environments — the call a pipeline step makes. An environment is one of the places a project's work is put"},{"name":"reveal_credential","description":"Read one credential's value, by the id from list_credentials. This is the same act as pressing reveal on the screen and carries the same cost: it is recorded ag"},{"name":"search_code","description":"Find where a string appears in the code of the repositories connected to a project, with the file, the line number and the lines around it. Only repositories wh"},{"name":"search_issues","description":"Search the issues visible to this token, with a JQL query — the same JQL the Jira REST surface takes, read by the same parser. A query naming a field this track"},{"name":"search_legal_library","description":"Search the laws, regulations and standards this installation's agents have already read off the official sites (EUR-Lex, legislation.gov.uk, Fedlex, FATF and ot"},{"name":"search_wiki","description":"Search wiki pages visible to this token by free text (matched in the title, the body, and the labels written on an attached SVG diagram). Optionally restrict to"},{"name":"set_environments","description":"Make a project's environments exactly this list, in this order — the last is where finished work ends up. An environment is one of the places a project's work i"},{"name":"set_issue_fields","description":"Fill in a project's own columns on one issue, by their NAMES: 'Segment=AI; Country=Poland; Started=2026-08-01', or a JSON object. A country column takes the cou"},{"name":"set_project_field","description":"Add a column to a project, or edit the one that already has this name. Keyed by name rather than by id: 'make sure there is a Segment field with these options' "},{"name":"set_project_issue_type","description":"Add an issue type of this project's own — e.g. 'Показ' — or rename one it already has. Keyed by name. The shared types (Epic, Story, Task, Bug, Sub-task, Client"},{"name":"set_project_parent","description":"Make an existing project a subproject of another, or take it back out with an empty parentKey. This is about ACCESS, not about names or issues: everyone who may"},{"name":"set_track","description":"Declare a track on a project, or edit the one that already has this tag. The tag is the LABEL issues carry to join it ('cherry-orchard'), so it cannot contain a"},{"name":"site_traffic","description":"How a project's website was visited, from the service that counts it: Google Search Console (clicks, impressions, ctr, position by query, page, country, device "},{"name":"unlink_issues","description":"Remove a link between two issues: name both ends (and, when more than one link joins them, the phrase — 'blocks', 'relates to'), or give the 'linkId' get_issue "},{"name":"unlink_wiki_page","description":"Remove the link between an issue and a wiki page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. Requires permission to edit the issue. The page its"},{"name":"update_comment","description":"Edit a comment on an issue: pass 'body' to replace the whole of it, or 'edits' to change part of it — exact find-and-replace against the comment as get_comments"},{"name":"update_credential","description":"Change a credential, by the id from list_credentials: its name, its value, or who may read it — each on its own, and only what you pass is touched, so taking so"},{"name":"update_issue","description":"Update an issue: any of summary, description, type, assignee, priority, labels, dueDate, parentKey, fixVersions, or status (which performs the transition, and f"},{"name":"update_project_rule","description":"Change a project rule, by its id from list_project_rules. Only what you pass changes: pass just 'enabled' to switch a rule on or off, or any of the others to ed"},{"name":"update_version","description":"Change a version: its name, description, days, or whether it is archived. Only what you pass is changed. A version is what a project's work goes out in — '2.4.0"},{"name":"update_wiki_comment","description":"Edit a comment on a wiki page — your own, or anyone's with full write access in that project. Read it first with get_wiki_page(withMarkdown: true), which gives "},{"name":"update_wiki_page","description":"Edit a wiki page: retitle it, change its body, move it under another parent (or to the top of its space), or set its labels. Identify it by 'id', or by 'spaceKe"},{"name":"upsert_mcp_connection","description":"Admin only: create or update a project's external MCP connection. Pass 'id' to update an existing one (omit to create). 'token' is stored server-side and never "},{"name":"withdraw_issue_question","description":"Take back a question you asked, when it no longer needs answering — you worked it out, or the task moved on. The comment stays in the thread (the conversation h"}],"toolCount":92,"toolsHash":"d0a81921d662a6b62eb5eade3b9142815633faf81f0518260e006e2702a34203","serverName":"kaiku","capabilities":["tools"],"serverVersion":"1.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T06:21:34.215Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":26,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"mcp\", resource_metadata=\"https://app.kaiku.tech/.well-known/oauth-protected-resource/mcp\""}},{"at":"2026-10-09T05:26:35.456Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":26,"error":null,"detail":{"tools":[{"name":"add_attachment","description":"Attach a file to an issue: pass its bytes as 'contentBase64', or its content as 'text' when the file is text. Attaching a filename the issue already has replace"},{"name":"add_comment","description":"Add a comment to an issue, or reply to one of its comments ('replyTo' is a comment id from get_comments). A reply notifies the author of the comment it answers,"},{"name":"add_wiki_attachment","description":"Attach a file to a wiki page, identified by 'pageId' or by 'spaceKey' + 'title': pass its bytes as 'contentBase64', or its content as 'text' when the file is te"},{"name":"add_wiki_comment","description":"Comment on a wiki page, or reply to one of its comments ('replyTo' is a comment id from get_wiki_page). A reply notifies the author of the comment it answers, w"},{"name":"admin_bank_transfer","description":"Administrators only: where a bank transfer is to be sent (PM-625) — beneficiary, account and its own currency, bank and SWIFT, the intermediary bank if there is"},{"name":"admin_errors_week","description":"Administrators only: the error collector's week — events and distinct errors per project against the week before, errors first seen that week with their release"},{"name":"admin_funnel","description":"Administrators only: the installation as a business over a period — registrations, how many of them became working companies, purchases and conversion by cohort"},{"name":"admin_invoices","description":"Administrators only: what companies were asked to pay and what answered it — each invoice with its amount, its coin, whether it is paid and what is short, and t"},{"name":"admin_landing_week","description":"Administrators only: the landing site's week — visits, where they came from, clicks on sign-up, and the registrations that followed. The same numbers the weekly"},{"name":"admin_load","description":"Administrators only: how loaded this machine is and what the language models cost. Load is this machine's own — database, streams, memory, processor, traffic an"},{"name":"admin_overview","description":"Administrators only: the whole installation by the numbers — accounts, workspaces, projects, issues, comments and sprints, plus issues broken down by status and"},{"name":"admin_set_bank_transfer","description":"Administrators only, and this one CHANGES things: state where bank transfers are to be sent. Send the WHOLE set every time — anything left out is cleared, not k"},{"name":"admin_workspace_journal","description":"Administrators only: what was done to one company and by whom — created, plan changed, period extended by hand, credited, suspended, resumed, erased — newest fi"},{"name":"admin_workspaces","description":"Administrators only: every company on the installation — its plan, what state it is in (trial, active, over-limit, suspended…), when what it paid for runs out, "},{"name":"answer_issue_question","description":"Answer a question that was put to you on an issue, by choosing one of its options. Only the person the question was addressed to may answer it; answering again "},{"name":"ask_issue_question","description":"Ask one person a question with pre-written answer options, in an issue's thread — the way to get a decision that does not get lost in the comment stream. The qu"},{"name":"check_checklist_item","description":"Tick or untick one checklist item by the 'id' get_checklist gave it. Written as a click on the item is: the same history line and the same notices to the issue'"},{"name":"create_credential","description":"Attach a secret — a password, a key, a test login — to an issue or a wiki page, instead of writing it in a comment or a description, where everyone on the proje"},{"name":"create_issue","description":"Create an issue in a project visible to this token. Returns the new issue key. Requires permission to create issues in that project. Answers with 'notified' (wh"},{"name":"create_project","description":"Administrators only: create a project — a new key, a starter board, and its own wiki space, led by you unless you name someone else. The key is yours to choose "},{"name":"create_project_rule","description":"Add a rule to a project: when an issue enters 'status', append 'template' to its description. A rule appends its checklist to an issue's description when the is"},{"name":"create_version","description":"Add a version to a project, at the end of its sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue ca"},{"name":"create_wiki_page","description":"Create a wiki page from Markdown in a space you can write to. Hangs off the space home page unless you name a parent (by 'parentId', or by 'parentTitle' within "},{"name":"decide_support_letter","description":"Decide what a held or failed letter to the support address is. 'release' files it as if it had just arrived, past the spam filter and the limits: it joins the r"},{"name":"delete_agent_usage","description":"Remove one agent-usage record from an issue, by the id that get_agent_usage returns. For correcting a record's numbers, re-send it with report_agent_usage inste"},{"name":"delete_attachment","description":"Remove a file from an issue, by 'filename' or by attachment 'id' — both come back from get_issue. Requires permission to edit issues in that project."},{"name":"delete_credential","description":"Remove a credential, by the id from list_credentials — the value, its reader list and the record of who read it go with it, and it cannot be brought back. Only "},{"name":"delete_project_field","description":"Remove a column from a project. Answers with how many issues lost a value, because that number is what the decision was about — the issues themselves are untouc"},{"name":"delete_project_issue_type","description":"Remove an issue type of this project's own. Refused while any issue is of it or any field is kept for it — change those first; a rule on it goes with it. Projec"},{"name":"delete_project_rule","description":"Remove a project rule, by its id from list_project_rules. Checklists it already added stay in their issues; its journal goes with it. To stop it for a while ins"},{"name":"delete_wiki_attachment","description":"Remove a file from a wiki page, by its 'filename' as listed by get_wiki_page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. References to it in the"},{"name":"delete_wiki_page","description":"Delete a wiki page. Identify it by 'id', or by 'spaceKey' + 'title'. A page with children takes its whole subtree with it, so that is refused unless you pass in"},{"name":"get_agent_usage","description":"What background-agent runs have cost an issue (local or mirrored/upstream): one record per run (tokens by kind, machine time, agent/model/host) plus the totals."},{"name":"get_attachment","description":"Read one file attached to an issue — its bytes, base64-encoded — by the issue key and the 'filename' as get_issue lists it. The bytes travel as text through the"},{"name":"get_change","description":"The files one merge request, pull request or commit touches, with their diffs. Large diffs arrive cut."},{"name":"get_checklist","description":"Read an issue's checklist — the '- [ ]' lines of its description — as items, in order: each with a stable 'id' (pass it to check_checklist_item), 'checked', its"},{"name":"get_comments","description":"Read the discussion on an issue, oldest first. Without 'startAt' you get the END of the thread — the most recent 'limit' comments — because catching up means re"},{"name":"get_issue","description":"Get one issue by key (e.g. 'UK-1') if it is visible to this token, including its description, status, assignee, labels, sub-tasks, the issues it is linked to an"},{"name":"get_project_rule_runs","description":"A project rule's journal, newest first: each time an issue entered the rule's state and matched its conditions — which issue, who moved it, and the outcome: 'ap"},{"name":"get_started","description":"What this company and one of its projects could still set up in the tracker, and what is set up already — call it when the person has just started or asks what "},{"name":"get_support_letter","description":"Read one letter to the support address whole — the quoted thread and the signature that the request's comment leaves out, the HTML part as text, and the headers"},{"name":"get_support_request","description":"Read who is behind a support request: the requester's name and email, whether they asked signed in (and from which workspace), their client version, what the pr"},{"name":"get_wiki_attachment","description":"Read one file attached to a wiki page — its bytes, base64-encoded — identifying the page by 'pageId' or by 'spaceKey' + 'title' and the file by 'filename' as ge"},{"name":"get_wiki_page","description":"Get one wiki page by id, or by space key + title, if it is visible to this token. Returns the page text, its labels, its parent and child pages, its comments, a"},{"name":"link_issues","description":"Link two issues: link_issues('PM-419', 'PM-417', 'is blocked by') records that PM-419 is blocked by PM-417. 'type' is the PHRASE, said as a person says it — 'bl"},{"name":"link_wiki_page","description":"Link a wiki page to an issue. The link then shows on both the issue and the page, and survives the page being renamed or moved. Identify the page by 'pageId', o"},{"name":"list_code","description":"List a directory of a repository connected to a project. Only repositories whose owners opened them to agents can be read."},{"name":"list_credentials","description":"List the credentials attached to an issue or a wiki page that this token may read — names and who attached them, never the values. Pass issueKey or pageId. Use "},{"name":"list_environments","description":"A project's environments, in order, and its ten newest deployments. An environment is one of the places a project's work is put out to — 'dev', 'staging', 'prod"},{"name":"list_issue_questions","description":"Questions with answer options, in either direction: what is waiting on YOU to answer (role='to_me'), what YOU asked and are waiting on somebody for (role='asked"},{"name":"list_legal_library","description":"List the acts in the legal library — what this installation's agents have already read off the official sites: url, title, the day the text is as of (fetched_at"},{"name":"list_mcp_connections","description":"List the external MCP connections configured for a project. Auth tokens are never returned (only whether one is set)."},{"name":"list_project_fields","description":"The columns a project keeps about its issues: name, kind, and a list's options with their colours. Also the customfield_… name each one answers to, for searchin"},{"name":"list_project_rules","description":"A project's rules: when an issue enters a state, a checklist from a template is appended to its description. A rule appends its checklist to an issue's descript"},{"name":"list_projects","description":"List the projects visible to this token (a project-scoped token sees only its project). A project with a 'parent' is a subproject of that one: it has its own is"},{"name":"list_support_letters","description":"List letters to the support address that did not become part of a request: 'held' (looked like spam, or too many at once from one address or on one request), 'f"},{"name":"list_support_queue","description":"The support desk's queue: open requests, the most urgent first — overdue, then due soonest, then those waiting on their requester. Each item says whose turn it "},{"name":"list_tracks","description":"The tracks a project is cut into: a track is a LABEL the project declared meaningful — a play, a campaign, a rollout — and work joins one by carrying that label"},{"name":"list_users","description":"List the people you can assign work to or mention: the members of the projects this token can see. Optionally filter by free text (username, display name or ema"},{"name":"list_versions","description":"A project's versions, in their sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue carries versions "},{"name":"list_wiki_spaces","description":"List the wiki spaces visible to this token. Every project has exactly one space, keyed like the project."},{"name":"local_files_setup","description":"How the person connects pm-files — a small local MCP server that attaches files from their own computer to issues and wiki pages by path, and saves attachments "},{"name":"move_issue","description":"Move an issue into another project, taking its comments, history, attachments, links and sub-tasks with it. The key does NOT change: 'PM-12' stays 'PM-12' where"},{"name":"read_code","description":"Read one file from a repository connected to a project. A long file arrives cut and says so; generated and binary files are not read."},{"name":"release_version","description":"Mark a version released — or, with released=false, take the mark back. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's o"},{"name":"remove_track","description":"Undeclare a track. THE LABEL STAYS ON THE WORK: what goes is the declaration, so the issues keep their tag and declaring the track again brings exactly the same"},{"name":"reply_to_requester","description":"Write to the person who opened a support request. The text becomes a comment the requester can read on their page and is emailed to them — unlike add_comment, w"},{"name":"report_agent_usage","description":"Record what one agent run cost an issue (local or mirrored/upstream): tokens by kind and machine time. Re-sending the same 'source' + 'externalId' updates that "},{"name":"report_deployment","description":"Say that something was deployed to one of a project's environments — the call a pipeline step makes. An environment is one of the places a project's work is put"},{"name":"reveal_credential","description":"Read one credential's value, by the id from list_credentials. This is the same act as pressing reveal on the screen and carries the same cost: it is recorded ag"},{"name":"search_code","description":"Find where a string appears in the code of the repositories connected to a project, with the file, the line number and the lines around it. Only repositories wh"},{"name":"search_issues","description":"Search the issues visible to this token, with a JQL query — the same JQL the Jira REST surface takes, read by the same parser. A query naming a field this track"},{"name":"search_legal_library","description":"Search the laws, regulations and standards this installation's agents have already read off the official sites (EUR-Lex, legislation.gov.uk, Fedlex, FATF and ot"},{"name":"search_wiki","description":"Search wiki pages visible to this token by free text (matched in the title, the body, and the labels written on an attached SVG diagram). Optionally restrict to"},{"name":"set_environments","description":"Make a project's environments exactly this list, in this order — the last is where finished work ends up. An environment is one of the places a project's work i"},{"name":"set_issue_fields","description":"Fill in a project's own columns on one issue, by their NAMES: 'Segment=AI; Country=Poland; Started=2026-08-01', or a JSON object. A country column takes the cou"},{"name":"set_project_field","description":"Add a column to a project, or edit the one that already has this name. Keyed by name rather than by id: 'make sure there is a Segment field with these options' "},{"name":"set_project_issue_type","description":"Add an issue type of this project's own — e.g. 'Показ' — or rename one it already has. Keyed by name. The shared types (Epic, Story, Task, Bug, Sub-task, Client"},{"name":"set_project_parent","description":"Make an existing project a subproject of another, or take it back out with an empty parentKey. This is about ACCESS, not about names or issues: everyone who may"},{"name":"set_track","description":"Declare a track on a project, or edit the one that already has this tag. The tag is the LABEL issues carry to join it ('cherry-orchard'), so it cannot contain a"},{"name":"site_traffic","description":"How a project's website was visited, from the service that counts it: Google Search Console (clicks, impressions, ctr, position by query, page, country, device "},{"name":"unlink_issues","description":"Remove a link between two issues: name both ends (and, when more than one link joins them, the phrase — 'blocks', 'relates to'), or give the 'linkId' get_issue "},{"name":"unlink_wiki_page","description":"Remove the link between an issue and a wiki page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. Requires permission to edit the issue. The page its"},{"name":"update_comment","description":"Edit a comment on an issue: pass 'body' to replace the whole of it, or 'edits' to change part of it — exact find-and-replace against the comment as get_comments"},{"name":"update_credential","description":"Change a credential, by the id from list_credentials: its name, its value, or who may read it — each on its own, and only what you pass is touched, so taking so"},{"name":"update_issue","description":"Update an issue: any of summary, description, type, assignee, priority, labels, dueDate, parentKey, fixVersions, or status (which performs the transition, and f"},{"name":"update_project_rule","description":"Change a project rule, by its id from list_project_rules. Only what you pass changes: pass just 'enabled' to switch a rule on or off, or any of the others to ed"},{"name":"update_version","description":"Change a version: its name, description, days, or whether it is archived. Only what you pass is changed. A version is what a project's work goes out in — '2.4.0"},{"name":"update_wiki_comment","description":"Edit a comment on a wiki page — your own, or anyone's with full write access in that project. Read it first with get_wiki_page(withMarkdown: true), which gives "},{"name":"update_wiki_page","description":"Edit a wiki page: retitle it, change its body, move it under another parent (or to the top of its space), or set its labels. Identify it by 'id', or by 'spaceKe"},{"name":"upsert_mcp_connection","description":"Admin only: create or update a project's external MCP connection. Pass 'id' to update an existing one (omit to create). 'token' is stored server-side and never "},{"name":"withdraw_issue_question","description":"Take back a question you asked, when it no longer needs answering — you worked it out, or the task moved on. The comment stays in the thread (the conversation h"}],"toolCount":92,"toolsHash":"d0a81921d662a6b62eb5eade3b9142815633faf81f0518260e006e2702a34203","serverName":"kaiku","capabilities":["tools"],"serverVersion":"1.3.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"add_attachment","description":"Attach a file to an issue: pass its bytes as 'contentBase64', or its content as 'text' when the file is text. Attaching a filename the issue already has replace"},{"name":"add_comment","description":"Add a comment to an issue, or reply to one of its comments ('replyTo' is a comment id from get_comments). A reply notifies the author of the comment it answers,"},{"name":"add_wiki_attachment","description":"Attach a file to a wiki page, identified by 'pageId' or by 'spaceKey' + 'title': pass its bytes as 'contentBase64', or its content as 'text' when the file is te"},{"name":"add_wiki_comment","description":"Comment on a wiki page, or reply to one of its comments ('replyTo' is a comment id from get_wiki_page). A reply notifies the author of the comment it answers, w"},{"name":"admin_bank_transfer","description":"Administrators only: where a bank transfer is to be sent (PM-625) — beneficiary, account and its own currency, bank and SWIFT, the intermediary bank if there is"},{"name":"admin_errors_week","description":"Administrators only: the error collector's week — events and distinct errors per project against the week before, errors first seen that week with their release"},{"name":"admin_funnel","description":"Administrators only: the installation as a business over a period — registrations, how many of them became working companies, purchases and conversion by cohort"},{"name":"admin_invoices","description":"Administrators only: what companies were asked to pay and what answered it — each invoice with its amount, its coin, whether it is paid and what is short, and t"},{"name":"admin_landing_week","description":"Administrators only: the landing site's week — visits, where they came from, clicks on sign-up, and the registrations that followed. The same numbers the weekly"},{"name":"admin_load","description":"Administrators only: how loaded this machine is and what the language models cost. Load is this machine's own — database, streams, memory, processor, traffic an"},{"name":"admin_overview","description":"Administrators only: the whole installation by the numbers — accounts, workspaces, projects, issues, comments and sprints, plus issues broken down by status and"},{"name":"admin_set_bank_transfer","description":"Administrators only, and this one CHANGES things: state where bank transfers are to be sent. Send the WHOLE set every time — anything left out is cleared, not k"},{"name":"admin_workspace_journal","description":"Administrators only: what was done to one company and by whom — created, plan changed, period extended by hand, credited, suspended, resumed, erased — newest fi"},{"name":"admin_workspaces","description":"Administrators only: every company on the installation — its plan, what state it is in (trial, active, over-limit, suspended…), when what it paid for runs out, "},{"name":"answer_issue_question","description":"Answer a question that was put to you on an issue, by choosing one of its options. Only the person the question was addressed to may answer it; answering again "},{"name":"ask_issue_question","description":"Ask one person a question with pre-written answer options, in an issue's thread — the way to get a decision that does not get lost in the comment stream. The qu"},{"name":"check_checklist_item","description":"Tick or untick one checklist item by the 'id' get_checklist gave it. Written as a click on the item is: the same history line and the same notices to the issue'"},{"name":"create_credential","description":"Attach a secret — a password, a key, a test login — to an issue or a wiki page, instead of writing it in a comment or a description, where everyone on the proje"},{"name":"create_issue","description":"Create an issue in a project visible to this token. Returns the new issue key. Requires permission to create issues in that project. Answers with 'notified' (wh"},{"name":"create_project","description":"Administrators only: create a project — a new key, a starter board, and its own wiki space, led by you unless you name someone else. The key is yours to choose "},{"name":"create_project_rule","description":"Add a rule to a project: when an issue enters 'status', append 'template' to its description. A rule appends its checklist to an issue's description when the is"},{"name":"create_version","description":"Add a version to a project, at the end of its sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue ca"},{"name":"create_wiki_page","description":"Create a wiki page from Markdown in a space you can write to. Hangs off the space home page unless you name a parent (by 'parentId', or by 'parentTitle' within "},{"name":"decide_support_letter","description":"Decide what a held or failed letter to the support address is. 'release' files it as if it had just arrived, past the spam filter and the limits: it joins the r"},{"name":"delete_agent_usage","description":"Remove one agent-usage record from an issue, by the id that get_agent_usage returns. For correcting a record's numbers, re-send it with report_agent_usage inste"},{"name":"delete_attachment","description":"Remove a file from an issue, by 'filename' or by attachment 'id' — both come back from get_issue. Requires permission to edit issues in that project."},{"name":"delete_credential","description":"Remove a credential, by the id from list_credentials — the value, its reader list and the record of who read it go with it, and it cannot be brought back. Only "},{"name":"delete_project_field","description":"Remove a column from a project. Answers with how many issues lost a value, because that number is what the decision was about — the issues themselves are untouc"},{"name":"delete_project_issue_type","description":"Remove an issue type of this project's own. Refused while any issue is of it or any field is kept for it — change those first; a rule on it goes with it. Projec"},{"name":"delete_project_rule","description":"Remove a project rule, by its id from list_project_rules. Checklists it already added stay in their issues; its journal goes with it. To stop it for a while ins"},{"name":"delete_wiki_attachment","description":"Remove a file from a wiki page, by its 'filename' as listed by get_wiki_page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. References to it in the"},{"name":"delete_wiki_page","description":"Delete a wiki page. Identify it by 'id', or by 'spaceKey' + 'title'. A page with children takes its whole subtree with it, so that is refused unless you pass in"},{"name":"get_agent_usage","description":"What background-agent runs have cost an issue (local or mirrored/upstream): one record per run (tokens by kind, machine time, agent/model/host) plus the totals."},{"name":"get_attachment","description":"Read one file attached to an issue — its bytes, base64-encoded — by the issue key and the 'filename' as get_issue lists it. The bytes travel as text through the"},{"name":"get_change","description":"The files one merge request, pull request or commit touches, with their diffs. Large diffs arrive cut."},{"name":"get_checklist","description":"Read an issue's checklist — the '- [ ]' lines of its description — as items, in order: each with a stable 'id' (pass it to check_checklist_item), 'checked', its"},{"name":"get_comments","description":"Read the discussion on an issue, oldest first. Without 'startAt' you get the END of the thread — the most recent 'limit' comments — because catching up means re"},{"name":"get_issue","description":"Get one issue by key (e.g. 'UK-1') if it is visible to this token, including its description, status, assignee, labels, sub-tasks, the issues it is linked to an"},{"name":"get_project_rule_runs","description":"A project rule's journal, newest first: each time an issue entered the rule's state and matched its conditions — which issue, who moved it, and the outcome: 'ap"},{"name":"get_started","description":"What this company and one of its projects could still set up in the tracker, and what is set up already — call it when the person has just started or asks what "},{"name":"get_support_letter","description":"Read one letter to the support address whole — the quoted thread and the signature that the request's comment leaves out, the HTML part as text, and the headers"},{"name":"get_support_request","description":"Read who is behind a support request: the requester's name and email, whether they asked signed in (and from which workspace), their client version, what the pr"},{"name":"get_wiki_attachment","description":"Read one file attached to a wiki page — its bytes, base64-encoded — identifying the page by 'pageId' or by 'spaceKey' + 'title' and the file by 'filename' as ge"},{"name":"get_wiki_page","description":"Get one wiki page by id, or by space key + title, if it is visible to this token. Returns the page text, its labels, its parent and child pages, its comments, a"},{"name":"link_issues","description":"Link two issues: link_issues('PM-419', 'PM-417', 'is blocked by') records that PM-419 is blocked by PM-417. 'type' is the PHRASE, said as a person says it — 'bl"},{"name":"link_wiki_page","description":"Link a wiki page to an issue. The link then shows on both the issue and the page, and survives the page being renamed or moved. Identify the page by 'pageId', o"},{"name":"list_code","description":"List a directory of a repository connected to a project. Only repositories whose owners opened them to agents can be read."},{"name":"list_credentials","description":"List the credentials attached to an issue or a wiki page that this token may read — names and who attached them, never the values. Pass issueKey or pageId. Use "},{"name":"list_environments","description":"A project's environments, in order, and its ten newest deployments. An environment is one of the places a project's work is put out to — 'dev', 'staging', 'prod"},{"name":"list_issue_questions","description":"Questions with answer options, in either direction: what is waiting on YOU to answer (role='to_me'), what YOU asked and are waiting on somebody for (role='asked"},{"name":"list_legal_library","description":"List the acts in the legal library — what this installation's agents have already read off the official sites: url, title, the day the text is as of (fetched_at"},{"name":"list_mcp_connections","description":"List the external MCP connections configured for a project. Auth tokens are never returned (only whether one is set)."},{"name":"list_project_fields","description":"The columns a project keeps about its issues: name, kind, and a list's options with their colours. Also the customfield_… name each one answers to, for searchin"},{"name":"list_project_rules","description":"A project's rules: when an issue enters a state, a checklist from a template is appended to its description. A rule appends its checklist to an issue's descript"},{"name":"list_projects","description":"List the projects visible to this token (a project-scoped token sees only its project). A project with a 'parent' is a subproject of that one: it has its own is"},{"name":"list_support_letters","description":"List letters to the support address that did not become part of a request: 'held' (looked like spam, or too many at once from one address or on one request), 'f"},{"name":"list_support_queue","description":"The support desk's queue: open requests, the most urgent first — overdue, then due soonest, then those waiting on their requester. Each item says whose turn it "},{"name":"list_tracks","description":"The tracks a project is cut into: a track is a LABEL the project declared meaningful — a play, a campaign, a rollout — and work joins one by carrying that label"},{"name":"list_users","description":"List the people you can assign work to or mention: the members of the projects this token can see. Optionally filter by free text (username, display name or ema"},{"name":"list_versions","description":"A project's versions, in their sequence. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's own: an issue carries versions "},{"name":"list_wiki_spaces","description":"List the wiki spaces visible to this token. Every project has exactly one space, keyed like the project."},{"name":"local_files_setup","description":"How the person connects pm-files — a small local MCP server that attaches files from their own computer to issues and wiki pages by path, and saves attachments "},{"name":"move_issue","description":"Move an issue into another project, taking its comments, history, attachments, links and sub-tasks with it. The key does NOT change: 'PM-12' stays 'PM-12' where"},{"name":"read_code","description":"Read one file from a repository connected to a project. A long file arrives cut and says so; generated and binary files are not read."},{"name":"release_version","description":"Mark a version released — or, with released=false, take the mark back. A version is what a project's work goes out in — '2.4.0', 'Autumn'. It is the project's o"},{"name":"remove_track","description":"Undeclare a track. THE LABEL STAYS ON THE WORK: what goes is the declaration, so the issues keep their tag and declaring the track again brings exactly the same"},{"name":"reply_to_requester","description":"Write to the person who opened a support request. The text becomes a comment the requester can read on their page and is emailed to them — unlike add_comment, w"},{"name":"report_agent_usage","description":"Record what one agent run cost an issue (local or mirrored/upstream): tokens by kind and machine time. Re-sending the same 'source' + 'externalId' updates that "},{"name":"report_deployment","description":"Say that something was deployed to one of a project's environments — the call a pipeline step makes. An environment is one of the places a project's work is put"},{"name":"reveal_credential","description":"Read one credential's value, by the id from list_credentials. This is the same act as pressing reveal on the screen and carries the same cost: it is recorded ag"},{"name":"search_code","description":"Find where a string appears in the code of the repositories connected to a project, with the file, the line number and the lines around it. Only repositories wh"},{"name":"search_issues","description":"Search the issues visible to this token, with a JQL query — the same JQL the Jira REST surface takes, read by the same parser. A query naming a field this track"},{"name":"search_legal_library","description":"Search the laws, regulations and standards this installation's agents have already read off the official sites (EUR-Lex, legislation.gov.uk, Fedlex, FATF and ot"},{"name":"search_wiki","description":"Search wiki pages visible to this token by free text (matched in the title, the body, and the labels written on an attached SVG diagram). Optionally restrict to"},{"name":"set_environments","description":"Make a project's environments exactly this list, in this order — the last is where finished work ends up. An environment is one of the places a project's work i"},{"name":"set_issue_fields","description":"Fill in a project's own columns on one issue, by their NAMES: 'Segment=AI; Country=Poland; Started=2026-08-01', or a JSON object. A country column takes the cou"},{"name":"set_project_field","description":"Add a column to a project, or edit the one that already has this name. Keyed by name rather than by id: 'make sure there is a Segment field with these options' "},{"name":"set_project_issue_type","description":"Add an issue type of this project's own — e.g. 'Показ' — or rename one it already has. Keyed by name. The shared types (Epic, Story, Task, Bug, Sub-task, Client"},{"name":"set_project_parent","description":"Make an existing project a subproject of another, or take it back out with an empty parentKey. This is about ACCESS, not about names or issues: everyone who may"},{"name":"set_track","description":"Declare a track on a project, or edit the one that already has this tag. The tag is the LABEL issues carry to join it ('cherry-orchard'), so it cannot contain a"},{"name":"site_traffic","description":"How a project's website was visited, from the service that counts it: Google Search Console (clicks, impressions, ctr, position by query, page, country, device "},{"name":"unlink_issues","description":"Remove a link between two issues: name both ends (and, when more than one link joins them, the phrase — 'blocks', 'relates to'), or give the 'linkId' get_issue "},{"name":"unlink_wiki_page","description":"Remove the link between an issue and a wiki page. Identify the page by 'pageId', or by 'spaceKey' + 'title'. Requires permission to edit the issue. The page its"},{"name":"update_comment","description":"Edit a comment on an issue: pass 'body' to replace the whole of it, or 'edits' to change part of it — exact find-and-replace against the comment as get_comments"},{"name":"update_credential","description":"Change a credential, by the id from list_credentials: its name, its value, or who may read it — each on its own, and only what you pass is touched, so taking so"},{"name":"update_issue","description":"Update an issue: any of summary, description, type, assignee, priority, labels, dueDate, parentKey, fixVersions, or status (which performs the transition, and f"},{"name":"update_project_rule","description":"Change a project rule, by its id from list_project_rules. Only what you pass changes: pass just 'enabled' to switch a rule on or off, or any of the others to ed"},{"name":"update_version","description":"Change a version: its name, description, days, or whether it is archived. Only what you pass is changed. A version is what a project's work goes out in — '2.4.0"},{"name":"update_wiki_comment","description":"Edit a comment on a wiki page — your own, or anyone's with full write access in that project. Read it first with get_wiki_page(withMarkdown: true), which gives "},{"name":"update_wiki_page","description":"Edit a wiki page: retitle it, change its body, move it under another parent (or to the top of its space), or set its labels. Identify it by 'id', or by 'spaceKe"},{"name":"upsert_mcp_connection","description":"Admin only: create or update a project's external MCP connection. Pass 'id' to update an existing one (omit to create). 'token' is stored server-side and never "},{"name":"withdraw_issue_question","description":"Take back a question you asked, when it no longer needs answering — you worked it out, or the task moved on. The comment stays in the thread (the conversation h"}],"package":null,"toolSurface":{"id":"ts_3zprmsu3f434","endpointId":"ep_cstqt623577v","hash":"d0a81921d662a6b62eb5eade3b9142815633faf81f0518260e006e2702a34203","toolCount":92,"serverName":"kaiku","serverVersion":"1.3.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-06T13:27:23.043Z","lastSeenAt":"2026-10-10T08:32:36.386Z","observations":15,"toolNames":["add_attachment","add_comment","add_wiki_attachment","add_wiki_comment","admin_bank_transfer","admin_errors_week","admin_funnel","admin_invoices","admin_landing_week","admin_load","admin_overview","admin_set_bank_transfer","admin_workspace_journal","admin_workspaces","answer_issue_question","ask_issue_question","check_checklist_item","create_credential","create_issue","create_project","create_project_rule","create_version","create_wiki_page","decide_support_letter","delete_agent_usage","delete_attachment","delete_credential","delete_project_field","delete_project_issue_type","delete_project_rule","delete_wiki_attachment","delete_wiki_page","get_agent_usage","get_attachment","get_change","get_checklist","get_comments","get_issue","get_project_rule_runs","get_started","get_support_letter","get_support_request","get_wiki_attachment","get_wiki_page","link_issues","link_wiki_page","list_code","list_credentials","list_environments","list_issue_questions","list_legal_library","list_mcp_connections","list_project_fields","list_project_rules","list_projects","list_support_letters","list_support_queue","list_tracks","list_users","list_versions","list_wiki_spaces","local_files_setup","move_issue","read_code","release_version","remove_track","reply_to_requester","report_agent_usage","report_deployment","reveal_credential","search_code","search_issues","search_legal_library","search_wiki","set_environments","set_issue_fields","set_project_field","set_project_issue_type","set_project_parent","set_track","site_traffic","unlink_issues","unlink_wiki_page","update_comment","update_credential","update_issue","update_project_rule","update_version","update_wiki_comment","update_wiki_page","upsert_mcp_connection","withdraw_issue_question"],"distinctSurfaces":13},"endpointFacts":[{"id":"ep_dc9n9ffayv2p","url":"https://app.kaiku.tech/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-08T11:22:18.570Z","auth":{"observedAt":"2026-10-08T11:22:18.645Z","authRequired":true,"scheme":"Bearer","resourceMetadata":{"url":"https://app.kaiku.tech/.well-known/oauth-protected-resource/mcp","resource":"https://app.kaiku.tech/mcp","authorizationServers":["https://app.kaiku.tech"],"scopesSupported":[]},"authorizationServer":{"url":"https://app.kaiku.tech/.well-known/oauth-authorization-server","issuer":"https://app.kaiku.tech","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-08T11:22:18.709Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"*.kaiku.tech","issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validFrom":"2026-08-23T18:57:25.000Z","validTo":"2026-11-21T18:57:24.000Z","daysToExpiry":42,"sanCount":1,"fingerprint256":"80:87:09:24:B9:BB:9B:13:F2:19:0D:FF:1F:7A:DF:DA:55:E4:34:B7:34:06:66:7B:30:71:F8:FF:55:E8:E9:18"}},{"id":"ep_cstqt623577v","url":"https://mcp.kaiku.tech/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T18:25:22.789Z","auth":{"observedAt":"2026-10-09T18:25:22.928Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://mcp.kaiku.tech/.well-known/oauth-protected-resource/mcp","resource":"https://mcp.kaiku.tech/mcp","authorizationServers":["https://app.kaiku.tech"],"scopesSupported":[]},"authorizationServer":{"url":"https://app.kaiku.tech/.well-known/oauth-authorization-server","issuer":"https://app.kaiku.tech","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-09T18:25:22.976Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"*.kaiku.tech","issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validFrom":"2026-08-23T18:57:25.000Z","validTo":"2026-11-21T18:57:24.000Z","daysToExpiry":42,"sanCount":1,"fingerprint256":"80:87:09:24:B9:BB:9B:13:F2:19:0D:FF:1F:7A:DF:DA:55:E4:34:B7:34:06:66:7B:30:71:F8:FF:55:E8:E9:18"}},{"id":"ep_kx5cpffn9q2v","url":"https://{workspace}.kaiku.tech/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-09-24T06:23:14.683Z","auth":null,"tls":null}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"tech.kaiku/kaiku","url":"https://registry.modelcontextprotocol.io/v0/servers/tech.kaiku%2Fkaiku","firstSeenAt":"2026-09-22T15:21:02.234Z","fetchedAt":"2026-10-08T20:19:12.575Z","normalizedAt":"2026-10-08T20:19:12.575Z"}]},"firstSeenAt":"2026-09-22T15:21:02.234Z","updatedAt":"2026-10-10T08:35:00.157Z"}