The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Growi MCP Server listing page.
A Model Context Protocol (MCP) server that connects AI models to GROWI wiki content. Enables LLMs to search and retrieve information from your organization's knowledge base for accurate, context-aware responses. Supports connections to multiple GROWI apps.
This repository also provides Agent Skills — reusable workflow definitions that AI coding agents can load to interact with GROWI more effectively.
suggest-path tool, presents destination candidates, and guides the user through page naming and visibility settings.The fastest way to start using GROWI. Once you install the skill, the rest of the setup (connecting the MCP server, configuring UTCP Code-Mode, verifying connectivity) is guided by the AI agent.
Install the skill for your agent.
Add this repository as a plugin marketplace, then install the plugin:
Install as a Gemini CLI extension (includes both MCP tools and skills):
Update with:
[!IMPORTANT] Extensions installed from a release earlier than v1.7.1 cannot start the MCP server: only the bundled skills work and the GROWI tools never show up. Existing installs do not switch over on their own, so run
gemini extensions update growi-mcp-serverto pick up the fix.
Works with Claude Code, Gemini CLI, Cursor, Codex, GitHub Copilot, and many other agents:
Update with:
Download skills directly from the repository and place them in your agent's skills directory:
skills/ in this repository.claude/skills/<skill-name>/SKILL.md.gemini/skills/<skill-name>/SKILL.md.agents/skills/<skill-name>/SKILL.mdAfter installation, restart (or reload) your agent so the skill is recognized.
Tell your agent "set up GROWI", and the growi-mcp-setup skill will start and guide you from the MCP server connection settings through verifying connectivity.
[!NOTE] If you want to configure the MCP server directly without the skill, see Use the MCP Server Directly.
You can also register the MCP server directly with your agent instead of using the skill. Use this for a minimal setup, or as a fallback when skill-based setup is not available.
Supports simultaneous connections to multiple GROWI apps. Each app is configured using numbered environment variables.
[!TIP] For skill-based setup (recommended), see Quick Start.
searchPages - Search pages by keywordscreatePage - Create a new pageupdatePage - Update an existing page (full-body replace; returns the new revision ID)editPage - Edit parts of a page with string replacements without sending the whole body (supports dry-run diff preview)deletePages - Delete pages (bulk operation supported)duplicatePage - Duplicate a page (including child pages)renamePage - Change page name and pathgetPageOutline - Get the heading outline of a page (heading tree with line ranges and sizes, without the body); also detects setext-style (underline) headingsgetPageSection - Read only a part of a page, addressed by heading text or line rangegetPageWholeContents - Get the full markdown body of a pagegetPage - Deprecated, will be removed in 2.0.0. Alias of getPageWholeContents kept for backward compatibility; use getPageOutline, getPageSection, or getPageWholeContents insteadgetPageInfo - Get detailed page informationgetRecentPages - Get list of recently updated pagesgetPageListingRoot - Get root page listgetPageListingChildren - Get child pages of specified pagepageListingInfo - Get summary information of page listingspublishPage / unpublishPage - Set page publish/unpublish statusgetPageTag - Get tags of a pageupdateTag - Update tags of a pagegetTagList - Get list of tagssearchTags - Search tagsgetComments - Get comments of a pageaddComment - Add a comment to a pageremoveComment - Remove a comment from a pagelistRevisions - Get page edit history (revision bodies are omitted; bodyLength is returned instead)getRevision - Get details of a specific revisionlistRevisionChanges - List the authenticated user's consecutive-edit runs across all pages (requires GROWI v7.5.6 or later)getRevisionDiffs - Get unified diffs for a batch of revision pairs (requires GROWI v7.5.6 or later)createShareLink - Create a share linkgetShareLinks - Get share links of a pagedeleteShareLinks - Delete share linksdeleteShareLinkById - Delete a specific share linkgetUserRecentPages - Get recent pages of a specific userBesides serving MCP tools, the package provides commands for working with a local clone of a GROWI
Vault (the wiki exposed as a read-only git endpoint). They exist so an agent can search the wiki as
plain files — the growi-smart-save skill uses them for its high-accuracy destination search.
The instance is named by its app name, and its base URL and credential come from the same
configuration the MCP server uses — including GROWI_HTTP_AUTH_* when the instance sits behind a
reverse proxy — so no token is ever passed on the command line. Requires git 2.31+ (2.35+ for
--no-user). Exit codes: 0 the clone is usable, 1 a usage or environment problem, 2 a git
failure or an unusable clone.
| Variable Name | Required | Description | Default Value |
|---|---|---|---|
GROWI_APP_NAME_{N} | ✅ | GROWI app identifier name (N is an integer) | - |
GROWI_BASE_URL_{N} | ✅ | Base URL of GROWI instance (N is an integer) | - |
GROWI_API_TOKEN_{N} | ✅ | GROWI API access token (N is an integer) | - |
GROWI_HTTP_AUTH_USERNAME_{N} | Username for HTTP auth (Basic) in front of GROWI, e.g. a reverse proxy. Required together with the password. | - | |
GROWI_HTTP_AUTH_PASSWORD_{N} | Password for HTTP auth (Basic) in front of GROWI. Required together with the username. | - | |
GROWI_DEFAULT_APP_NAME | Default app name to use | First configured app |
GROWI_APP_NAME_N, GROWI_BASE_URL_N, and GROWI_API_TOKEN_N is requiredGROWI_DEFAULT_APP_NAME is omitted, the first configured app becomes the defaultGROWI_DEFAULT_APP_NAME will be used as the default app when the LLM does not explicitly include an app name in the promptWhen a GROWI instance sits behind HTTP authentication (e.g. a reverse proxy enforcing Basic auth), set both GROWI_HTTP_AUTH_USERNAME_{N} and GROWI_HTTP_AUTH_PASSWORD_{N} for that app. You only provide a username and password; the Basic Authorization header is built for you.
Authorization header and the GROWI API token (GROWI_API_TOKEN_{N}) is sent via the X-GROWI-ACCESS-TOKEN header instead. Without it, the default Bearer token scheme is unchanged.[!NOTE] Set the absolute path to the built output in "args"
app hostname cannot be resolved, check the devcontainer network and verify it includes growi_devcontainer_default
.devcontainer/devcontainer.json file sets --network in runArgs, so rebuilding the container should apply this settingdocker network command on the docker host machineContributions to the project are welcome!
pnpm changeset to record the impact level and a user-facing description, and commit the generated .changeset/*.md with your PR. Internal-only changes don't need one.This project is released under the MIT License.
Notice
This MCP server is under development. APIs may change without notice. Please test thoroughly before using in production environments.