MCP tools
What an assistant connected to Middleout can query and record, with the parameters of each tool.
Every tool acts as the person who connected the assistant: it sees only what that person can see in Middleout. If something does not exist or is not visible to them, the answer is the same: not found.
Memory objects are identified by a handle, which the search tools return and the read tools receive.
Query
| Tool | What it is for | Parameters |
|---|---|---|
ask |
Ask Middleout a business question and get its grounded answer, with the sources it cites. | question; investigation_id (optional) to ask within an investigation. |
search_knowledge |
Find what the company knows about something, by meaning or by record number. | query; types (optional); limit (up to 20, 10 by default). |
read_object |
Read a whole object: its fields, its sources and, for a mental model, its causes. | handle. |
get_neighbourhood |
See what surrounds an object in the graph. | handle; depth (1 or 2). |
get_knowledge_map |
See at a glance what the company knows: its areas and the totals by type. | None. |
get_instructions |
Read the instructions for working in a connected repository: its AGENTS.md and CLAUDE.md files. |
repository (owner/name). |
list_investigations |
List the investigations you can open, newest first. | limit (up to 50, 20 by default). |
read_investigation |
Read an investigation: its question, its goal and what people have already concluded. | investigation_id. |
The types search_knowledge accepts are: metric, decision, definition, procedure, learning, mental_model, table and document.
ask is limited to 30 questions per hour per person when used over MCP.
Record
When something the company should know comes up in the conversation, the assistant can record it in Middleout. What is recorded goes into the memory immediately, with its origin: the assistant that recorded it, on behalf of the person.
| Tool | What it records | Main parameters |
|---|---|---|
record_decision |
A decision: the question, what was chosen, the alternatives and the assumptions. If another decision on the same question is recorded, it replaces the previous one, which is kept as history. | question, outcome, alternatives, assumptions, rests_on, scope. |
record_teaching |
A teaching: a definition, a rule or a formatting preference. | statement, subject, confirmed, scope, kind (definition, rule or formatting). |
record_relation |
A relation between two objects in the memory, with the quote that backs it. | source, target, relation, quote, confirmed. |
record_question |
An open question nobody has answered yet. | statement, scope. |
record_evidence |
Evidence for or against something the memory already contains. | statement, stance (supports or contradicts), bears_on, scope. |
scope says who the record is for: org (the whole organization), team (your team) or user (only you).
Good practices for agents
- Before answering about the business, search with
search_knowledgeor ask withask: the company may have an agreed definition that differs from the usual one. - Cite the handles you used, so the person can open them in Middleout.
- Record only what the person confirmed or decided in the conversation, and set
confirmedwhen they did so explicitly. - If a tool says something does not exist, the person may not have access to it. Do not assume it does not exist for the whole company.