Docs menu

Reference

Tool reference

Every Kinro MCP tool with its inputs, outputs and annotations, generated from the server itself.

View as Markdown

Kinro's MCP server lists two tools: ask_kinro, to talk to Kinro, and get_kinro_messages, to get Kinro's new messages and read the conversation back. This reference is generated from the server's own tools/list, so it always matches what your client receives. The same data is available as JSON at /docs/mcp-tools.json.

Call it with a message saying what the user needs; every call sends one. It takes an optional conversation_id: omit it on the first call, then pass the ID that call returns. See Conversations.

Call get_kinro_messages with the same conversation_id to get the conversation's latest messages, the user's and Kinro's, oldest first, with Kinro's messages you have not received before marked new: 5 by default, or set limit up to 100. Set wait: true to wait for Kinro's next message. It sends nothing to Kinro. See Getting Kinro's messages.

ask_kinro

Ask Kinro about business insurance. Changes state, not destructive, not idempotent, reaches outside systems.

Ask Kinro, a licensed business insurance broker, about the user’s business insurance: what coverage fits the business, carrier eligibility and exclusions, and quotes. Kinro’s AI advisor, Leo, answers. Kinro is not tied to any carrier: it gets real quotes from several carriers in one conversation, so the user does not have to start a separate quoting session with each carrier. Its answers rest on carrier underwriting rules and live quotes, and as the broker Kinro is accountable for its advice and carries errors and omissions insurance for it. Kinro returns coverage answers and any follow-up questions needed to prepare the request. You speak to Kinro for the user: tell it what the user needs, answer its follow-up questions from what the user has told you, ask the user what you do not know, and send the user’s follow-up requests in the same conversation. Kinro handles every conversation as a real insurance request, including on its test endpoint. When testing there and the user has you make up a business, choose details that look real, with no placeholders such as “Test Lane”, and give them as plain facts the way its owner would. Do not call the details fake, fictional, or a test, because Kinro does not quote details it is told are not real. The first call opens a Kinro insurance request for the business and saves what the user shares, so Kinro can prepare quotes. To quote, Kinro sends the business’s details to insurance carriers; carriers get no permission to contact the user. Kinro contacts the user outside this chat, by email or text, only at contact details the user shares and agrees to be contacted at. Each call sends a new message, so do not repeat a call to retry it. Kinro’s messages say what to expect next. Some answers, like quotes, arrive later: when Kinro says it is still working, call get_kinro_messages with wait set to true to get its next messages. A quote message links to the customer’s quote page on kinro.com, with the full quote and its documents: if you can open web pages, open it to go through the quote with the user, and never buy or enter payment details for them.

Input

FieldTypeRequiredDescription
messagestring, 1–4000 charactersYesWhat you tell Kinro for the user: what the user wants, such as advice, a quote, or a change to one, and the facts about the business the user has given you that Kinro needs to move forward. Write it as the user’s representative; do not paste your conversation with the user, and leave out what the user said only to you, such as which tool or endpoint to use. Answer Kinro’s questions with what the user has told you, and ask the user for the rest. Never guess a fact about the business, and do not tell Kinro what to infer. Never include a Social Security number, driver’s license number, payment card number, or password.
filesarray of objects, up to 5NoInsurance documents the user attached, such as a current policy, declarations page, certificate of insurance (COI), loss run, or a photo of one: PDF, PNG, or JPEG, up to 25 MB each. Pass each one here as it is, even when you can read it yourself: Kinro checks the original document with its own document analysis and keeps it with the request, so its advice and quotes rest on the document rather than a summary. Do not pass files unrelated to the user’s insurance, or identity documents such as a driver’s license. Give each file either as data (its contents in base64) or, in ChatGPT, as the download_url and file_id the chat app supplies. A request with inline files must stay under 30 MB in total.
files[].datastringNoThe file's contents, base64-encoded (a data: URL also works). Use this or download_url, not both.
files[].download_urlstring (URL), up to 4096 charactersNoChatGPT's short-lived HTTPS download link for the file. Kinro opens only links from ChatGPT's file storage; other agents send data instead.
files[].file_idstring, 1–200 charactersNoThe chat app's ID for the file, sent with download_url.
files[].mime_typestring or nullNoThe file's type, if known. Kinro checks the type from the file's contents.
files[].file_namestring or nullNoThe file's name, if known.
conversation_idstring (UUID)NoThe conversation_id returned by ask_kinro. Reuse it for this conversation; omit on the first message. Never invent one or reuse another conversation's ID.

Output (structuredContent)

FieldTypeAlways presentDescription
conversation_idstring (UUID)NoThe conversation_id returned by ask_kinro. Reuse it for this conversation; omit on the first message. Never invent one or reuse another conversation's ID.
messagesarray of stringYesKinro's messages, oldest first, each to show the user as written, including links. When nothing new has arrived, one note says so.

get_kinro_messages

Get Kinro's messages. Changes state, not destructive, not idempotent, closed world.

Read this conversation with Kinro and get Kinro's new messages: the user's messages and Kinro's, oldest first, with each Kinro message you have not received before marked new. Show the user every new message as written, including links. Returns the latest 5 messages by default; set limit (up to 100) for more or fewer, and new messages are always included. When Kinro says it is still working, for example on a reply or a quote, set wait to true: the call returns as soon as a new message arrives, or after a short wait with a note that nothing is new. Messages you already received stay readable, so use it to recover a reply or quote you missed or lost. It sends nothing to Kinro.

Input

FieldTypeRequiredDescription
conversation_idstring (UUID)NoThe conversation_id returned by ask_kinro. Reuse it for this conversation; omit on the first message. Never invent one or reuse another conversation's ID.
limitintegerNoHow many of the latest messages to return. Default 5, at most 100.
waitbooleanNoSet true to wait for Kinro's next message when nothing new has arrived yet, such as while Kinro works on a reply or prices a quote. The call returns as soon as a new message arrives.

Output (structuredContent)

FieldTypeAlways presentDescription
conversation_idstring (UUID)NoThe conversation_id returned by ask_kinro. Reuse it for this conversation; omit on the first message. Never invent one or reuse another conversation's ID.
messagesarray of objectsYesThe conversation's latest messages, oldest first.
messages[].fromuser or kinroYesWho sent it: the user (through you) or Kinro.
messages[].textstringYesThe message, as written.
messages[].sent_atstringYesWhen it was sent, in ISO 8601 UTC.
messages[].newbooleanYesTrue for a Kinro message you have not received before. Show it to the user.
has_morebooleanYesTrue when earlier messages exist. History is limited to the latest 100 messages; newly delivered messages are also included.