文档管理协议服务器

Docmost MCP Server是一个实现Docmost REST API的MCP协议服务器,支持stdio和HTTP传输方式,适用于文档管理和协作场景。

  • by robertlestak
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 robertlestak/docmost-mcp

使用说明

Docmost MCP服务器

MCP(模型上下文协议)服务器,作为MCP工具提供对Docmost REST API的访问。

特性

  • 将Docmost REST API实现为MCP工具
  • 支持stdio和HTTP传输
  • 服务器端凭据配置
  • 为空间、页面、用户、工作区、评论、组和搜索提供完整的API覆盖范围

安装

go build -o docmost-mcp ./cmd/server

码头工人

docker build -t docmost-mcp .
docker run -e DOCMOST_URL=https://docmost.example.com -e DOCMOST_USER=admin -e DOCMOST_PASS=your_password -p 8080:8080 docmost-mcp

用法

命令行选项

./docmost-mcp [options]

选项:

  • -transport -运输类型: stdio (默认)或 http
  • -port -HTTP服务器端口(默认值: 8080,仅用于http传输)
  • -docmost-url -Docmost服务器URL(必需或设置 DOCMOST_URL 任何人)
  • -docmost-user -Docmost用户名(必填或设置 DOCMOST_USER 任何人)
  • -docmost-pass -Docmost密码(必填或设置 DOCMOST_PASS 任何人)

示例

标准传输(适用于MCP客户端)

export DOCMOST_PASS=your_password
./docmost-mcp -transport stdio -docmost-url https://docmost.example.com -docmost-user admin

HTTP传输

export DOCMOST_PASS=your_password
./docmost-mcp -transport http -port 8080 -docmost-url https://docmost.example.com

可用工具

空间工具

  • spaces_list -列出所有空间
  • space_info -获取空间信息
  • space_create -创建新空间
  • space_update -更新空间
  • space_delete -删除空格
  • space_members -获取空间成员
  • space_members_add -向空间添加成员
  • space_members_remove -从空间中删除成员
  • space_members_change_role -更改空间中的成员角色

用户工具

  • user_me -获取当前用户信息
  • user_update -更新用户信息

工作区工具

  • workspace_info -获取工作区信息
  • workspace_public -获取公共工作区信息
  • workspace_members -获取工作区成员
  • workspace_update -更新工作区设置
  • workspace_members_change_role -更改工作区成员角色
  • workspace_invites -获取工作区邀请
  • workspace_invites_create -创建工作区邀请
  • workspace_invites_resend -重新发送工作区邀请
  • workspace_invites_revoke -撤销工作区邀请
  • workspace_invites_info -获取工作区邀请信息

页面工具

  • page_create -创建新页面
  • page_info -获取页面信息
  • page_update -更新页面
  • page_delete -删除页面
  • page_move -移动页面
  • page_sidebar_pages -获取侧边栏页面
  • page_breadcrumbs -获取页面面包屑
  • page_recent -获取最新页面
  • page_export -导出页面(html/markdown)
  • page_history -获取页面历史记录
  • page_history_info -获取页面历史信息

评论工具

  • comment_create -创建评论
  • comment_list -列出页面的评论
  • comment_info -获取评论信息
  • comment_update -更新评论
  • comment_delete -删除评论
  • comment_resolve -解决或取消解决评论

组工具

  • group_list -列出组
  • group_info -获取组信息
  • group_create -创建组
  • group_update -更新组
  • group_delete -删除组
  • group_members -获取组成员
  • group_members_add -向组中添加成员
  • group_members_remove -从组中删除成员

搜索工具

  • search -搜索内容
  • search_suggest -获取搜索建议

延伸

要添加更多Docmost API端点,请执行以下操作:

  1. 在中添加输入结构类型 internal/mcp/tools.go 或创建新文件
  2. 使用添加工具注册 mcp.AddTool() 在适当的 register*Tools() 函数
  3. 遵循API调用的现有模式

例子:

type CommentCreateInput struct {
    Content string `json:"content" jsonschema:"description:Comment content,required"`
    PageID  string `json:"page_id" jsonschema:"description:Page ID,required"`
}

func (s *Server) registerCommentTools() {
    mcp.AddTool(s.server, &mcp.Tool{
        Name:        "comment_create",
        Description: "Create a comment",
    }, func(ctx context.Context, req *mcp.CallToolRequest, input CommentCreateInput) (*mcp.CallToolResult, Output, error) {
        client := s.getClientFromArgs(map[string]any{})
        body := url.Values{}
        body.Set("content", input.Content)
        body.Set("pageId", input.PageID)
        resp, err := client.post("/comments/create", body, nil)
        if err != nil {
            return nil, Output{}, err
        }
        return nil, Output{Text: string(resp)}, nil
    })
}

api参考

请参阅 Docmost API邮差系列 获取完整的API文档。

本地副本也可在 docmost-api/docmost api.postman_collection.json.

许可证

麻省理工学院