Wiki代理服务器

Growi MCP是一个为开源Wiki工具Growi设计的代理服务器,用于信息共享和知识管理,支持页面列表检索、读写、创建更新等操作。

  • by ka1222te
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ka1222te/growi-mcp

使用说明

格罗维 MCP

Growi MCP是为Growi设计的MCP服务器,Growi是一个简化信息共享和知识管理的开源维基工具。

概述

该项目提供了一个非官方的MCP服务器,作为代理执行各种操作,如检索页面列表、读写页面、创建和更新页面等。在内部,它使用Growi REST API。

特性

  • 刀具清单

    • get_page_list(path_or_id*、限制、偏移)
      • 检索指定页面(或页面ID)下的页面列表
    • read_page(path_or_id*)
      • 读取指定页面的内容(或页面ID)
    • create_page(路径*,正文)
      • 在指定路径创建页面
    • update_page(path_or_id*,body*)
      • 更新指定页面的内容(或页面ID)
    • 重命名页面(path_or_id*,new_path*)
      • 重命名或移动页面(按路径或页面ID)
    • remove_page(path_or_id*,递归)
      • 删除页面(按路径或页面ID)
    • search_pages(查询*、路径、限制、偏移)
      • 搜索与查询匹配的页面
    • get_user_names(查询*、限制、偏移)
      • 检索与查询匹配的用户名
    • register_user(姓名*、用户名*、电子邮件*、密码*)
      • 将用户注册到wiki(根据设置,可能需要管理员批准)
    • 上传附件(页面_或路径*,文件路径*)
      • 上传文件并将其附加到页面(按页面ID或路径)
    • get_attachment_list(path_or_id*、限制、偏移)
      • 检索页面上的附件列表(按路径或页面ID)
    • get_attachment_info(attachment_id*)
      • 检索页面附件的详细信息(按附件ID)
    • download_attachment(附件id*,保存目录)
      • 将附件(按附件ID)下载到本地目录
    • remove_attachment(附件id*)
      • 删除附件(按附件ID)
  • MCP服务器合规性

    • 符合模型上下文协议(MCP)
    • 公开可从Cursor和Cline等AI工具调用的端点
    • 通过标准输入的JSON-RPC进行操作

安装

本节介绍如何安装uv。

安装uv

# If uv is not installed, install it first
# On Windows (PowerShell)
Invoke-WebRequest -Uri "https://astral.sh/uv/install.ps1" -UseBasicParsing | Invoke-Expression

# On Linux/macOS (shell)
curl -LsSf https://astral.sh/uv/install.sh | sh

用法

启动MCP服务器

下面显示了启动MCP服务器以与Cline/Cursor一起使用的一些方法。

克隆GitHub存储库并启动MCP服务器

如果你想从GitHub克隆并在本地运行,请使用以下命令克隆Growi MCP存储库:

# HTTPS
git clone https://github.com/ka1222te/growi-mcp.git
# SSH
git clone ssh://git@github.com/ka1222te/growi-mcp.git

克隆后,运行 cd growi-mcp 要移动到存储库目录,请使用以下命令解决依赖关系:

uv sync

接下来,复制 .env.sample 到 .env 并配置环境变量。例子:

GROWI_DOMAIN="http://growi.example.com"
GROWI_API_TOKEN="your_access_token_here"
# API version: "1" or "3"
GROWI_API_VERSION="3"

# Optional
# If your Growi server requires a session id, set connect.sid cookie value here
#GROWI_CONNECT_SID="your_connect_sid_here"
  • GROWI_域名
    • Growi服务器所在的域
  • GROWI_API_TOKEN总成
    • API代币;您可以从“用户设置”中发出令牌→ API设置“
  • GROWI_API_VERSION(总体_项目_版本)
    • 要使用的Growi REST API的版本。目前支持:“1”和“3”
  • GROWI_CONNECT_SID
    • 某些功能(例如download_attachment)需要会话ID。通过浏览器访问Growi并设置值 connect.sid 在REST API请求头中找到。

