Atlassian MCP服务器

提供Atlassian Jira和Confluence功能的MCP兼容服务器,支持Docker部署和REST API集成。

  • by mani0070
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mani0070/atlassian-mcp-server

使用说明

Atlassian MCP服务器

现代MCP服务器向MCP兼容客户端公开Atlassian Jira和Confluence功能。此存储库包括服务器实现、Docker打包和测试。


概述

  • 目的: 为Jira/Confluence操作(问题、页面、评论、搜索)提供安全、一致的MCP接口,并提供规范化的JSON响应。
  • 运输: MCP客户端的服务器发送事件端点。
  • 运行时间: 带有Docker部署选项的Python服务器。

建筑

graph TD
    U[User / Tools] -->|MCP Client| C[Client App]
    C -->|SSE / HTTP + X-API-Key| M[Auth Middleware]
    
    subgraph "Atlassian MCP Server"
        M -->|Authorized| S[Server Logic]
        S -->|Get Client| RM[Resource Manager]
        RM -->|TTL Cache| CP[Credential Providers]
        S --> H[Health + Liveness]
    end
    
    S -->|REST APIs| J[Jira]
    S -->|REST APIs| F[Confluence]

端点

当服务器运行时,它会公开:

  • / (GET):生存信息和端点提示。
  • /health (GET):简单的健康检查(返回 { "status": "ok" }).
  • /mcp/sse (GET/POST):客户端使用的MCP服务器发送事件传输。

快速入门(Docker)

先决条件

  • Docker已安装在您的计算机上。
  • 使用API令牌的Atlassian帐户(Jira/Confluence)。

塑造形象

docker build -t atlassian-mcp-server .

运行容器

提供Atlassian凭据作为环境变量:

docker run -d \
    -p 8080:8080 \
    -e MCP_API_KEY="your-secure-api-key" \
    -e JIRA_SITE="https://your-domain.atlassian.net" \
    -e JIRA_EMAIL="your-email@example.com" \
    -e JIRA_TOKEN="your-jira-token" \
    -e CONFLUENCE_URL="https://your-domain.atlassian.net/wiki" \
    -e CONFLUENCE_USERNAME="your-email@example.com" \
    -e CONFLUENCE_API_TOKEN="your-confluence-token" \
    --name atlassian-mcp-server \
    atlassian-mcp-server

注: MCP_API_KEY 是可选的,但强烈建议用于保护MCP端点。如果设置,客户端必须提供 X-API-Key 标题为 /mcp/sse 终点。

示例(无身份验证):

curl -s http://localhost:8080/ | jq
curl -s http://localhost:8080/health | jq

示例(含 MCP_API_KEY 设置):

# Public endpoints (no auth required)
curl -s http://localhost:8080/ | jq
curl -s http://localhost:8080/health | jq

# Protected MCP endpoint (requires X-API-Key header)
curl -H "X-API-Key: your-secure-api-key" -s http://localhost:8080/mcp/sse

配置

服务器是通过环境变量配置的。

变量 描述 默认值
MCP_API_KEY 的API密钥 X-API-Key 身份验证。 无(已禁用身份验证)
CREDENTIALS_PROVIDER 凭据来源: env, aws, azure, gcp. env
LOG_LEVEL 记录冗长(DEBUG, INFO, WARNING, ERROR). INFO

凭据提供程序

  • 环境:阅读 JIRA_* 和 CONFLUENCE_* 变量直接。
  • 亚马逊网络服务:从AWS Secrets Manager读取JSON机密(AWS_SECRETS_MANAGER_SECRET_ID).
  • 蔚蓝:从Azure密钥库读取JSON密钥(AZURE_KEY_VAULT_URL, AZURE_KV_JSON_SECRET_NAME).
  • 谷歌云平台:从GCP密钥管理器读取JSON密钥(GCP_PROJECT_ID, GCP_SECRET_NAME).

响应形状(示例)

工具响应被标准化为JSON。典型形状:

  • Jira搜索

    {
        "result": "ok",
        "issues": [
            { "key": "ABC-1", "summary": "...", "status": "Open" }
        ]
    }
    
  • Jira过渡(成功)

    { "result": "transitioned", "issue_key": "ABC-1", "status": "Done" }
    
  • 错误示例(未找到状态)

    { "error": { "code": "STATUS_NOT_FOUND", "message": "Status 'In Progress' not found" } }
    

健康检查(Docker)

Dockerfile包含一个 HEALTHCHECK 定期呼叫 http://localhost:8080/health 如果服务器没有响应或返回非响应,则将容器标记为不健康-ok 状态。这与Docker/编排器集成,用于自动重启和监控。

安全须知

  • 身份验证: 支持 X-API-Key 通过以下方式进行标头身份验证 MCP_API_KEY 环境变量。
  • 输入消毒: HTML内容(例如Confluence注释)会自动转义以防止注入攻击。
  • 资源限制:
    • 所有上游API调用的全局超时为30秒。
    • 搜索操作的最大结果限制(50)。
    • 带TTL缓存的线程安全凭据管理(1小时)。
  • 集装箱安全:
    • 以非root身份运行 app 用户。
    • 基础图像由SHA256摘要固定。
    • 拥有的文件 app:app.
  • CI/CD安全:
    • 自动秘密扫描(Gitleaks)。
    • 静态应用程序安全测试(Bandit)。
  • 政策: 看 安全.md 用于漏洞披露。

发布图片

Docker Hub

docker login
docker tag atlassian-mcp-server yourusername/atlassian-mcp-server:latest
docker push yourusername/atlassian-mcp-server:latest

GitHub容器注册表(GHCR)

echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
docker tag atlassian-mcp-server ghcr.io/OWNER/IMAGE_NAME:latest
docker push ghcr.io/OWNER/IMAGE_NAME:latest

从GHCR中拉出并运行

发布后,您可以直接拉取并运行图像:

docker pull ghcr.io/mani0070/atlassian-mcp-server:latest
docker run -d \
    -p 8080:8080 \
    --name atlassian-mcp-server \
    ghcr.io/mani0070/atlassian-mcp-server:latest

试试看

验证服务器是否已启动并响应:

curl -s http://localhost:8080/ | jq
curl -s http://localhost:8080/health | jq

项目工作流程

有关贡献过程、分支策略、CI/CD、版本和安全实践,请参阅:

  • docs/WORKFLOW.md

发布

  • GitHub最新发布:https://github.com/mani0070/atlassian-mcp-server/releases
  • 容器映像:ghcr.io/mani0070/atlasian-mcp-server(标签:最新,v0.1.0)

需要更多详细信息或自定义图表?打开一个问题或PR。