使用说明
Atlassian MCP服务器
一种模型上下文协议(MCP)服务器,提供与Atlassian Jira和Confluence的集成。此服务器允许LLM通过结构化API与Jira票证和Confluence页面进行交互。
概述
此MCP服务器集成了Atlassian Jira和Confluence,提供:
- 按受让人、创建者或日期范围检索JIRA票证
- 汇流页面搜索
- 与Jira云平台REST API v3集成
- 与Confluence REST API v2集成
MCP工具
服务器提供以下工具:
Jira工具
search_jira_tickets:使用灵活的过滤器搜索票证(受让人、创建者、项目、状态、创建/更新日期范围)get_jira_tickets_by_assignee:通过可选的日期过滤按受让人获取门票get_jira_tickets_by_creator:通过可选的日期过滤按创建者获取门票get_jira_tickets_in_timeframe:获取在特定时间范围内创建的门票get_ticket_by_key:按密钥检索特定票证
汇流工具
search_confluence_pages:按CQL搜索Confluence页面
建筑
项目结构
src/
├── services/ # Core service classes
│ ├── jira.ts # Jira API client (strict types, Zod validation, error handling)
│ └── confluence.ts # Confluence API client
├── types/ # TypeScript type definitions
│ └── atlassian.ts # Atlassian API types
├── schemas/ # Zod validation schemas
│ └── atlassian.ts # Input validation
├── __tests__/ # Unit tests (Jest)
│ ├── jira.test.ts
│ ├── confluence.test.ts
│ └── schemas.test.ts
└── index.ts # MCP server entry point
关键组件
- JiraService (src/services/jira.ts):处理Jira API交互,包括按受让人、创建者和日期范围进行的票证搜索,并进行严格的类型检查和Zod验证。
- 汇流服务 (src/services/conference.ts):管理Confluence API调用。
- 架构验证:使用Zod进行输入验证和类型安全(src/schemas/atlassian.ts).
- 错误处理:全面的错误处理和有意义的消息。
- 测试:所有主要功能的完整单元测试覆盖(src/测试/).
发展
添加新功能
- 添加新类型 在……里面
src/types/atlassian.ts - 创建验证模式 在……里面
src/schemas/atlassian.ts - 实施服务方法 在各自的服务类别中
- 添加MCP工具定义 在……里面
src/index.ts - 编写全面的测试 在……里面
src/__tests__/
代码质量
- TypeScript:已启用严格类型检查
- 测试:玩弄全面的单元测试
- 验证:所有输入的Zod模式
- 错误处理:正确的错误消息和HTTP状态代码
故障排除
常见问题
-
身份验证错误
- 验证API令牌是否正确
- 检查电子邮件地址是否与Atlassian帐户匹配
- 确保令牌具有足够的权限
-
连接问题
- 验证基本URL是否正确
- 检查网络连接
- 确认Atlassian实例可访问
-
查询错误
- 验证Jira查询的JQL语法
- 检查Confluence搜索的CQL语法
- 确保项目密钥和空间密钥存在
调试模式
在开发模式下运行以查看详细的错误消息:
npm run dev
安全考虑
- 安全存储API令牌(使用环境变量)
- 从不将令牌提交到版本控制
- 使用最少特权API令牌
- 定期轮换API代币
- 监控API使用情况和费率限制
贡献
- 分叉存储库
- 创建要素分支
- 通过测试进行更改
- 确保所有测试通过
- 提交拉取请求
许可证
ISC许可证-有关详细信息,请参阅许可证文件。
更新日志
v1.0.0
- Jira门票搜索和检索
- 汇流页搜索功能
- 全面的测试覆盖率
- 完整的MCP服务器实施
- 文件和示例
Jira集成
- 按受让人搜索门票 -检索分配给特定用户的票证
- 按创建者搜索门票 -查找特定用户创建的工单
- 基于日期的过滤 -按创建日期范围筛选票证
- 时间范围查询 -获取在特定时间段内创建的所有门票
- 高级搜索 -同时使用多个筛选器(受让人、创建者、项目、状态、日期)
汇流集成
- 页面搜索 -按文本内容查找页面
- 空间滤波 -将搜索限制在特定的Confluence空间
- 页面链接 -检索匹配页面的直接链接
- 内容类型过滤 -搜索页面或博客文章
先决条件
- Node.js(v16或更高版本)
- TypeScript
- 具有API访问权限的Atlassian云实例
- Jira和Confluence的API令牌
安装
- 克隆和安装依赖关系:
git clone <repository-url>
cd gst-atlassian-mcp
npm install
- 配置环境变量:
cp .env.example .env
编辑 .env 使用您的Atlassian凭据:
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_EMAIL=your-email@example.com
JIRA_API_TOKEN=your-jira-api-token
CONFLUENCE_BASE_URL=https://your-domain.atlassian.net
CONFLUENCE_EMAIL=your-email@example.com
CONFLUENCE_API_TOKEN=your-confluence-api-token
- 构建项目:
npm run build
API令牌设置
对于Jira和Confluence Cloud:
- 首选 大西洋API代币
- 点击“创建API令牌”
- 给它一个描述性的标签
- 复制生成的令牌
- 使用您的电子邮件地址和API令牌进行身份验证
用法
发展模式
npm run dev
生产模式
npm start
运行测试
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage
MCP工具
服务器提供以下工具:
Jira工具
search_jira_tickets
使用各种过滤器搜索Jira门票。
参数:
assignee(可选):受让人的电子邮件creator(可选):创建者的电子邮件createdAfter(可选):此日期之后创建的票证的ISO日期字符串createdBefore(可选):在此日期之前创建的票证的ISO日期字符串project(可选):项目密钥status(可选):票证状态maxResults(可选):最大结果数(1-100,默认值:50)startAt(可选):分页的起始索引(默认值:0)
get_jira_tickets_by_assignee
获取分配给特定用户的门票。
参数:
assigneeEmail(必填):受让人的电子邮件createdAfter(可选):ISO日期字符串createdBefore(可选):ISO日期字符串maxResults(可选):最大结果(默认值:50)
get_jira_tickets_by_creator
获取由特定用户创建的工单。
参数:
creatorEmail(必填):创建者的电子邮件createdAfter(可选):ISO日期字符串createdBefore(可选):ISO日期字符串maxResults(可选):最大结果(默认值:50)
get_jira_tickets_in_timeframe
获取在特定时间范围内创建的门票。
参数:
startDate(必填):ISO日期字符串表示时间范围的开始endDate(必填):ISO日期字符串表示时间范围结束maxResults(可选):最大结果(默认值:50)
汇流工具
search_confluence_pages
基于文本查询搜索Confluence页面。
参数:
query(必填):要在页面中搜索的文本spaceKey(可选):空格键限制搜索type(可选):'page'或'blogpost'(默认值:'page])limit(可选):最大结果(1-100,默认值:25)start(可选):分页的起始索引(默认值:0)
get_confluence_page_links
获取与搜索查询匹配的Confluence页面的直接链接。
参数:
query(必填):要搜索的文本spaceKey(可选):空格键限制搜索limit(可选):最大结果(默认值:25)
查询示例
Jira示例
// Get all tickets assigned to john.doe@example.com
{
"name": "get_jira_tickets_by_assignee",
"arguments": {
"assigneeEmail": "john.doe@example.com"
}
}
// Get tickets created in January 2024
{
"name": "get_jira_tickets_in_timeframe",
"arguments": {
"startDate": "2024-01-01T00:00:00.000Z",
"endDate": "2024-01-31T23:59:59.999Z"
}
}
// Search for high priority bugs in the TEST project
{
"name": "search_jira_tickets",
"arguments": {
"project": "TEST",
"status": "Open",
"maxResults": 25
}
}
汇流示例
// Search for pages about "API documentation"
{
"name": "search_confluence_pages",
"arguments": {
"query": "API documentation"
}
}
// Get links to pages about "user guide" in the DOCS space
{
"name": "get_confluence_page_links",
"arguments": {
"query": "user guide",
"spaceKey": "DOCS",
"limit": 10
}
}
建筑
项目结构
src/
├── services/ # Core service classes
│ ├── jira.ts # Jira API client
│ └── confluence.ts # Confluence API client
├── types/ # TypeScript type definitions
│ └── atlassian.ts # Atlassian API types
├── schemas/ # Zod validation schemas
│ └── atlassian.ts # Input validation
├── __tests__/ # Unit tests
│ ├── jira.test.ts
│ ├── confluence.test.ts
│ └── schemas.test.ts
└── index.ts # MCP server entry point
关键组件
- JiraService:使用REST API v3处理所有Jira API交互
- 汇流服务:使用REST API v2管理Confluence API调用
- 架构验证:使用Zod进行输入验证和类型安全
- 错误处理:通过有意义的消息进行全面的错误处理
- 测试:所有主要功能的完整单元测试覆盖
发展
添加新功能
- 添加新类型 在……里面
src/types/atlassian.ts - 创建验证模式 在……里面
src/schemas/atlassian.ts - 实施服务方法 在各自的服务类别中
- 添加MCP工具定义 在……里面
src/index.ts - 编写全面的测试 在……里面
src/__tests__/
代码质量
- TypeScript:已启用严格类型检查
- 测试:玩弄全面的单元测试
- 验证:所有输入的Zod模式
- 错误处理:正确的错误消息和HTTP状态代码
故障排除
常见问题
-
身份验证错误
- 验证API令牌是否正确
- 检查电子邮件地址是否与Atlassian帐户匹配
- 确保令牌具有足够的权限
-
连接问题
- 验证基本URL是否正确
- 检查网络连接
- 确认Atlassian实例可访问
-
查询错误
- 验证Jira查询的JQL语法
- 检查Confluence搜索的CQL语法
- 确保项目密钥和空间密钥存在
调试模式
在开发模式下运行以查看详细的错误消息:
npm run dev
安全考虑
- 安全存储API令牌(使用环境变量)
- 从不将令牌提交到版本控制
- 使用最少特权API令牌
- 定期轮换API代币
- 监控API使用情况和费率限制
贡献
- 分叉存储库
- 创建要素分支
- 通过测试进行更改
- 确保所有测试通过
- 提交拉取请求
许可证
ISC许可证-有关详细信息,请参阅许可证文件。
更新日志
v1.0.0(初始版本)
- Jira门票搜索和检索
- 汇流页搜索功能
- 全面的测试覆盖率
- 完整的MCP服务器实施
- 文件和示例
