Set up
Create a server
Open the knowledge base and go to Integrations → MCP Server. Under Create a server, type the end of the address (for example
acme), pick a sign-in type and click Create. The address is then https://app.kelu.dev/mcp/acme.If your website widget has already loaded on a page, a Public server named after the knowledge base is already in the list. Kelu made it for the widget’s Use MCP button. See From your website widget.Install it
Under Install it, pick your tool and copy the command or config. For an API key server it contains your key once the knowledge base has a live public key with Allow MCP access; until then it shows
<your public key>.admin, api, docs, kelu, support and portal, are refused. The name and the sign-in type cannot be changed later; delete the server and create another.
Sign-in types
| Type | For | How callers get in |
|---|---|---|
| API key | Agents and backends you run | Authorization: Bearer <client key> on every request. The key needs Allow MCP access, which is ticked by default when you create a key under Integrations → Client Keys |
| Public | Your readers, in their own editor | Sign in with Google or GitHub on first use. Each reader gets 60 requests a minute and 500 a day |
| Internal | Your team, on an internal knowledge base | Sign in with their Kelu account. Only members who can chat in the knowledge base. Each gets 60 requests a minute and 2,000 a day |
- A normal (external) knowledge base offers API key and Public. An internal one offers Internal only.
- API key and Public servers never return restricted documents. Internal servers do.
- Everyone using one API key shares its rate limit. Create a key just for MCP if you hand it out.
https://app.kelu.dev/mcp works with any client key that has Allow MCP access, sent as Authorization: Bearer, an X-Client-Key header or ?client_key=.
Tools
| Tool | Input | Returns |
|---|---|---|
search_<name>_knowledge_sources | query, optional limit (default 8, max 20) | The best-matching pages, each with its best-matching chunk, title and URL |
ask_question | question | An answer with citations |
list_sources | none | The knowledge base’s sources |
feedback | message, optional url | Records a wrong answer or missing documentation. Read reports in Traces |
get_documents | urls (max 10) | Whole pages, up to 20,000 characters each. Off by default, and not listed while off. There is no dashboard switch: send {"settings": {"mcp_documents_enabled": true}} to PATCH /api/v1/knowledge-bases/:id |
search_acme_api_knowledge_sources. search_docs also works. Tools take no knowledge base or group argument; the server’s address decides what it searches.
ask_question stops after 90 seconds, search after 30 seconds, and the other tools after 10.
Install it
Copy the exact snippet from Install it in the dashboard. For reference:From your website widget
Your website widget has a Use MCP button in its header. A reader clicks it and adds your knowledge base to Claude Code, Codex, Cursor or VS Code. You do not add anything to the script tag for this.- The button uses the knowledge base’s Public server. If there is none, Kelu creates one, named after the knowledge base, the first time the widget loads.
- Readers sign in on first use, so the commands carry no key.
- To hide the button, open the widget under Integrations → Website widget, go to Advanced → MCP button and turn off Show the MCP button. Or add
data-mcp-enabled="false"to the script tag.
One server for your whole team
https://app.kelu.dev/mcp/portal signs in a person rather than a knowledge base. It reaches every knowledge base that person may chat in, across all their workspaces, restricted documents included. It is Ask in your editor.
- Tools:
list_knowledge_bases,search_docs,ask_question,list_sources, andget_documentswhere a knowledge base allows it. The search and ask tools take optionalknowledge_base_ids,group_idsandsource_idsto narrow the search. - Limits: 60 requests a minute and 2,000 a day per person.
- Browser sign-in works for tools running on your own computer. A web-based client is refused unless Kelu has allowed its host.
Troubleshooting
403withMCP_NOT_ENABLED: the client key does not have Allow MCP access. It can’t be turned on later, so create a key with it ticked.403withKNOWLEDGE_BASE_INTERNAL: client keys do not work on an internal knowledge base. Use an Internal server or/mcp/portal.- The tool never calls Kelu: ask about your product by name. The knowledge base’s name is in the tool name and the server’s instructions, which is what the model reads.
get_documentsis missing: it is off for this knowledge base. Turn it on withPATCH /api/v1/knowledge-bases/:idand{"settings": {"mcp_documents_enabled": true}}. Other settings are kept.