EKB Runtime
Endpoint: /runtime/mcp
Permission: Use (odin:use) — consent label Use your agents and tools
Runtime turns what already exists in EKB into named MCP tools. Draft / unpublished work is never exposed — publishing is what makes custom tools available over MCP.
Prerequisites
- Consent to Use your agents and tools for this client
- Access to the project(s) whose agents, tools, KB, or smart tables you want to use
- Published workflows / custom tools if you need
run_*tools
Tools the client sees
Always present
| Tool | Purpose | Key inputs |
|---|---|---|
list_odin_projects | Discover project ids, names, and descriptions | (none) |
search_knowledge | Search a project knowledge base and return matching passages with sources | query (required); project_id (required unless pinned); optional max_results (default 10) |
query_smart_table | Read rows from a smart table by name or id | table (required); project_id (required unless pinned); optional search, limit, page, sort_column, sort_direction |
Use search_knowledge for looking up facts in documents. Use an ask_<agent> tool when you want an agent to reason over those results.
Dynamic tools (per project)
| Pattern | Meaning | Key inputs |
|---|---|---|
ask_<agent_name> | Ask a reachable agent | message (required); optional chat_id to continue a conversation |
run_<tool_name> | Run a published custom tool / workflow | Inputs mirror the tool’s declared schema (real names and types) |
Naming notes:
- Agent and tool names are slugified for MCP (punctuation normalized)
- With multiple projects and no pin, names may include a project qualifier
- Tool lists can be large; pin a project when you know the target
Every ask_* response includes a chat_id. Pass it back on the next call to continue the same conversation; omit it to start fresh.
Pin a project
Send this header from your MCP client config:
x-project-id: <your-project-id>
| Mode | Behavior |
|---|---|
| With pin | Tools scoped to that project; project_id often optional on static tools |
| Without pin | May aggregate across projects you can access; project_id required on search_knowledge / query_smart_table |
Discover ids with list_odin_projects if you do not already know them.
Publishing and visibility
| Resource | Exposed over Runtime when |
|---|---|
| Agent | You can reach it in EKB with the same account |
| Custom tool / workflow | It is published (drafts are omitted) |
| Knowledge base passages | Document is visible to you (including Access Tags) |
| Smart table rows | Table exists in a project you can access |
Runtime does not grant extra visibility. Access Tags and project membership still filter what search and agents can return.
When to use Runtime
- “Ask our support / HR / ops agent from Claude”
- “Run this published workflow with these inputs”
- “Search the KB” or “pull rows from a smart table”
- Any client that should use EKB without permission to change configuration
Tips
- Publish workflows before expecting them as
run_*tools - Prefer Runtime-only connections on laptops and assistants that must not edit agents
- Prefer
ask_*when you want judgment; prefersearch_knowledge/query_smart_tablefor direct lookup - Keep conversations coherent by reusing
chat_id
Troubleshooting
| Symptom | What to check |
|---|---|
Expected run_* missing | Publish the tool; confirm the account can see it in the product |
| Wrong or huge tool list | Set x-project-id |
| Search returns nothing sensitive you expected to hide | Access Tags / project access for the calling user — Runtime acts as that user |
project_id is required | Call list_odin_projects or pin with x-project-id |
| Conversation resets every turn | Pass chat_id from the previous ask_* response |