Skip to main content
Glama

openwiki-mcp

OpenWiki(OpenChamber) 문서 생성을 Model Context Protocol 도구로 노출하는 MCP 서버입니다. 이를 통해 공식적인 수정되지 않은 OpenCode(또는 모든 MCP 호스트)가 리포지토리 위키를 생성하고 업데이트할 수 있습니다.

opencode 소스 트리와 완전히 독립적입니다. openwiki 자체는 외부 패키지(npm 설치 또는 준비된 오프라인 번들)로 확인되며, 에이전트 자격 증명은 환경 변수를 통해 전달되며 저장되지 않습니다.

도구

도구

에이전트 매핑

참고

openwiki_status

— (로컬 전용)

openwiki/ + .last-update.json을 검사합니다. 에이전트나 모델이 필요 없으며 오프라인에서 작동합니다.

openwiki_generate

init

최초 위키 생성입니다. 선택적 userMessage가 에이전트를 안내합니다.

openwiki_update

update

차이 기반 새로고침; 오래된 페이지만 재생성됩니다.

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를 포함하는 레이아웃을 가리킬 수 있습니다. 준비된 번들은 정션 또는 심볼릭 링크 트릭이 필요 없습니다. Node는 일반적인 node_modules 탐색을 통해 에이전트의 베어 임포트를 해결합니다.

에이전트 모델 구성

서버는 다음 변수를 에이전트 자식 프로세스로 전달하며 저장하지 않습니다.

환경 변수 (서버 측)

의미

OPENWIKI_PROVIDER

openai (기본값) 또는 openai-compatible

OPENWIKI_MODEL_ID

모델 ID, 예: gpt-5

OPENAI_COMPATIBLE_BASE_URL

로컬 OpenAI 호환 게이트웨이를 가리켜 실제 키를 에이전트 환경 밖에 유지

OPENAI_COMPATIBLE_API_KEY

openai-compatible 제공자의 키

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에서 하나의 작업을 읽고, 절대 경로로 에이전트 진입점을 가져오며, stdout에 NDJSON 진행 상황을 내보냅니다. opencode 포크의 packages/openwiki 어댑터에서 포팅되었으며 독립적으로 유지됩니다.

  • 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