Skip to content

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-server

2. 配置 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

  1. 访问 Atlassian Account Settings
  2. 创建新的 API Token
  3. 将 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-status

2. 代码提交规范

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);
  // 记录错误并重试
}

安全考虑

  1. API Token 安全:使用环境变量存储敏感信息
  2. 权限最小化:只授予必要的权限范围
  3. 审计日志:记录所有 API 调用
  4. 访问控制:限制 MCP 服务器的访问权限

通过 Atlassian MCP 集成,ByteBuddy 可以无缝融入现有的项目管理工作流,提高开发效率。