Use MCP tools when you want the MKA1 API to call tools from an external MCP server during a response. Define the MCP server inDocumentation Index
Fetch the complete documentation index at: https://docs.mka1.com/llms.txt
Use this file to discover all available pages before exploring further.
tools.
Limit which tools the model can call with allowed_tools.
Use require_approval when you want your app to pause and ask the end user before the tool runs.
Use X-On-Behalf-Of for the MKA1 API end user.
Pass upstream MCP server credentials in the MCP tool definition.
Call an MCP tool directly
Setrequire_approval to 'never' when the tool can run immediately.
output array contains:
function_call— the model’s call to the MCP-discovered toolfunction_call_output— the data returned by the MCP servermessage— the model’s text response summarizing the results
Require end-user approval
Setrequire_approval to 'always' when your app should stop and wait for an approval decision.
In this flow, create the response in background mode, poll it, and look for an mcp_approval_request item in output.
approve: false.
You can also include a reason field in the mcp_approval_response item.
For approval UIs, show:
server_label— which MCP server is being usedname— which tool the model wants to callarguments— what arguments it plans to send
MCP tool definition reference
| Parameter | Type | Default | Description |
|---|---|---|---|
type | "mcp" | — | Required. Identifies this as an MCP tool. |
server_label | string | — | Required. Display name for the MCP server. |
server_url | string | — | URL of the MCP server endpoint. |
server_description | string | — | Optional description of the server’s purpose. |
allowed_tools | string[] | — | Limit which tools the model can call. |
headers | object | — | Headers to pass to the MCP server (e.g. auth tokens). |
require_approval | "always" | "never" | "always" | Whether to pause for end-user approval before calling. |
connector_id | string | — | Use a preconfigured connector instead of a custom server URL. |
headers are automatically masked in stored responses and streaming events.
Next steps
- See generate a response for the base Responses flow
- See background responses for polling and streaming patterns
- See conversations if you want to keep the same end user in a longer thread
- Review the API reference for the full Responses schema