使用说明
Atlassian MCP服务器
一个模型上下文协议(MCP)服务器,提供与Atlassian工具交互的统一接口:Jira server 9.12、Confluence server 8.15、Bitbucket 8.9和Bamboo 9.2.7。
特性
- 多工具支持:通过单个MCP服务器与Jira、Confluence、Bitbucket和Bamboo集成
- 柔性运输:支持stdio和HTTP传输机制
- 整洁架构:遵循干净架构原则的结构良好的代码库
- 类型安全:利用Go的类型系统进行编译时保证
- 全面的错误处理:Atlassian API和MCP协议之间的详细错误映射
先决条件
- 转到1.24.1或更高版本
- 访问一个或多个Atlassian工具(Jira、Confluence、Bitbucket、Bamboo)
- 每个工具的有效凭据(用户名/密码或个人访问令牌)
安装
- 克隆存储库:
git clone <repository-url>
cd atlassian-mcp-server
- 安装依赖项:
go mod download
- 构建服务器:
go build -o atlassian-mcp-server main.go
Docker安装
- 构建Docker镜像:
docker build -t atlassian-mcp-server .
- 使用您的配置运行:
docker run -v $(pwd)/config.yaml:/app/config.yaml atlassian-mcp-server
对于HTTP传输模式,暴露端口:
docker run -p 8080:8080 -v $(pwd)/config.yaml:/app/config.yaml atlassian-mcp-server
配置
- 复制示例配置文件:
cp config.yaml.example config.yaml
- 编辑
config.yaml使用Atlassian工具详细信息:- 设置
base_url对于您要使用的每个工具 - 配置身份验证(基本或基于令牌)
- 选择传输类型(stdio或http)
- 设置
配置结构
transport:
type: stdio # or "http"
# http: # Only required for HTTP transport
# host: localhost
# port: 8080
tools:
jira:
base_url: https://jira.example.com
auth:
type: basic # or "token"
username: your-username
password: your-password
# token: your-token # For token auth
# Configure other tools similarly...
运输选项
标准运输 (默认):
- 从stdin读取JSON-RPC消息
- 将响应写入stdout
- 非常适合基于流程的集成
HTTP传输:
- 为JSON-RPC消息公开HTTP端点
- 适用于远程集成
- 需要主机和端口配置
身份验证方法
基本认证:
auth:
type: basic
username: your-username
password: your-password
令牌身份验证:
auth:
type: token
token: your-personal-access-token
用法
使用默认配置运行
./atlassian-mcp-server
这将从加载配置 config.yaml 在当前目录中。
使用自定义配置运行
./atlassian-mcp-server -config /path/to/config.yaml
命令行标志
-config:配置文件的路径(默认值:config.yaml)
可用工具
Jira运营
jira_get_issue:按密钥检索Jira问题jira_create_issue:创建新的Jira问题jira_update_issue:更新现有问题jira_delete_issue:删除问题jira_search_jql:使用JQL搜索问题jira_transition_issue:将问题转变为新的状态jira_add_comment:向问题添加评论jira_list_projects:列出所有可访问的项目
汇流操作
confluence_get_page:按ID检索页面confluence_create_page:创建新页面confluence_update_page:更新现有页面confluence_delete_page:删除页面confluence_search_cql:使用CQL搜索内容confluence_get_spaces:列出所有可访问的空间confluence_get_page_history:获取页面版本历史记录
Bitbucket操作
bitbucket_get_repositories:列出项目中的存储库bitbucket_get_branches:列出存储库中的分支bitbucket_create_branch:创建新分支bitbucket_get_pull_request:获取拉取请求详细信息bitbucket_create_pull_request:创建新的pull请求bitbucket_merge_pull_request:合并拉取请求bitbucket_get_commits:获取提交历史记录bitbucket_get_file_content:检索文件内容
竹子作业
bamboo_get_plans:列出所有构建计划bamboo_get_plan:获取具体的构建计划bamboo_trigger_build:触发构建bamboo_get_build_result:获取构建结果详细信息bamboo_get_build_log:检索生成日志bamboo_get_deployment_projects:列出部署项目bamboo_trigger_deployment:触发部署
MCP协议
服务器使用JSON-RPC 2.0消息传递实现模型上下文协议(MCP)。它支持以下MCP方法:
initialize:客户端和服务器之间的初始握手tools/list:发现可用工具tools/call:执行工具操作
示例工具调用
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "jira_get_issue",
"arguments": {
"issueKey": "TEST-123"
}
}
}
优雅地关闭
服务器在收到以下信息时处理优雅关机:
SIGINT(Ctrl+C)SIGTERM
所有飞行中的请求都将在关机前完成。
错误处理
服务器通过适当的JSON-RPC错误代码提供全面的错误处理:
-32700:分析错误-32600:无效请求-32601:未找到方法-32602:无效参数-32603:内部错误-32001:配置错误-32002:身份验证错误-32003:API错误-32004:网络错误-32005:速率限制错误
日志记录
服务器将重要事件记录到stdout:
- 配置加载
- 组件初始化
- 服务器启动/关闭
- 请求处理(通过结构化记录器)
- 错误和警告
发展
项目结构
atlassian-mcp-server/
├── main.go # Entry point with dependency injection
├── internal/
│ ├── domain/ # Domain layer (core business logic)
│ │ ├── config.go # Configuration management
│ │ ├── auth.go # Authentication manager
│ │ ├── transport.go # Transport interfaces and implementations
│ │ ├── response_mapper.go # Response transformation
│ │ └── models.go # Domain models
│ ├── application/ # Application layer (use cases)
│ │ ├── server.go # MCP server core
│ │ ├── router.go # Request router
│ │ ├── jira_handler.go # Jira operations handler
│ │ ├── confluence_handler.go # Confluence operations handler
│ │ ├── bitbucket_handler.go # Bitbucket operations handler
│ │ └── bamboo_handler.go # Bamboo operations handler
│ └── infrastructure/ # Infrastructure layer (external dependencies)
│ ├── jira_client.go # Jira API client
│ ├── confluence_client.go # Confluence API client
│ ├── bitbucket_client.go # Bitbucket API client
│ └── bamboo_client.go # Bamboo API client
└── config.yaml # Configuration file
运行测试
# Run all tests
go test ./...
# Run tests with coverage
go test -cover ./...
# Run property-based tests
go test -v ./internal/...
许可证
[在此处添加您的许可证信息]
贡献
[在此处添加贡献指南]
支持
有关问题和疑问,请[在此处添加支持信息]。
