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.
Documentation
@growi/mcp-server
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.
Key Features
- 🔍 GROWI page search and retrieval
- 📝 Page management
- 🏷️ Tag management
- 📋 Comment management
- 🔗 Share link management
Supported GROWI Versions
- GROWI v7.3.x or higher recommended
- Some features are also available starting from GROWI v7.2.5 and later
- GROWI API
MCP Server Configuration
Supports simultaneous connections to multiple GROWI apps. Each app is configured using numbered environment variables.
Single App Configuration Example
{
"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"
}
}
}
}Multiple Apps Configuration Example
{
"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"
}
}
}
}Available Tools (Features)
Page Management
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 status
Tag Management
getPageTag- Get tags of a pageupdateTag- Update tags of a pagegetTagList- Get list of tagssearchTags- Search tags
Comments & Discussions
getComments- Get comments of a page
Revision Management
listRevisions- Get page edit historygetRevision- Get details of a specific revision
Share Links
createShareLink- Create a share linkgetShareLinks- Get share links of a pagedeleteShareLinks- Delete share linksdeleteShareLinkById- Delete a specific share link
User Information
getUserRecentPages- Get recent pages of a specific user
Configuration Options
Environment Variables
| 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 |
Multiple Apps Configuration Notes
- Use integer values (1, 2, 3...) for each app configuration (sequential numbering is not required)
- Combination of
GROWI_APP_NAME_N,GROWI_BASE_URL_N, andGROWI_API_TOKEN_Nis required - App names, base URLs, and API tokens must each be unique
- If
GROWI_DEFAULT_APP_NAMEis omitted, the first configured app becomes the default - The app specified in
GROWI_DEFAULT_APP_NAMEwill be used as the default app when the LLM does not explicitly include an app name in the prompt
Developer Information
Requirements
- Node.js 18 or higher
- pnpm (recommended)
- GROWI instance (for development and testing)
Getting Started
1. Clone the repository
git clone https://github.com/growilabs/growi-mcp-server.git
cd growi-mcp-server2. Install dependencies
pnpm install3. Set up environment variables
cp .env.example .env.local
# Edit .env.local to enter GROWI connection information4. Start the development server
# Test with MCP CLI
pnpm dev:cli
# Develop with MCP Inspector
pnpm dev:inspectBuild and Test
# Build
pnpm build
# Lint
pnpm lint
# Run tests
pnpm test
# Run tests with coverage
pnpm test:coverage
# Run in production
pnpm startMCP Server Configuration
1. Build
pnpm build2. MCP Server Configuration (Single App)
{
"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"
}
}
}
}3. MCP Server Configuration (Multiple Apps)
{
"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"
Troubleshooting
When unable to connect to GROWI
1. Check connectivity
curl -v http://app:3000/_api/v3/healthcheck2. If the app hostname cannot be resolved, check the devcontainer network and verify it includes growi_devcontainer_default
- The
.devcontainer/devcontainer.jsonfile sets--networkinrunArgs, so rebuilding the container should apply this setting - To add manually, run the following:
- Run
docker networkcommand on the docker host machine
docker network connect growi_devcontainer_default growi-mcp-server-devContributing
Contributions to the project are welcome!
How to Contribute
1. Issue Reports: Bug reports and feature requests via GitHub Issues
2. Pull Requests:
- Fork and create a branch
- Implement changes
- Add tests (if applicable)
- Create a pull request
Development Guidelines
- Coding Standards: Use Biome
- Commit Messages: Follow Conventional Commits
License
This project is released under the MIT License.
---
Related Links
- **GROWI Official Site** - Open source wiki platform
- **Model Context Protocol** - Standard protocol for AI and tool integration
- **GROWI SDK TypeScript** - GROWI API TypeScript SDK
- **FastMCP** - MCP server development framework
---
Notice
This MCP server is under development. APIs may change without notice. Please test thoroughly before using in production environments.
Similar MCP
Based on tags & features
Trending MCP
Most active this week