Kinro

Business insurance advice and real carrier quotes for U.S. small businesses from a licensed broker.

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
90%
Integridad del esquema
95%
Calidad de los nombres
90%
Riesgo de envenenamiento
60%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (4)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'ask_kinro' description contains placeholder texten ask_kinro
  • LOWTool description contains role marker that could confuse chat modelsen ask_kinro
  • INFOTool description contains placeholder or incomplete texten ask_kinro

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,232Tokens (definiciones de herramientas)
~8.4 KBTamaño de respuesta típico
Impacto moderado en la atención (1.74% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "kinro": {
      "url": "https://api.kinro.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://api.kinro.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (2)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟡ask_kinro(message, files, conversation_id)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "What 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."
    },
    "files": {
      "description": "Insurance 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.",
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "data": {
            "description": "The file's contents, base64-encoded (a data: URL also works). Use this or download_url, not both.",
            "type": "string",
            "maxLength": 31457280
          },
          "download_url": {
            "description": "ChatGPT's short-lived HTTPS download link for the file. Kinro opens only links from ChatGPT's file storage; other agents send data instead.",
            "type": "string",
            "maxLength": 4096,
            "format": "uri"
          },
          "file_id": {
            "description": "The chat app's ID for the file, sent with download_url.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "mime_type": {
            "description": "The file's type, if known. Kinro checks the type from the file's contents.",
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "file_name": {
            "description": "The file's name, if known.",
            "anyOf": [
              {
                "type": "string",
                "maxLength": 400
              },
              {
                "type": "null"
              }
            ]
          }
        }
      }
    },
    "conversation_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "The 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."
    }
  },
  "required": [
    "message"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "conversation_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "The 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."
    },
    "messages": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Kinro's messages, oldest first, each to show the user as written, including links. When nothing new has arrived, one note says so."
    }
  },
  "required": [
    "messages"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡get_kinro_messages(conversation_id, limit, wait)

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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "conversation_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "The 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."
    },
    "limit": {
      "description": "How many of the latest messages to return. Default 5, at most 100.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "wait": {
      "description": "Set 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.",
      "type": "boolean"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "conversation_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "The 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."
    },
    "messages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "enum": [
              "user",
              "kinro"
            ],
            "description": "Who sent it: the user (through you) or Kinro."
          },
          "text": {
            "type": "string",
            "description": "The message, as written."
          },
          "sent_at": {
            "type": "string",
            "description": "When it was sent, in ISO 8601 UTC."
          },
          "new": {
            "type": "boolean",
            "description": "True for a Kinro message you have not received before. Show it to the user."
          }
        },
        "required": [
          "from",
          "text",
          "sent_at",
          "new"
        ],
        "additionalProperties": false
      },
      "description": "The conversation's latest messages, oldest first."
    },
    "has_more": {
      "type": "boolean",
      "description": "True when earlier messages exist. History is limited to the latest 100 messages; newly delivered messages are also included."
    }
  },
  "required": [
    "messages",
    "has_more"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada2 herramientas