这是一个封装了Granola API的MCP(模型上下文协议)服务器,提供搜索和检索会议记录及文档的工具。
git clone <repository-url>
cd granola-mcp
bundle install
cp .env.example .env
.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
使用多个标准搜索会议记录。您可以通过参与者、日期范围、主题或这些标准的任意组合进行搜索。
参数:
participant(可选):要搜索的参与者的姓名或电子邮件start_date(可选):起始日期,ISO格式(YYYY-MM-DD)end_date(可选):结束日期,ISO格式(YYYY-MM-DD)topic(可选):要搜索的主题或关键词search_content(可选):是否在文档内容中搜索(较慢)还是仅在标题中搜索(默认:false)limit(可选):返回的最大结果数(默认:20)注意:必须至少提供一个搜索标准。如果使用日期范围,则需要同时提供start_date和end_date。
示例搜索:
以Markdown格式检索特定会议记录的全部内容。
参数:
document_id(必需):要获取的文档ID返回完整的Markdown表示,包括:
检索所有文档集合/列表。
无需参数。
返回每个列表的元数据,包括:
所有工具均以以下格式返回响应:
{
"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设置中:
{
"mcpServers": {
"granola": {
"command": "ruby",
"args": ["/path/to/granola_mcp_server.rb"],
"env": {
"GRANOLA_BEARER_TOKEN": "your-bearer-token"
}
}
}
}
服务器处理常见的错误:
错误以以下格式返回:
{
"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许可证