MCP Meetup克劳德集成服务器
概述
这是一个生产质量的模型通信协议(MCP)服务器,它将Meetup.com的事件发现API与Anthropic的Claude LLM无缝集成。该服务器支持智能事件发现、自然语言查询和基于AI的Meetup事件推荐。
建筑
核心组件
- MCP协议处理程序 (
MeetupClaudeMCPServer)
- 管理客户端连接和工具定义 - 处理资源管理和服务器生命周期 - 提供标准化的MCP接口
- 认证管理器 (
AuthenticationManager)
- Meetup.com的OAuth2流实现 - 令牌生命周期管理和刷新 - 安全的凭证处理
- 事件发现引擎 (
EventDiscoveryEngine)
- 自然语言查询参数提取 - 双重API支持(REST和GraphQL) - 智能事件过滤和排名
- 快速扩展服务 (
PromptAugmentationService)
- 上下文感知提示增强 - LLM消费的事件数据格式 - 智能相关性过滤
- 克劳德集成 (
ClaudeIntegration)
- 无烟煤API客户管理 - 响应生成和错误处理 - 可配置的模型参数
数据流
User Query → Parameter Extraction → Event Discovery → Data Augmentation → Claude Processing → Response快速开始
先决条件
- Python 3.8+
- Meetup.com帐户
- API无烟煤账户
安装
# Clone or download the project
cd /home/daniel/work/mcp-meetup
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your credentials
# Run the server
python meetup_claude_mcp_server.pyAPI设置说明
1.Meetup.com OAuth设置
- 访问 会见OAuth消费者
- 点击“创建新消费者”
- 填写申请详情:
- 应用程序名称:您的应用程序名称 - 应用网站:您的网站或GitHub仓库 - 重定向URI: http://localhost:8080/oauth/callback - 用途说明:用例的简要描述
- 保存生成的:
- 客户端ID - 客户端密钥
2.人类学API设置
- 访问 拟人控制台
- 创建帐户或登录
- 导航到API密钥部分
- 生成新的API密钥
- 安全复制API密钥
3.环境配置
中所需的环境变量 .env:
MEETUP_CLIENT_ID=your_meetup_client_id_here
MEETUP_CLIENT_SECRET=your_meetup_client_secret_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here可选配置:
MEETUP_ACCESS_TOKEN=your_access_token_if_available
MEETUP_REDIRECT_URI=http://localhost:8080/oauth/callback
LOG_LEVEL=INFO
MAX_EVENTS_PER_QUERY=20
DEFAULT_RADIUS=25MCP工具
1. search_meetup_events
使用自然语言查询搜索Meetup活动。
参数:
query(字符串,必填):自然语言搜索查询max_results(整数,可选):要返回的最大事件数(默认值:20)
例子:
{
"query": "Python programming events near San Francisco this week",
"max_results": 10
}2. augment_prompt_with_events
使用相关事件数据增强用户提示的上下文。
参数:
prompt(string,必填):用户提示增加
例子:
{
"prompt": "What programming events should I attend this weekend?"
}3. get_event_recommendations
使用带有事件上下文的Claude获取基于AI的事件推荐。
参数:
query(字符串,必填):推荐的自然语言查询preferences(字符串,可选):其他首选项或约束
例子:
{
"query": "I'm interested in machine learning and networking events",
"preferences": "Prefer free events, willing to travel up to 30 miles"
}4. get_oauth_url
获取Meetup OAuth授权URL以进行身份验证设置。
参数: 无
MCP资源
1. meetup://config
当前服务器配置和状态信息。
2. meetup://auth/status
Meetup.com的身份验证状态,包括令牌有效性。
自然语言查询示例
服务器智能地从自然语言中提取参数:
基于时间的查询:
- “今日事件”
- “明天会发生什么”
- “本周事件”
基于位置的查询:
- “我附近的事件”
- “旧金山聚会”
- “仅限远程事件”
基于主题的查询:
- “Python编程聚会”
- “数据科学事件”
- “创业网络”
- “人工智能和机器学习”
组合查询:
- “今天我附近的Python事件”
- “本周远程数据科学会议”
- “旧金山免费网络活动”
错误处理
该服务器包括全面的错误处理功能,用于:
- 身份验证错误:缺少凭据、令牌过期
- API错误:速率限制、网络故障、无效查询
- 数据处理错误:事件格式错误,结果为空
安全考虑
- 环境变量配置可防止凭据暴露
- OAuth2流实现遵循安全最佳实践
- 没有持久存储用户查询或个人数据
- 可配置的日志记录级别,以控制信息泄露
发展
项目结构
mcp-meetup/
├── meetup_claude_mcp_server.py # Main server implementation
├── requirements.txt # Python dependencies
├── .env.example # Environment configuration template
├── README.md # This documentation
├── docs/ # Additional documentation
│ └── adr/ # Architecture decision records
└── tests/ # Test files (future)测试
基本测试可以通过运行服务器和使用MCP客户端工具来完成:
# Start the server
python meetup_claude_mcp_server.py
# In another terminal, test with MCP client
# (MCP client implementation would go here)扩展服务器
模块化设计使其易于扩展:
- 其他API:在中添加其他活动平台
EventDiscoveryEngine - 增强过滤:扩展
extract_query_parameters方法 - 缓存:在中添加Redis或内存缓存
PromptAugmentationService - 附加工具:在中添加新的MCP工具
_setup_tools方法
故障排除
常见问题
- 身份验证失败
- 验证客户端ID和密码是否正确 - 检查重定向URI是否与OAuth使用者设置匹配 - 确保访问令牌未过期
- 未找到事件
- 尝试更广泛的搜索词 - 检查位置拼写和格式 - 验证时间参数是否合理
- API速率限制
- 减少查询频率 - 实现请求缓存 - 检查API配额使用情况
- Claude集成错误
- 验证Anthropic API密钥是否有效 - 检查API配额和计费状态 - 审查提示长度和复杂性
调试模式
启用调试日志记录:
export LOG_LEVEL=DEBUG
python meetup_claude_mcp_server.py健康检查
使用MCP资源检查服务器状态:
# Check configuration
# Use MCP client to read meetup://config
# Check authentication status
# Use MCP client to read meetup://auth/status贡献
开发工作流程
- Fork存储库
- 创建特征分支
- 通过测试实施更改
- 更新文档
- 提交拉取请求
代码规范
- 遵循PEP 8风格指南
- 全程使用类型提示
- 维护全面的文档
- 包括新功能的单元测试
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
支持
对于问题和疑问:
- 检查故障排除部分
- 检查配置和设置
- 使用日志创建详细的错误报告
- 包括复制步骤和环境细节
______________________________________________________________________
版本: 1.0.0\ 最后更新: 2025-07-27\ 作者:为Dan Shields制作
