返回市场
格兰诺拉-MCP

格兰诺拉-MCP

作者:cjse0 星标更新:2025-07-16

项目介绍

Granola MCP 服务器

这是一个封装了Granola API的MCP(模型上下文协议)服务器,提供搜索和检索会议记录及文档的工具。

特性

  • 统一搜索:通过参与者、时间范围或主题在一个工具中搜索会议记录
  • 全文档检索:以Markdown格式获取完整的会议记录
  • 列出文档集合:查看所有文档列表及其元数据

预备条件

  • Ruby 3.0 或更高版本
  • 具有API访问权限的Granola账户
  • 您的Granola Bearer令牌

安装

  1. 克隆此仓库:
git clone <repository-url>
cd granola-mcp
  1. 安装依赖项:
bundle install

配置

  1. 复制示例环境文件:
cp .env.example .env
  1. 编辑.env并添加您的Granola Bearer令牌:
GRANOLA_BEARER_TOKEN=your-bearer-token-here

或者,您可以将其导出为环境变量:

export GRANOLA_BEARER_TOKEN="your-bearer-token-here"

使用方法

运行服务器

ruby granola_mcp_server.rb

或者使其可执行:

chmod +x granola_mcp_server.rb
./granola_mcp_server.rb

可用工具

1. SearchMeetingNotesTool

使用多个标准搜索会议记录。您可以通过参与者、日期范围、主题或这些标准的任意组合进行搜索。

参数:

  • participant(可选):要搜索的参与者的姓名或电子邮件
  • start_date(可选):起始日期,ISO格式(YYYY-MM-DD)
  • end_date(可选):结束日期,ISO格式(YYYY-MM-DD)
  • topic(可选):要搜索的主题或关键词
  • search_content(可选):是否在文档内容中搜索(较慢)还是仅在标题中搜索(默认:false)
  • limit(可选):返回的最大结果数(默认:20)

注意:必须至少提供一个搜索标准。如果使用日期范围,则需要同时提供start_dateend_date

示例搜索:

  • 查找包含特定人员的所有会议
  • 查找特定日期范围内的会议
  • 查找关于特定主题的会议
  • 结合标准以缩小结果范围

2. FetchMeetingNoteTool

以Markdown格式检索特定会议记录的全部内容。

参数:

  • document_id(必需):要获取的文档ID

返回完整的Markdown表示,包括:

  • 会议标题和日期
  • 参与者列表
  • 会议总结
  • 带有适当格式的完整笔记内容

3. GetDocumentListsTool

检索所有文档集合/列表。

无需参数。

返回每个列表的元数据,包括:

  • 列表ID和标题
  • 文档数量
  • 可见性设置
  • 成员信息
  • 时间戳

响应格式

所有工具均以以下格式返回响应:

搜索结果

{
  "success": true,
  "count": 5,
  "documents": [
    {
      "id": "document-uuid",
      "title": "会议标题",
      "date": "2025-01-15T10:00:00Z",
      "updated_at": "2025-01-15T11:30:00Z",
      "participants": [
        {
          "name": "John Doe",
          "email": "john@example.com",
          "role": "创建者"
        }
      ],
      "preview": "会议记录预览..."
    }
  ]
}

完整文档

{
  "success": true,
  "document": {
    "id": "document-uuid",
    "title": "会议标题",
    "created_at": "2025-01-15T10:00:00Z",
    "updated_at": "2025-01-15T11:30:00Z",
    "content_markdown": "# 会议标题\n\n**日期:** 2025年1月15日...\n\n## 参与者\n\n..."
  }
}

MCP客户端配置

要使用此服务器与MCP客户端一起工作,请将其添加到您的MCP设置中:

{
  "mcpServers": {
    "granola": {
      "command": "ruby",
      "args": ["/path/to/granola_mcp_server.rb"],
      "env": {
        "GRANOLA_BEARER_TOKEN": "your-bearer-token"
      }
    }
  }
}

错误处理

服务器处理常见的错误:

  • 缺少Bearer令牌
  • API请求失败
  • 无效的日期格式
  • 文档未找到错误
  • 速率限制

错误以以下格式返回:

{
  "success": false,
  "error": "错误消息"
}

开发

添加新工具

要添加新工具,请创建一个新的继承自FastMcp::Tool的类:

class MyNewTool < FastMcp::Tool
  description "工具描述"
  
  arguments do
    required(:param_name).filled(:string).description("参数描述")
    optional(:optional_param).filled(:integer).description("可选参数")
  end
  
  def call(param_name:, optional_param: nil)
    # 工具实现
  end
end

# 在服务器设置中注册它
server.register_tool(MyNewTool)

许可证

MIT许可证