# Herramientas del MCP

> Qué puede consultar y registrar un asistente conectado a Middleout, con los parámetros de cada herramienta.

Todas las herramientas actúan **como la persona que conectó el asistente**: ven solo lo que esa persona puede ver en Middleout. Si algo no existe o no es visible para ella, la respuesta es la misma: no encontrado.

Los objetos de la memoria se identifican por un **handle**, que las herramientas de búsqueda devuelven y las de lectura reciben.

## Consultar

| Herramienta | Para qué sirve | Parámetros |
| --- | --- | --- |
| `ask` | Hacerle una pregunta de negocio a Middleout y recibir su respuesta fundamentada, con las fuentes que cita. | `question`; `investigation_id` (opcional) para preguntar dentro de una investigación. |
| `search_knowledge` | Encontrar lo que la empresa sabe sobre algo, por significado o por número de registro. | `query`; `types` (opcional); `limit` (hasta 20, por defecto 10). |
| `read_object` | Leer un objeto completo: sus campos, sus fuentes y, en un modelo mental, sus causas. | `handle`. |
| `get_neighbourhood` | Ver qué rodea a un objeto en el grafo. | `handle`; `depth` (1 o 2). |
| `get_knowledge_map` | Ver de un vistazo qué sabe la empresa: sus áreas y los totales por tipo. | Ninguno. |
| `get_instructions` | Leer las instrucciones para trabajar en un repositorio conectado: sus archivos `AGENTS.md` y `CLAUDE.md`. | `repository` (`owner/name`). |
| `list_investigations` | Listar las investigaciones que puedes abrir, de la más nueva a la más antigua. | `limit` (hasta 50, por defecto 20). |
| `read_investigation` | Leer una investigación: su pregunta, su objetivo y lo que las personas ya concluyeron. | `investigation_id`. |

Los tipos que acepta `search_knowledge` son: `metric`, `decision`, `definition`, `procedure`, `learning`, `mental_model`, `table` y `document`.

`ask` tiene un límite de **30 preguntas por hora por persona** cuando se usa por MCP.

## Registrar

Cuando en la conversación aparece algo que la empresa debería saber, el asistente puede registrarlo en Middleout. Lo registrado queda en la memoria de inmediato y con su origen: el asistente que lo registró, a nombre de la persona.

| Herramienta | Qué registra | Parámetros principales |
| --- | --- | --- |
| `record_decision` | Una decisión: la pregunta, lo que se eligió, las alternativas y los supuestos. Si se registra otra decisión sobre la misma pregunta, reemplaza a la anterior, que queda como historia. | `question`, `outcome`, `alternatives`, `assumptions`, `rests_on`, `scope`. |
| `record_teaching` | Una enseñanza: una definición, una regla o una preferencia de formato. | `statement`, `subject`, `confirmed`, `scope`, `kind` (`definition`, `rule` o `formatting`). |
| `record_relation` | Una relación entre dos objetos de la memoria, con la cita que la respalda. | `source`, `target`, `relation`, `quote`, `confirmed`. |
| `record_question` | Una pregunta abierta que nadie ha respondido todavía. | `statement`, `scope`. |
| `record_evidence` | Evidencia a favor o en contra de algo que la memoria ya contiene. | `statement`, `stance` (`supports` o `contradicts`), `bears_on`, `scope`. |

`scope` dice a quién le sirve lo registrado: `org` (toda la organización), `team` (tu equipo) o `user` (solo tú).

## Buenas prácticas para agentes

- Antes de responder sobre el negocio, busca con `search_knowledge` o pregunta con `ask`: la empresa puede tener una definición acordada distinta de la habitual.
- Cita los handles que usaste, para que la persona pueda abrirlos en Middleout.
- Registra solo lo que la persona confirmó o decidió en la conversación, y marca `confirmed` cuando lo hizo explícitamente.
- Si una herramienta dice que algo no existe, puede que la persona no tenga acceso. No lo des por inexistente para toda la empresa.
