Files
outiline-mcp/openspec/changes/create-outline-mcp-server/specs/mcp-server/spec.md
T

39 lines
2.0 KiB
Markdown

# Spec: mcp-server
## ADDED Requirements
### Requirement: Arranque del servidor por defecto
Cuando el binario se ejecuta sin argumentos, el sistema SHALL iniciar el servidor MCP usando transporte stdio.
#### Scenario: Ejecución sin argumentos
- **WHEN** el usuario ejecuta el binario sin ningún argumento
- **THEN** el sistema arranca el servidor MCP en modo stdio y queda a la espera de mensajes del cliente
### Requirement: Comando version
El sistema SHALL exponer el comando `version` que imprime la versión del binario.
#### Scenario: Consulta de versión
- **WHEN** el usuario ejecuta el binario con el argumento `version`
- **THEN** el sistema imprime por stdout la versión inyectada en tiempo de compilación mediante `-ldflags`
### Requirement: Comando update
El sistema SHALL exponer el comando `update` que ejecuta el proceso de auto-actualización del binario.
#### Scenario: Ejecución de actualización
- **WHEN** el usuario ejecuta el binario con el argumento `update`
- **THEN** el sistema consulta la última release de Gitea y aplica la actualización si existe una versión superior
### Requirement: Metadatos de build inyectados
El sistema SHALL definir variables globales (`Version`, `GiteaURL`, `RepoOwner`, `RepoName`) que MUST ser inyectables en tiempo de compilación mediante `-ldflags -X`.
#### Scenario: Compilación con ldflags
- **WHEN** el binario se compila pasando valores para `main.Version`, `main.GiteaURL`, `main.RepoOwner` y `main.RepoName` vía `-ldflags`
- **THEN** el comando `version` y la lógica de auto-update utilizan esos valores en tiempo de ejecución
### Requirement: Registro de herramientas MCP
El servidor MCP SHALL registrar las herramientas `outline_list_collections`, `outline_search`, `outline_get_document` y `outline_create_document` y MUST exponerlas vía el protocolo MCP.
#### Scenario: Listado de herramientas desde un cliente MCP
- **WHEN** un cliente MCP solicita la lista de herramientas disponibles
- **THEN** el servidor responde incluyendo las cuatro herramientas de Outline con sus esquemas de entrada definidos