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. - ๐ GROWI page search and retrieval - ๐ Page management - ๐ท๏ธ Tag management - ๐ Comment management - ๐ Share link management - GROWI v7.3.
Add this skill
npx mdskills install growilabs/growi-mcp-serverWell-documented MCP server enabling comprehensive GROWI wiki integration with clear setup and extensive tool coverage.
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.
Supports simultaneous connections to multiple GROWI apps. Each app is configured using numbered environment variables.
{
"mcpServers": {
"growi": {
"command": "npx",
"args": ["@growi/mcp-server"],
"env": {
"GROWI_APP_NAME_1": "main",
"GROWI_BASE_URL_1": "https://your-growi-instance.com",
"GROWI_API_TOKEN_1": "your_growi_api_token"
}
}
}
}
{
"mcpServers": {
"growi": {
"command": "npx",
"args": ["@growi/mcp-server"],
"env": {
"GROWI_DEFAULT_APP_NAME": "staging",
"GROWI_APP_NAME_1": "production",
"GROWI_BASE_URL_1": "https://wiki.example.com",
"GROWI_API_TOKEN_1": "token_for_production",
"GROWI_APP_NAME_2": "staging",
"GROWI_BASE_URL_2": "https://wiki-staging.example.com",
"GROWI_API_TOKEN_2": "token_for_staging",
"GROWI_APP_NAME_3": "development",
"GROWI_BASE_URL_3": "https://wiki-dev.example.com",
"GROWI_API_TOKEN_3": "token_for_development"
}
}
}
}
searchPages - Search pages by keywordscreatePage - Create a new pageupdatePage - Update an existing pagedeletePages - Delete pages (bulk operation supported)duplicatePage - Duplicate a page (including child pages)renamePage - Change page name and pathgetPage - Get a page datagetPageInfo - 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 pagelistRevisions - Get page edit historygetRevision - Get details of a specific revisioncreateShareLink - Create a share linkgetShareLinks - Get share links of a pagedeleteShareLinks - Delete share linksdeleteShareLinkById - Delete a specific share linkgetUserRecentPages - Get recent pages of a specific user| 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_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 promptgit clone https://github.com/growilabs/growi-mcp-server.git
cd growi-mcp-server
pnpm install
cp .env.example .env.local
# Edit .env.local to enter GROWI connection information
# Test with MCP CLI
pnpm dev:cli
# Develop with MCP Inspector
pnpm dev:inspect
# Build
pnpm build
# Lint
pnpm lint
# Run tests
pnpm test
# Run tests with coverage
pnpm test:coverage
# Run in production
pnpm start
pnpm build
{
"mcpServers": {
"growi": {
"command": "node",
"args": ["/Users/username/projects/growi-mcp-server/dist/index.js"],
"env": {
"GROWI_APP_NAME_1": "main",
"GROWI_BASE_URL_1": "https://your-growi-instance.com",
"GROWI_API_TOKEN_1": "your_growi_api_token"
}
}
}
}
{
"mcpServers": {
"growi": {
"command": "node",
"args": ["/Users/username/projects/growi-mcp-server/dist/index.js"],
"env": {
"GROWI_DEFAULT_APP_NAME": "production",
"GROWI_APP_NAME_1": "production",
"GROWI_BASE_URL_1": "https://wiki.example.com",
"GROWI_API_TOKEN_1": "production_token",
"GROWI_APP_NAME_2": "staging",
"GROWI_BASE_URL_2": "https://wiki-staging.example.com",
"GROWI_API_TOKEN_2": "staging_token"
}
}
}
}
Note:
Set the absolute path to the built output in "args"
curl -v http://app:3000/_api/v3/healthcheck
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 machinedocker network connect growi_devcontainer_default growi-mcp-server-dev
Contributions to the project are welcome!
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.
Install via CLI
npx mdskills install growilabs/growi-mcp-serverGrowi/mcp Server is a free, open-source AI agent skill. 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. - ๐ GROWI page search and retrieval - ๐ Page management - ๐ท๏ธ Tag management - ๐ Comment management - ๐ Share link management - GROWI v7.3.
Install Growi/mcp Server with a single command:
npx mdskills install growilabs/growi-mcp-serverThis downloads the skill files into your project and your AI agent picks them up automatically.
Growi/mcp Server works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.