MCP开发人员代理
AI驱动的开发人员代理,用于使用E2B沙盒、Claude Code、GitHub、Notion和Slack集成自动化常见开发任务。
概述
该项目提供了可以执行各种软件开发任务的自动化代理,如安全审计、代码审查、问题解决、发布说明生成和团队站立报告。这些代理在独立的E2B沙箱中运行,并通过MCP(模型上下文协议)与GitHub、Notion和Slack的集成来利用Claude的AI功能。
特性
- 团队站立:为整个团队生成包含关键活动、进度和阻碍因素的每日站立报告
- 我的立场:为您的日常站立会议创建个性化的站立演讲
- 站立借口生成器:为未完成的任务找有趣的借口(为了好玩!)
- 安全审计:自动安全分析,CVE检测和漏洞报告给Notion和Slack
- 公关评论:对开放式拉取请求进行智能代码审查,并提供自动反馈
- 问题解决:通过测试创建和PR生成自动修复GitHub问题
- 发布说明:从最新版本到Notion生成以业务为重点的发行说明
先决条件
- Node.js(建议使用v18或更高版本)
- npm或纱线
- 活动帐户和API密钥:
- 苯甲酸雌二醇 - 人物克劳德 - 概念 - - Slack
安装
- 克隆存储库:
git clone
cd mcp-developer-agents- 安装依赖项:
npm install- 设置环境变量:
cp .env.template .env- 编辑
.env并添加您的API密钥:
E2B_API_KEY=your_e2b_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
NOTION_INTEGRATION_TOKEN=your_notion_token
GITHUB_TOKEN=your_github_token
SLACK_BOT_TOKEN=your_slack_bot_token
SLACK_CHANNEL_ID=your_slack_channel_id
SLACK_TEAM_ID=your_slack_team_id
NOTION_PARENT_ID=your_notion_parent_page_id获取API密钥
- E2B API密钥:从 E2B仪表板
- 无烟煤API密钥:从 拟人控制台
- Notion集成令牌:在以下位置创建集成 概念整合
- GitHub代币:在以下位置生成个人访问令牌
- Slack机器人令牌:创建Slack应用程序并从以下位置获取bot令牌 松弛API
- 松弛频道ID:右键单击Slack中的频道并复制频道ID
- Slack团队ID:在Slack工作区设置中找到它
用法
命令行界面
代理可以通过命令行参数完全配置:
npm start -- --task --repo [options]必需参数
--task:任务类型(请参阅下面的可用任务)--repo:GitHub存储库格式为owner/repository
可选参数
--notion-parent:通知父页面ID(某些任务需要)--slack-channel:通知的Slack频道ID(某些任务需要)--issueId:GitHub问题编号(修复问题任务需要)--pullRequestId:GitHub PR编号(PR审核任务需要)--help:显示帮助消息
注意:您可以设置 NOTION_PARENT_ID 和 SLACK_CHANNEL_ID 作为您的环境变量 .env 文件,以避免将它们作为参数传递。
可用任务
1.团队站立
为整个团队生成一份全面的每日站立报告,包括活动、进度和阻碍因素。
需求:通知家长ID
npm start -- --task team-standup --repo owner/repository --notion-parent abc123def456代理人将:
- 分析过去一天的存储库活动
- 确定每个团队成员的关键活动、进度和阻碍因素
- 在Notion中创建结构化的每日站立报告
- 格式化它以便于团队沟通
2.我的立场
为您的个人脱口秀会议创建个性化的脱口秀演讲。
需求:松弛频道ID
npm start -- --task my-standup --repo owner/repository --slack-channel C01234ABCD代理人将:
- 分析您最近的提交和活动
- 总结你过去一天的主要工作
- 识别任何阻断器
- 生成一个简洁的口头站立演讲
- 将其发送到您指定的Slack频道
3.生成站立借口
为你无法完成任务的原因找一个有趣的借口(出于娱乐目的!)。
需求:松弛频道ID
npm start -- --task generate-standup-excuse代理人将:
- 创造一个富有创意和幽默的借口
- 将其发送到您指定的Slack频道
4.安全审计
在Notion中执行全面的安全分析并创建详细的报告。
需求:通知父ID、Slack频道ID(可选)
npm start -- --task security-audit --repo owner/repository --notion-parent abc123def456 --slack-channel C01234ABCD代理人将:
- 克隆和分析存储库
- 扫描依赖配置文件(package.json、pom.xml等)
- 检测CVE漏洞
- 对安全问题进行手动代码审查
- 使用以下命令在Notion中创建结构化报告:
- 安全分析总结 - 找到的所有CVE表 - 具有优先级和修复的代码级漏洞
- 将摘要发送到Slack(如果已配置)
5.公关评论(所有公开公关)
审查存储库中所有打开的拉取请求。
需求:松弛频道ID
npm start -- --task pr-reviews --repo owner/repository --slack-channel C01234ABCD代理人将:
- 获取所有打开的PR
- 分析逻辑错误、安全问题和代码质量的差异
- 在每个PR上发表评论并提供反馈
- 批准符合质量标准的PR
- 向Slack发送摘要
6.PR审查(单PR)
审查特定的拉取请求。
需求:拉取请求ID、松弛通道ID
npm start -- --task pr-review --repo owner/repository --pullRequestId 42 --slack-channel C01234ABCD代理人将:
- 获取指定的PR
- 分析逻辑错误、安全问题和代码质量的差异
- 发表评论并提供详细反馈
- 如果符合质量标准,则批准PR
- 将评论摘要发送到Slack
7.修复问题(所有未解决的问题)
自动修复存储库中所有打开的GitHub问题。
需求:松弛频道ID
npm start -- --task fix-issues --repo owner/repository --slack-channel C01234ABCD代理人将:
- 阅读所有未决问题描述
- 创建复制测试用例以确认错误
- 实施问题修复
- 运行测试以验证修复
- 创建带有修复和新测试的pull请求
- 将带有PR链接的摘要发送到Slack
8.修复问题(单个问题)
自动修复特定的GitHub问题。
需求:问题ID、Slack频道ID
npm start -- --task fix-issue --repo owner/repository --issueId 123 --slack-channel C01234ABCD代理人将:
- 阅读问题描述
- 创建复制测试用例以确认错误
- 实施修复
- 运行测试以验证修复
- 使用修复和新测试创建拉取请求
- 将带有PR链接的摘要发送到Slack
9.发行说明
从最新版本生成以业务为重点的发行说明。
需求:通知家长ID
npm start -- --task release-notes --repo owner/repository --notion-parent abc123def456代理人将:
- 获取有关最新版本的信息
- 分析更改和提交
- 生成以业务为中心的发行说明
- 使用摘要发布说明创建新的Notion页面
建筑
组件
- E2B沙箱:用于运行AI代理的隔离执行环境
- 克劳德代码:通过MCP进行AI驱动的代码分析和生成
- GitHub集成:通过MCP访问存储库、PR管理和问题跟踪
- 概念整合:通过MCP记录和报告
- Slack集成:通过MCP实时通知和更新
任务流程
- 环境验证(检查所需的API密钥)
- 基于任务类型的提示生成
- 使用MCP集成创建E2B沙盒(GitHub、Notion、Slack)
- Claude Code中的MCP服务器设置
- Claude使用任务特定提示执行代码
- 自动沙盒清理(即使发生故障也能保证)
测试
使用以下工具运行测试:
npm test该项目使用Jest和TypeScript支持进行测试。
项目结构
mcp-developer-agents/
├── index.ts # Main agent logic with task implementations
├── package.json # Dependencies and scripts
├── jest.config.js # Jest configuration
├── .env # Environment variables (not committed)
├── .env.template # Template for environment setup
└── README.md # This file配置
任务类型
支持以下任务类型:
team-standup:向Notion生成团队每日站立报告my-standup:向Slack生成个人单口相声generate-standup-excuse:给Slack找个有趣的借口security-audit:通过CVE检测和Notion/Slack报告进行安全分析pr-reviews:使用Slack摘要自动审核所有打开的PRpr-review:使用Slack摘要自动审查特定PRfix-issues:自动修复Slack通知的所有未解决问题fix-issue:针对Slack通知的特定问题自动修复错误release-notes:为Notion生成以业务为重点的发布说明
超时
- 所有命令都使用
timeoutMs: 0(无超时) - 这允许复杂的任务运行到完成
- 超时时间可以调整
index.ts如果特定用例需要
错误处理
该代理包括全面的错误处理:
- 执行前的环境变量验证
- 特定任务的验证(例如,所需参数)
- 尝试使用catch finally块进行资源清理
- 即使出现故障,也能保证沙盒清理
- 详细的错误记录
安全考虑
- 永不承诺
.env文件到版本控制(包含在.gitignore) - 尽可能使用只读GitHub令牌
- 将Notion集成权限限制在所需页面
- 将Slack机器人权限限制在必要的频道
- 合并前检查生成的代码和PR
- E2B沙箱为安全代码执行提供隔离
贡献
欢迎投稿!请随时提交拉取请求。
许可证
麻省理工学院
故障排除
常见问题
缺少环境变量
Error: Missing required environment variables: ANTHROPIC_API_KEY解决方案:确保在您的 .env 文件
任务特定的验证错误
Error: Slack Channel Id required for my-standup task解决方案:提供所需的参数(例如。, --slack-channel C01234ABCD)或将其设置在您的 .env 文件
沙盒超时
Error: Command timed out解决方案:检查网络连接并确保E2B API密钥有效
通知权限错误
Error: Could not create page解决方案:确保您的Notion集成可以访问父页面
Slack集成问题
Error: Slack channel not found解决方案:验证您的Slack机器人令牌、频道ID和团队ID是否正确,并将机器人添加到频道中
GitHub身份验证问题
Error: Bad credentials解决方案:验证您的GitHub令牌是否有效,是否具有必要的权限(仓库访问、PR管理)
支持
对于问题和疑问:
- 在GitHub存储库中创建问题
- 检查E2B文件:https://e2b.dev/docs
- 审查Anthropic MCP文件
