Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/vancovx/KunnaClienteMCP/llms.txt

Use this file to discover all available pages before exploring further.

An MCP server declares up to three capability types during the initialize handshake. Kunna MCP Client queries each capability the server advertises and presents it in the inspector sidebar. Servers are free to expose any combination — tools only, prompts and resources but no tools, all three, or just one — and Kunna adapts its UI accordingly.

Tools

Tools are executable actions the AI model can invoke. They receive typed input arguments and return a structured result. This is how a model moves from passively generating text to actively interacting with external systems — querying a database, running a calculation, creating a record, or calling an API.Schema — each tool descriptor carries three fields:
FieldTypeDescription
namestringUnique identifier used when calling the tool
descriptionstringHuman-readable explanation of what the tool does
inputSchemaJSON Schema objectDescribes the arguments the tool accepts, including types, required fields, enums, and defaults
How Kunna uses it — when a tool is selected in the inspector, the schemaToFields() helper parses inputSchema.properties into typed form fields. Required fields are marked, enum values become dropdowns, booleans become toggles, and defaults are pre-filled. A raw JSON mode is also available for advanced use cases.Example tool descriptor:
{
  "name": "search-campus-buildings",
  "description": "Search for buildings on the campus by keyword",
  "inputSchema": {
    "type": "object",
    "properties": {
      "query": { "type": "string", "description": "Search keyword" }
    },
    "required": ["query"]
  }
}

Capability detection

After the initialize handshake completes, Kunna reads the server’s advertised capabilities and fires exactly the list requests the server supports — nothing more. The three calls are issued in parallel using Promise.all to keep connection time minimal:
const capabilities = this.client.getServerCapabilities() ?? {};
const [tools, prompts, resources] = await Promise.all([
  capabilities.tools     ? this.client.listTools()     : { tools: [] },
  capabilities.prompts   ? this.client.listPrompts()   : { prompts: [] },
  capabilities.resources ? this.client.listResources() : { resources: [] },
]);
If a capability key is absent or falsy in the server’s response, the corresponding array is left empty and the relevant section is hidden in the Kunna sidebar. This means Kunna is safe to connect to minimal servers that only implement one capability type.

Build docs developers (and LLMs) love