然后,将以下配置添加到AI编码工具(Cline/Cursor/Claude Code等)的设置文件(JSON)中:

{
  "mcpServers": {
    "growi-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/growi-mcp",
        "run",
        "growi-mcp"
      ]
    }
  }
}

替换 /path/to/growi-mcp 使用Growi MCP的安装目录。

直接从GitHub存储库启动MCP服务器(HTTPS)

要直接从GitHub存储库运行,请将以下内容添加到AI编码工具的设置文件(JSON)中:

{
  "mcpServers": {
    "growi-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/ka1222te/growi-mcp",
        "growi-mcp"
      ],
      "env": {
        "GROWI_DOMAIN": "http://growi.example.com",
        "GROWI_API_TOKEN": "your_access_token_here",
        "GROWI_API_VERSION": "3",
        "GROWI_CONNECT_SID": "your_connect_sid_here(Optional)" 
      }
    }
  }
}

请注意,您必须在“env”部分设置每个相应的环境变量。

直接从GitHub存储库(SSH)启动MCP服务器

如果您通过SSH访问GitHub存储库,请使用 uvx --from git+ssh://github.com/ka1222te/growi-mcp growi-mcp 相反。

{
  "mcpServers": {
    "growi-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+ssh://git@github.com/ka1222te/growi-mcp",
        "growi-mcp"
      ],
      "env": {
        "GROWI_DOMAIN": "http://growi.example.com",
        "GROWI_API_TOKEN": "your_access_token_here",
        "GROWI_API_VERSION": "3",
        "GROWI_CONNECT_SID": "your_connect_sid_here(Optional)" 
      }
    }
  }
}

请注意,您必须在“env”部分设置每个相应的环境变量。

直接从PyPI项目启动MCP服务器

使用 uvx 命令直接从PyPI项目启动MCP服务器。

{
  "mcpServers": {
    "growi-mcp": {
      "command": "uvx",
      "args": [
        "growi-mcp"
      ],
      "env": {
        "GROWI_DOMAIN": "http://growi.example.com",
        "GROWI_API_TOKEN": "your_access_token_here",
        "GROWI_API_VERSION": "3",
        "GROWI_CONNECT_SID": "your_connect_sid_here(Optional)" 
      }
    }
  }
}

请注意,您必须在“env”部分设置每个相应的环境变量。

示例:使用MCP工具

以下是使用Growi MCP工具的示例。

检索用户信息

如果您向AI代理提示以下内容,它可以检索在Growi中创建的用户列表:

List all users that exist in the wiki.

这将执行 get_user_names 并以字母顺序或其他结构化格式呈现用户列表。

总结用户的贡献

从上面获得的用户中选择一个,并用如下提示总结他们的帖子:

Summarize what the user: <username> has been writing.

这将执行以下工具 search_pages 和 read_page,收集用户撰写的相关内容,然后提供LLM生成的摘要。

免责声明

作者对使用本程序造成的任何损害不承担任何责任。

私人信息的处理

Growi MCP执行LLM生成的工具/调用(函数调用)请求并返回响应。如果你的wiki托管在私人环境中,内部信息可能会泄露给LLM。因此,在选择要集成的LLM时要谨慎。在处理机密信息时,我们建议禁用该工具的“自动批准”功能,以便操作需要明确的用户批准。这有助于防止信息泄露,允许您在访问私有页面时拒绝执行。

关于页面更新

如果为更新操作启用“自动批准”,则存在无意中修改他人编写的页面的风险。建议的缓解措施:

  • 限制可编辑页面的范围
    • 在您的提示或配置文件中,如 rules.md,描述“不要编辑自己用户目录外的页面”等规则。这将指导LLM检查页面所有权,并有助于防止覆盖其他人的页面。
  • 禁用“自动批准”
    • 通过要求每个操作都得到明确的用户批准,您可以避免页面变得混乱。根据您的用例切换此设置。

许可证

该项目在MIT许可证下发布。有关详细信息,请参阅 许可证 文件。