Skip to main content
Glama

openwiki-mcp

MCP-сервер, который предоставляет генерацию документации OpenWiki (OpenChamber) в виде инструментов протокола Model Context Protocol, чтобы официальный, немодифицированный OpenCode (или любой MCP-хост) мог создавать и обновлять вики репозиториев.

Полностью независим от исходного дерева opencode — сам openwiki разрешается как внешний пакет (установка через npm или подготовленный офлайн-бандл), а учетные данные агента передаются через переменные окружения и никогда не сохраняются.

Инструменты

Инструмент

Соответствует агенту

Примечания

openwiki_status

— (только локально)

Проверяет openwiki/ + .last-update.json. Без агента, без модели, работает офлайн.

openwiki_generate

init

Первичная генерация вики. Необязательный userMessage направляет агента.

openwiki_update

update

Обновление на основе diff; перегенерируются только устаревшие страницы.

Related MCP server: Minecraft Wiki MCP Server

Предварительные требования

  • Node.js >= 22 (MCP-сервер и дочерний процесс агента работают под node)

  • Установка пакета 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 может указывать как непосредственно на корень пакета, так и на структуру, содержащую node_modules/openwiki. Подготовленному бандлу не нужны никакие junction или symlink-трюки — Node разрешает прямые импорты агента через обычный обход node_modules.

Конфигурация модели агента

Сервер передает (никогда не сохраняет) следующие переменные в дочерний процесс агента:

Переменная окружения (на стороне сервера)

Значение

OPENWIKI_PROVIDER

openai (по умолчанию) или openai-compatible

OPENWIKI_MODEL_ID

Идентификатор модели, например gpt-5

OPENAI_COMPATIBLE_BASE_URL

Укажите локальный шлюз, совместимый с OpenAI, чтобы не передавать реальные ключи в окружение агента

OPENAI_COMPATIBLE_API_KEY

Ключ для провайдера, совместимого с OpenAI

OPENAI_API_KEY

Ключ для провайдера openai

OPENWIKI_PACKAGE_ROOT

Необязательно; явный путь к установке openwiki

Аргументы инструмента modelId/language/userMessage для каждого вызова переопределяют текущее окружение для этого запуска.

Регистрация в OpenCode

Добавьте в ваш 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"
      }
    }
  }
}

После этого три инструмента появятся в каждом разговоре OpenCode как обычные инструменты.

Разработка

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

Дымовые тесты:

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

Ручная проверка протокола 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

Заметки по дизайну

  • src/openwiki/resolve.ts — разрешение пакета: OPENWIKI_PACKAGE_ROOT, затем require.resolve("openwiki/package.json").

  • src/openwiki/worker.mjs — адаптерный воркер: читает одно задание из stdin, импортирует точку входа агента по абсолютному пути, выводит NDJSON-прогресс в stdout. Перенесен из адаптера packages/openwiki форка opencode и сохраняет независимость.

  • src/openwiki/run.ts — запускает воркер как дочерний процесс MCP-сервера, чтобы зависший агент никогда не мог обрушить MCP-хост.

  • src/status.ts — локальная проверка статуса (без затрат на модель).

  • v0.1 сопоставляет generate с командой агента init, что соответствует openwiki 0.3.x, где init — команда первичной генерации, а update — команда обновления.

Related MCP Connectors

Related MCP Servers