Atlassian MCP ByteBuddy 食谱
本食谱介绍如何将 Atlassian MCP 与 ByteBuddy 结合使用,实现项目管理、JIRA 集成等功能。
概述
Atlassian MCP 提供了对 JIRA、Confluence 等工具的集成能力,让 AI 助手能够:
- 查看和管理 JIRA 工单
- 读取 Confluence 文档
- 创建项目报告
- 跟踪任务进度
配置
1. 安装 Atlassian MCP
bash
# 安装 MCP 服务器
npm install -g @atlassian/mcp-server
# 或使用 pip
pip install atlassian-mcp-server2. 配置 ByteBuddy
json
{
"mcpServers": {
"atlassian": {
"command": "node",
"args": ["atlassian-mcp-server"],
"env": {
"ATLASSIAN_URL": "https://your-domain.atlassian.net",
"ATLASSIAN_USERNAME": "your-email@example.com",
"ATLASSIAN_API_TOKEN": "your-api-token"
}
}
}
}3. 获取 API Token
- 访问 Atlassian Account Settings
- 创建新的 API Token
- 将 Token 添加到环境变量中
使用场景
场景 1: JIRA 工单管理
typescript
// 查看项目工单
const issues = await mcp.call("atlassian.listIssues", {
project: "PROJ",
status: "In Progress",
});
// 创建新工单
const newIssue = await mcp.call("atlassian.createIssue", {
project: "PROJ",
summary: "Fix login bug",
description: "用户无法登录系统",
issueType: "Bug",
priority: "High",
});场景 2: 代码审查与工单关联
typescript
// 将 PR 与 JIRA 工单关联
const prNumber = getPullRequestNumber();
const issueKey = "PROJ-123";
await mcp.call("atlassian.addComment", {
issueKey,
comment: `PR #${prNumber} 已提交,请审查代码变更。`,
});
// 更新工单状态
await mcp.call("atlassian.transitionIssue", {
issueKey,
transition: "In Review",
});场景 3: 自动化报告
typescript
// 生成周报
const weeklyReport = await generateWeeklyReport({
project: "PROJ",
startDate: "2024-01-01",
endDate: "2024-01-07",
});
await mcp.call("atlassian.createConfluencePage", {
title: "本周项目报告",
content: weeklyReport,
spaceKey: "PROJ",
});最佳实践
1. 工作流集成
yaml
# .github/workflows/jira-update.yml
name: Update JIRA Status
on:
pull_request:
types: [opened, closed]
jobs:
update-jira:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Update JIRA
run: |
bytebuddy --mcp atlassian --update-jira-status2. 代码提交规范
bash
# 提交信息格式
git commit -m "PROJ-123: Fix login authentication issue"
# 自动提取工单号
const issueKey = extractJiraKey(commitMessage);
if (issueKey) {
await updateJiraIssue(issueKey, { status: 'In Development' });
}3. 项目模板
json
{
"projectTemplates": {
"web-app": {
"jiraConfig": {
"issueTypes": ["Story", "Bug", "Task", "Epic"],
"workflow": ["Backlog", "In Progress", "In Review", "Done"],
"fields": ["Priority", "Labels", "Components"]
},
"confluenceStructure": {
"pages": ["Requirements", "Design", "API Docs", "Deploy Guide"]
}
}
}
}高级功能
1. 自定义查询
typescript
// 复杂 JQL 查询
const customQuery = `
project = PROJ AND
status not in (Done, Closed) AND
priority in (High, Critical) AND
updated >= -7d
`;
const criticalIssues = await mcp.call("atlassian.searchIssues", {
jql: customQuery,
fields: ["summary", "status", "priority", "assignee"],
});2. 批量操作
typescript
// 批量更新工单
const issues = ["PROJ-101", "PROJ-102", "PROJ-103"];
for (const issueKey of issues) {
await mcp.call("atlassian.transitionIssue", {
issueKey,
transition: "Ready for QA",
});
}3. 集成监控
typescript
// 监控项目健康度
const healthMetrics = await calculateProjectHealth({
project: "PROJ",
metrics: ["velocity", "burndown", "bugRate"],
});
await mcp.call("atlassian.createDashboard", {
title: "Project Health Dashboard",
gadgets: healthMetrics,
});故障排除
常见问题
API 权限不足
bash
# 检查权限范围
curl -u "email:api_token" \
"https://your-domain.atlassian.net/rest/api/3/myself"MCP 连接失败
bash
# 测试 MCP 连接
bytebuddy --mcp atlassian --test-connection工单更新失败
typescript
// 添加错误处理
try {
await mcp.call("atlassian.transitionIssue", {
issueKey,
transition: "In Progress",
});
} catch (error) {
console.error("Failed to update issue:", error.message);
// 记录错误并重试
}安全考虑
- API Token 安全:使用环境变量存储敏感信息
- 权限最小化:只授予必要的权限范围
- 审计日志:记录所有 API 调用
- 访问控制:限制 MCP 服务器的访问权限
通过 Atlassian MCP 集成,ByteBuddy 可以无缝融入现有的项目管理工作流,提高开发效率。