Skip to main content
Glama

openwiki-mcp

Servidor MCP que expone la generación de documentación de OpenWiki (OpenChamber) como herramientas del Protocolo de Contexto de Modelo, para que un OpenCode oficial y sin modificar (o cualquier host MCP) pueda generar y actualizar wikis de repositorios.

Completamente independiente del árbol fuente de opencode — openwiki se resuelve como un paquete externo (instalación con npm o un paquete offline preparado), y las credenciales del agente se transmiten a través de variables de entorno, nunca se almacenan.

Tools

Tool

Maps to agent

Notes

openwiki_status

— (solo local)

Inspecciona openwiki/ + .last-update.json. Sin agente, sin modelo, funciona sin conexión.

openwiki_generate

init

Generación inicial del wiki. El userMessage opcional dirige al agente.

openwiki_update

update

Actualización basada en diferencias; solo se regeneran las páginas obsoletas.

Related MCP server: Minecraft Wiki MCP Server

Requisitos previos

  • Node.js >= 22 (el servidor MCP y el proceso hijo del agente se ejecutan bajo node)

  • Una instalación del paquete openwiki:

    npm install -g openwiki          # online machine, or
    # offline machine: copy a prepared bundle and point at it
    set OPENWIKI_PACKAGE_ROOT=D:\path\to\staged\bundle\node_modules\openwiki

    OPENWIKI_PACKAGE_ROOT puede apuntar directamente a la raíz del paquete o a una estructura que contenga node_modules/openwiki. El paquete preparado no necesita trucos de enlaces simbólicos — Node resuelve las importaciones simples del agente a través de la búsqueda normal de node_modules.

Configuración del modelo del agente

El servidor transmite (nunca almacena) las siguientes variables al proceso hijo del agente:

Env var (server side)

Meaning

OPENWIKI_PROVIDER

openai (predeterminado) o openai-compatible

OPENWIKI_MODEL_ID

ID del modelo, ej. gpt-5

OPENAI_COMPATIBLE_BASE_URL

Apuntar a una puerta de enlace local compatible con OpenAI para mantener las claves reales fuera del entorno del agente

OPENAI_COMPATIBLE_API_KEY

Clave para el proveedor compatible con openai

OPENAI_API_KEY

Clave para el proveedor openai

OPENWIKI_PACKAGE_ROOT

Opcional; ruta explícita a la instalación de openwiki

Los argumentos de herramienta modelId/language/userMessage por llamada anulan el entorno ambiente para esa ejecución.

Registro con OpenCode

Añade a tu opencode.json / opencode.jsonc:

{
  "mcp": {
    "openwiki": {
      "type": "local",
      "command": ["node", "D:/path/to/openwiki-mcp/dist/index.js"],
      "environment": {
        "OPENWIKI_PACKAGE_ROOT": "D:/path/to/staged/bundle/node_modules/openwiki",
        "OPENWIKI_PROVIDER": "openai-compatible",
        "OPENWIKI_MODEL_ID": "gpt-5",
        "OPENAI_COMPATIBLE_BASE_URL": "http://127.0.0.1:4096/v1"
      }
    }
  }
}

Las tres herramientas aparecen entonces en cada conversación de OpenCode como herramientas ordinarias.

Desarrollo

npm install
npm run build        # tsc -> dist/
npm test             # node --test (status inspection unit tests)
npm run dev          # run the server via tsx (dev)

Pruebas de humo:

node scripts/smoke.mjs <dir> status        # local inspection only
node scripts/smoke.mjs <dir> init "note"   # full agent run (needs model env)

Verificación manual del protocolo MCP:

@'
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":1,"method":"tools/list"}
'@ | node dist/index.js

Notas de diseño

  • src/openwiki/resolve.ts — resolución de paquetes: OPENWIKI_PACKAGE_ROOT, luego require.resolve("openwiki/package.json").

  • src/openwiki/worker.mjs — worker adaptador: lee un trabajo de stdin, importa la entrada del agente por ruta absoluta, emite progreso NDJSON en stdout. Portado del adaptador packages/openwiki del fork de opencode y mantenido independiente.

  • src/openwiki/run.ts — lanza el worker como hijo del servidor MCP, de modo que un agente colgado nunca pueda derribar el host MCP.

  • src/status.ts — inspección de estado local (sin costo de modelo).

  • v0.1 asigna generate al comando init del agente, coincidiendo con openwiki 0.3.x donde init es el comando de primera generación y update el de actualización.

Related MCP Connectors

Related MCP Servers