openwiki-mcp

openwiki-mcp

Enables MCP hosts to generate and update repository wikis using OpenWiki's documentation generation tools.

Category
Visit Server

README

openwiki-mcp

MCP server that exposes OpenWiki (OpenChamber) documentation generation as Model Context Protocol tools, so an official, unmodified OpenCode (or any MCP host) can generate and update repository wikis.

Fully independent of the opencode source tree — openwiki itself is resolved as an external package (npm install or a staged offline bundle), and agent credentials are relayed via environment variables, never stored.

Tools

Tool Maps to agent Notes
openwiki_status — (local only) Inspects openwiki/ + .last-update.json. No agent, no model, works offline.
openwiki_generate init First-time wiki generation. Optional userMessage steers the agent.
openwiki_update update Diff-based refresh; only stale pages are regenerated.

Prerequisites

  • Node.js >= 22 (the MCP server and the agent child process both run under node)

  • An openwiki package install:

    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 may point either directly at the package root or at a layout that contains node_modules/openwiki. The staged bundle needs no junction or symlink tricks — Node resolves the agent's bare imports through the normal node_modules walk.

Agent model configuration

The server relays (never stores) the following variables into the agent child process:

Env var (server side) Meaning
OPENWIKI_PROVIDER openai (default) or openai-compatible
OPENWIKI_MODEL_ID Model id, e.g. gpt-5
OPENAI_COMPATIBLE_BASE_URL Point at a local OpenAI-compatible gateway to keep real keys out of the agent env
OPENAI_COMPATIBLE_API_KEY Key for the openai-compatible provider
OPENAI_API_KEY Key for the openai provider
OPENWIKI_PACKAGE_ROOT Optional; explicit path to the openwiki install

Per-call modelId/language/userMessage tool arguments override the ambient environment for that run.

Registering with OpenCode

Add to your 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"
      }
    }
  }
}

The three tools then appear in every OpenCode conversation as ordinary tools.

Development

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

Smoke tests:

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

Manual MCP protocol check:

@'
{"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

Design notes

  • src/openwiki/resolve.ts — package resolution: OPENWIKI_PACKAGE_ROOT, then require.resolve("openwiki/package.json").
  • src/openwiki/worker.mjs — adapter worker: reads one job from stdin, imports the agent entry by absolute path, emits NDJSON progress on stdout. Ported from the opencode fork's packages/openwiki adapter and kept independent.
  • src/openwiki/run.ts — spawns the worker as a child of the MCP server, so a hung agent can never take down the MCP host.
  • src/status.ts — local status inspection (no model cost).
  • v0.1 maps generate to the agent's init command, matching openwiki 0.3.x where init is the first-generation command and update the refresh one.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured