Atlassian自动化平台

一个连接AI代理、自动化工具(如n8n)和Atlassian云API(Jira和Confluence)的模块化命令平台,通过REST端点实现Jira和Confluence常见操作的自动化。

  • by Flo976
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 flo976/atlassian-mcp-server

使用说明

Atlassian MCP服务器

模块化命令平台(MCP)服务器,连接AI代理、自动化工具(如N8N)和Atlassian云API(JIRA和Confluence)。该服务器公开清晰的REST端点,以自动化JIRA和Confluence上的常见操作。

🚀 功能

Jira

  • ✅ 创建JIRA票证
  • ✅ 门票顾问
  • ✅ 更改票证(摘要、描述、优先级、分配)
  • ✅ 执行状态转换
  • ✅ 添加评论
  • ✅ JQL高级搜索
  • ✅ 列出所有项目

汇流

  • ✅ 创建Confluence页面
  • ✅ 页码咨询师
  • ✅ 页面修改器
  • ✅ 添加评论
  • ✅ 列出所有空间
  • ✅ 搜索页面
  • ✅ 管理页面树

🛠️ 安装

Prérequis

  • Node.js 16+
  • 使用API令牌的Atlassian云帐户
  • Atlassian令牌API(从https://id.atlassian.com/manage-profile/security/api-tokens)

安装地点

  1. Cloner le存储库
git clone https://github.com/Flo976/atlassian-mcp-server
cd atlassian-mcp-server
  1. 安装依赖项
npm install
  1. 配置
cp .env.example .env

填写文件 .env 使用您的信息:

ATLASSIAN_EMAIL=votre-email@company.com
ATLASSIAN_API_TOKEN=votre_token_api_atlassian
ATLASSIAN_BASE_URL=https://votre-entreprise.atlassian.net
MCP_API_KEY=votre_cle_api_securisee
PORT=3000
  1. 启动服务器
# Mode production
npm start

# Mode développement (avec rechargement automatique)
npm run dev

安装Docker

  1. 塑造形象
docker build -t atlassian-mcp-server .
  1. 启动容器
docker run -d \
  --name atlassian-mcp \
  -p 3000:3000 \
  -e ATLASSIAN_EMAIL=votre-email@company.com \
  -e ATLASSIAN_API_TOKEN=votre_token_api \
  -e ATLASSIAN_BASE_URL=https://votre-entreprise.atlassian.net \
  -e MCP_API_KEY=votre_cle_api_securisee \
  atlassian-mcp-server

或使用Docker Compose:

version: '3.8'
services:
  atlassian-mcp:
    build: .
    ports:
      - "3000:3000"
    environment:
      - ATLASSIAN_EMAIL=votre-email@company.com
      - ATLASSIAN_API_TOKEN=votre_token_api
      - ATLASSIAN_BASE_URL=https://votre-entreprise.atlassian.net
      - MCP_API_KEY=votre_cle_api_securisee
      - NODE_ENV=production

📚 API文件

认证

所有端点都需要一个标题 X-API-Key 使用您的API密钥。

curl -H "X-API-Key: votre_cle_api" http://localhost:3000/mcp/jira/list_projects

可显示的端点

📋 Jira

创建票证

curl -X POST "http://localhost:3000/mcp/jira/create_issue" \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "PROJECT_KEY",
    "summary": "Titre du ticket",
    "description": "Description détaillée",
    "issueType": "Task",
    "priority": "High",
    "labels": ["automation", "api"]
  }'

票务顾问

curl -X GET "http://localhost:3000/mcp/jira/get_issue/PROJECT-123" \
  -H "X-API-Key: votre_cle_api"

修改人取消票证

curl -X PUT "http://localhost:3000/mcp/jira/update_issue/PROJECT-123" \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "summary": "Nouveau titre",
    "description": "Nouvelle description",
    "priority": "Medium"
  }'

更改状态

curl -X POST "http://localhost:3000/mcp/jira/transition_issue/PROJECT-123" \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "transition": "In Progress",
    "comment": "Démarrage du travail"
  }'

添加评论

curl -X POST "http://localhost:3000/mcp/jira/comment_issue/PROJECT-123" \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "comment": "Commentaire sur le ticket"
  }'

搜索门票

curl -X POST "http://localhost:3000/mcp/jira/search_issues" \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "jql": "project = PROJECT_KEY AND status = \"To Do\"",
    "maxResults": 10
  }'

列出项目

curl -X GET "http://localhost:3000/mcp/jira/list_projects" \
  -H "X-API-Key: votre_cle_api"

📄 汇流

创建页面

curl -X POST "http://localhost:3000/mcp/confluence/create_page" \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "space": "SPACE_KEY",
    "title": "Titre de la page",
    "content": "<p>Contenu de la page en HTML</p>",
    "parentId": "123456"
  }'

查看页面

curl -X GET "http://localhost:3000/mcp/confluence/get_page/123456" \
  -H "X-API-Key: votre_cle_api"

编辑页面

curl -X PUT "http://localhost:3000/mcp/confluence/update_page/123456" \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Nouveau titre",
    "content": "<p>Nouveau contenu</p>",
    "version": 2
  }'

添加评论

curl -X POST "http://localhost:3000/mcp/confluence/add_comment/123456" \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "comment": "<p>Commentaire sur la page</p>"
  }'

列出空间

curl -X GET "http://localhost:3000/mcp/confluence/list_spaces" \
  -H "X-API-Key: votre_cle_api"

搜索页面

curl -X POST "http://localhost:3000/mcp/confluence/search_pages" \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "mot-clé",
    "space": "SPACE_KEY",
    "limit": 10
  }'

🔧 与AI代理集成

克劳德/OpenAI

直接在提示或自定义工具中使用REST端点。

n8n

  1. 使用HTTP请求节点
  2. 配置端点URL
  3. 添加标题 X-API-Key
  4. 构建JSON有效载荷

N8n工作流示例

{
  "method": "POST",
  "url": "http://localhost:3000/mcp/jira/create_issue",
  "headers": {
    "X-API-Key": "{{$env.MCP_API_KEY}}",
    "Content-Type": "application/json"
  },
  "body": {
    "project": "PROJ",
    "summary": "{{$json.title}}",
    "description": "{{$json.description}}"
  }
}

🛡️ 安全

  • API密钥身份验证 :所有端点都需要有效的API密钥
  • 环境变量 :所有敏感信息都存储在环境变量中
  • 速率限制 :流量限制的滥用保护
  • 输入验证 :严格验证所有参数
  • 安全错误管理 :不暴露错误中的敏感信息

🚦 监控

健康端点

  • GET /health :检查服务器状态
  • GET /mcp :端点可争议文件

日志

日志包括:

  • 具有响应方法和代码的HTTP请求
  • 详细的Atlassian错误(在开发模式下)
  • 身份验证尝试失败

🤝 贡献

  1. 分叉项目
  2. 为您的功能创建分支
  3. 提交您的更改
  4. 向分支推
  5. 创建拉取请求

📝 许可证

麻省理工学院

🆘 支持

对于与以下相关的问题:

  • Atlassian API :查看 Atlassian官方文件
  • 配置 :检查环境变量和API令牌
  • 发展 :在此存储库中创建问题