Skip to main content
Glama

wiki-skills

A local MCP connector that lets Claude search, read, create, and edit pages in the ok-wiki knowledge base.

It runs as a child process of the Claude client on the same machine as ok-wiki, speaks MCP over stdio, and reaches the wiki over HTTP with an API key that never enters the model's context.

Status: documentation first. The architecture is specified and the upstream API is mapped; src/ is not yet implemented. Start at docs/architecture.md.

What it can do

  • Search and read — full-text search, fetch a page by path or id, list pages by tag or recency

  • Create and edit — create markdown pages; patch an existing page's content, title, description, tags, or published state

  • History — list a page's revisions, fetch a specific version, restore a page to an earlier one

  • Tags — list and autocomplete the wiki's existing tag vocabulary

  • Assets — upload a file and get back a ready-to-paste markdown reference; list assets and create folders

Related MCP server: requarks-wiki-mcp

What it deliberately cannot do

No moving, renaming, or deleting pages. Those break inbound links or lose content, and a mistyped path is exactly the error a model makes. Do them in the ok-wiki UI. The boundary is enforced twice — the tools don't exist, and the API key's group withholds delete:pages and manage:pages. Reasoning: docs/adr/0005.

Also out of scope: comments, navigation, users and groups, theming, and administrative operations.

Quickstart

1. Build

cd /home/obe/wiki-skills
npm install
npm run build          # MCP registration points at dist/index.js, not src/

2. Enable the ok-wiki API

In the wiki: Administration → API Access → enable. Without this, every request is rejected with "API is disabled. You must enable it from the Administration Area first."

3. Mint a scoped API key

Create a group for the connector granting exactly:

read:pages, read:source, write:pages, read:history, read:assets, write:assets, manage:pages

Grant them in both the group's global permissions and its page rules — the wiki checks both layers. manage:pages looks like more than a reader needs, but the wiki's single-page resolvers require it: without it, page lookups fail with "You are not authorized to view this page" even though listing works (docs/ok-wiki-api.md §4).

Then Administration → API Access → New API Key, bound to that group.

read:source is the one that fails quietly if you forget it — pages come back with a null body instead of an error. Use a dedicated key so it can be revoked independently and so wiki history distinguishes agent edits from human ones. Details: docs/ok-wiki-api.md §2.

4. Register with Claude Code

claude mcp add wiki \
  --env WIKI_BASE_URL=http://localhost:3000 \
  --env WIKI_API_KEY=<your-api-key> \
  -- node /home/obe/wiki-skills/dist/index.js

Or, to share it with a project via .mcp.json:

{
  "mcpServers": {
    "wiki": {
      "command": "node",
      "args": ["/home/obe/wiki-skills/dist/index.js"],
      "env": {
        "WIKI_BASE_URL": "http://localhost:3000",
        "WIKI_API_KEY": "${WIKI_API_KEY}"
      }
    }
  }
}

Prefer the ${VAR} form in any file you might commit — don't put the key in version control.

5. Verify

Run /mcp in Claude Code and confirm wiki is connected with its tools listed. Then ask for something read-only, like "search the wiki for onboarding", to exercise wiki_search_pages.

Configuration

Variable

Required

Default

Purpose

WIKI_BASE_URL

yes

e.g. http://localhost:3000http://ok-wiki.local also serves the wiki

WIKI_API_KEY

yes

ok-wiki API key (JWT)

WIKI_LOCALE

no

en

Default locale

WIKI_TIMEOUT_MS

no

15000

Per-request timeout

WIKI_READONLY

no

0

1 registers only read tools

WIKI_MAX_CONTENT_BYTES

no

100000

Cap on page body returned into context

WIKI_LOG_LEVEL

no

info

Diagnostics, always to stderr

WIKI_MAX_UPLOAD

no

10485760

Max upload size in bytes for wiki_upload_asset (10 MB)

WIKI_UPLOAD_ALLOWLIST

no

unset

Colon-separated absolute path prefixes uploads may come from; unset = unrestricted

Documentation

Document

What's in it

docs/architecture.md

System context, module layout, invariants, request flows, error model, security, testing

docs/tool-surface.md

Every tool's inputs, outputs, and behavior

docs/ok-wiki-api.md

Upstream endpoints, auth, permissions, and the gotchas that shape the design

docs/prd.md

Numbered requirements, milestones, and acceptance criteria — the build plan

docs/adr/

Why stdio, why GraphQL, why TypeScript, why read-modify-write, why no deletes

If you read only one thing before writing code, make it docs/adr/0004: ok-wiki's pages.update is a full replace, not a patch, and a naive implementation silently unpublishes pages and drops their tags.

Troubleshooting

Symptom

Cause

Connector won't connect; no useful error

Something wrote to stdout. Under stdio, stdout is the protocol channel — all logging must go to stderr.

Tools missing after a source edit

You edited src/ but the server runs dist/. Re-run npm run build.

"API is disabled"

Step 2 not done.

"API Key is invalid or was revoked"

Key revoked or expired; mint a new one.

Listing works but fetching a single page is "not authorized"

The key's group is missing manage:pages (required by the single-page resolvers), or lacks it in the group's page rules.

Page reads succeed but content is null

The key's group is missing read:source.

Edits rejected as conflicts

Someone edited the page after your read. Re-read and retry.

"cannot reach the wiki"

ok-wiki isn't up. It runs as a systemd unit — check systemctl status wiki.service, and journalctl -u wiki.service for why it stopped.

License

MIT

Install Server
F
license - not found
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    An MCP Server implementation that enables managing Confluence wiki pages through natural language queries, supporting operations like creating, updating, deleting, and searching pages across different knowledge bases.
    2
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that enables AI agents to interact with Wiki.js as a knowledge base through a comprehensive set of 29 tools for content retrieval and management. It supports full-text search, page versioning, and asset browsing with optional write operations secured by safety gates.
    29
    13
    4
    MIT

View all related MCP servers

Related MCP Connectors

  • Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.

  • MCP server for AgentDocs (agentdocs.eu): read, search, write, comment on & share Markdown docs.

  • MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Moontower-AI/wiki-skills'

If you have feedback or need assistance with the MCP directory API, please join our Discord server