39 lines
2.0 KiB
Markdown
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
|