Tools and connected apps
Choose web search, connected apps, or custom MCP and understand who executes tools.
Choose the integration
| Need | Request option | Setup |
|---|---|---|
| Current public information | web_search: true | Search guide; a search-capable route. |
| Data in connected applications | tools: [{"type":"kendr_app","selection":"auto"}] | Connect the application to the same Kendr account first. |
| Your own service through MCP | tools: [{"type":"kendr_mcp","server_id":"mcp_..."}] | Register a trusted server. |
Understand the execution boundary
Kendr executes attached MCP and connected-app tools on the server and returns the completed assistant answer. It does not expose pending client-side function calls or an endpoint for submitting function results. Provider-native declarations can pass through to compatible routes, but declarations alone do not attach executable application code.
To bring your own operation, expose it through a trusted MCP server and attach the registered ID. OpenAI’s function-calling guide describes the upstream client loop; Kendr uses the server-executed contract documented here.
Attach connected applications
Complete connector setup first. The key must belong to that account and have models:invoke. Kendr selects relevant chat-capable apps; provider credentials remain on the server.
curl https://api.kendr.org/v1/responses \
-H "Authorization: Bearer $KENDR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: connected-app-demo-001" \
-d '{
"model": "kendr-intelligent",
"input": "Find the release checklist in my connected workspace and summarize it.",
"tools": [{"type": "kendr_app", "selection": "auto"}]
}'
Design a custom tool
Start with a narrow read operation such as search_docs(query). Your MCP server implements tool discovery and invocation, authenticates requests, validates input, and returns bounded text with source URLs. A JSON function schema alone is not an MCP server.
Restrict registration to an allowlist such as search_docs and read_page. Enforce document access inside the service. For tools that change data, enforce approval in your application or tool service before committing changes; a prompt instruction alone is not an authorization mechanism.