使用说明
MCP Atlassian
一个模型上下文协议(MCP)服务器,为与Atlassian产品(Confluence和Jira)交互提供了全面的工具。
概述
此MCP服务器允许AI代理通过标准化接口与Atlassian产品进行交互。它为以下方面提供了广泛的工具:
- 汇流:使用v2 REST API进行完整的CRUD操作、内容搜索、空间管理、页面管理、注释、标签等
- Jira:问题管理、项目运营、过渡、评论和全面的工作流程支持
主要特点
- 现代API支持:使用Confluence v2 REST API并回退到v1以实现搜索功能
- 综合工具集:18+Confluence工具和8+Jira工具,涵盖所有主要业务
- 安全与隐私:内置PII过滤和SSL验证控制
- 灵活的配置:支持单独的服务URL、身份验证方法和工具过滤
- 分页支持:v2 API的基于光标的分页和v1 API的偏移/限制
- 错误处理:具有详细错误消息的全面错误处理
- 类型安全:具有正确类型定义的完整TypeScript实现
先决条件
- Node.js(v16或更高版本)
- npm或纱线
- 带有API令牌的Atlassian帐户
- Docker(可选,用于容器化部署)
安装
标准安装
-
克隆存储库:
git clone https://github.com/yourusername/mcp-atlassian.git cd mcp-atlassian -
安装依赖项:
npm install # or using make make install -
创建一个
.env根目录中的文件,其中包含您的Atlassian凭据:ATLASSIAN_HOST=https://your-domain.atlassian.net ATLASSIAN_EMAIL=your-email@example.com ATLASSIAN_API_TOKEN=your-api-token
Docker安装
-
克隆存储库:
git clone https://github.com/yourusername/mcp-atlassian.git cd mcp-atlassian -
创建一个
.env如上所述的文件。 -
构建并运行Docker容器:
# Build the Docker image make docker-build # Run the Docker container make docker-run # Or use Docker Compose make docker-compose
用法
启动服务器
# Using npm
npm start
# Using make
make start
# Using Docker
make docker-run
这将启动MCP服务器,它将在可流式传输的HTTP上进行监听和响应。
MCP配置
"mcp-searchapi": {
"name": "mcp-searchapi",
"type": "streamable-http",
"streamable": true,
"url": "http://localhost:3007/mcp"
}
可用工具
汇流工具
搜索与发现:
-
搜索影响:使用带CQL的v1 API搜索Confluence中的内容
- 参数:
searchText(字符串),spaceKey(字符串,可选),limit(数字),start(编号)
- 参数:
-
搜索_影响_页面_标题:使用v2 API按标题搜索页面
- 参数:
title(字符串,可选),spaceId(字符串,可选),limit(数字),cursor(字符串,可选)
- 参数:
空间管理:
-
get_conference_space_by_id_or_key:获取特定Confluence空间的信息
- 参数:
spaceIdOrKey(字符串)
- 参数:
-
get_conference_spaces:获取所有可用空间
- 参数:
limit(数字,可选),cursor(字符串,可选)
- 参数:
页面管理:
-
获取影响内容:按ID获取特定页面内容
- 参数:
pageId(字符串),bodyFormat(枚举:存储/atlas_doc_format/wiki,可选)
- 参数:
-
get_conference_pages:获取空间中的所有页面
- 参数:
spaceId(字符串),limit(数字,可选),cursor(字符串,可选)
- 参数:
-
get_conference_child_pages:获取特定页面的子页面
- 参数:
pageId(字符串),limit(数字,可选),cursor(字符串,可选)
- 参数:
-
conference_create_page:创建新的Confluence页面
- 参数:
spaceId(字符串),title(字符串),content(字符串),status(枚举,可选),representation(枚举,可选),parentId(字符串,可选)
- 参数:
-
conference_update_page:更新现有页面
- 参数:
pageId(字符串),title(字符串),content(字符串),version(数字),status(枚举,可选),representation(枚举,可选),versionMessage(字符串,可选)
- 参数:
-
update_confluence_page_title:仅更新页面标题
- 参数:
pageId(字符串),title(字符串),status(枚举,可选)
- 参数:
-
conference_delete_page:删除Confluence页面
- 参数:
pageId(字符串)
- 参数:
标签管理:
-
get_confluence_pages_by_label:查找具有特定标签的页面
- 参数:
label(字符串),spaceId(字符串,可选),limit(数字,可选),cursor(字符串,可选)
- 参数:
-
get_conference_page_labels:获取特定页面的标签
- 参数:
pageId(字符串),limit(数字,可选),cursor(字符串,可选)
- 参数:
-
add_confluence_page_labels:向页面添加标签
- 参数:
pageId(字符串),labels(字符串数组)
- 参数:
评论:
-
get_conference_page_comments:在页面上获得定期评论
- 参数:
pageId(字符串),limit(数字,可选),cursor(字符串,可选)
- 参数:
-
add_confluence_page_comment:向页面添加评论
- 参数:
pageId(字符串),content(字符串),representation(枚举,可选)
- 参数:
-
get_conference_page_inline_comments:获取页面上的内联评论
- 参数:
pageId(字符串),limit(数字,可选),cursor(字符串,可选)
- 参数:
-
create_confluence_footer_comment:创建页脚注释
- 参数:
pageId(字符串,可选),blogPostId(字符串,可选),parentCommentId(字符串,可选),attachmentId(字符串,可选),customContentId(字符串,可选),content(字符串),representation(枚举,可选)
- 参数:
Jira工具
-
search_jira_issues:使用JQL(Jira查询语言)搜索问题
- 参数:
jql(字符串),maxResults(数字,可选)
- 参数:
-
get_jira_issue:获取有关特定问题的详细信息
- 参数:
issueKey(字符串)
- 参数:
-
jira_get_all_项目:获取所有可访问的项目
- 参数:无
-
jira_create_issue:创建新的Jira问题
- 参数:
projectKey(字符串),issueType(字符串),summary(字符串),description(字符串,可选),其他字段
- 参数:
-
jira_update_issue:更新现有问题
- 参数:
issueKey(字符串),fields(具有更新数据的对象)
- 参数:
-
jira_add_注释:向问题添加评论
- 参数:
issueKey(字符串),comment(字符串)
- 参数:
-
jira_get_转换:获取问题的可用转换
- 参数:
issueKey(字符串)
- 参数:
-
jira_transition问题:将问题转变为另一种状态
- 参数:
issueKey(字符串),transitionId(字符串),comment(字符串,可选)
- 参数:
架构说明
汇流API迁移
此服务器主要使用 Confluence v2 REST API 对于大多数操作,必要时可战略性回退到v1 API:
- v2 API:用于空格、页面、注释、标签-提供更好的性能和现代的基于光标的分页
- v1 API:用于通过CQL进行内容搜索-提供更强大的搜索功能
- SSL支持:自托管实例的可配置SSL验证旁路
- 认证:支持基本身份验证、OAuth 2.0(计划中)和PAT令牌
工具过滤和安全
- 只读模式:禁用所有写入操作以进行安全探索
- 工具白名单:仅通过启用特定工具
ENABLED_TOOLS环境变量 - PII过滤:自动检测和屏蔽响应中的敏感信息
- 错误上下文:详细的错误消息,不暴露敏感配置
发展
项目结构
src/
├── config/ # Configuration files
│ └── env.ts # Environment configuration with validation
├── services/ # Service classes for Atlassian APIs
│ ├── confluencev2.ts # Confluence v2 REST API service (primary)
│ ├── confluence.ts # Legacy Confluence service (deprecated)
│ └── jira.ts # Jira REST API service
├── tools/ # MCP tool implementations
│ ├── search-confluence.ts # Content search (v1 API)
│ ├── search-confluence-pages-by-title.ts # Title search (v2 API)
│ ├── get-confluence-space.ts # Single space info
│ ├── get-confluence-spaces.ts # All spaces list
│ ├── get-confluence-content.ts # Page content by ID
│ ├── get-confluence-pages.ts # Pages in space
│ ├── get-confluence-child-pages.ts # Child pages
│ ├── get-confluence-pages-by-label.ts # Pages by label
│ ├── get-confluence-page-labels.ts # Page labels
│ ├── add-confluence-page-labels.ts # Add labels
│ ├── get-confluence-page-comments.ts # Page comments
│ ├── add-confluence-page-comment.ts # Add comment
│ ├── get-confluence-page-inline-comments.ts # Inline comments
│ ├── confluence-create-page.ts # Create page
│ ├── confluence-update-page.ts # Update page
│ ├── update-confluence-page-title.ts # Update title only
│ ├── confluence-delete-page.ts # Delete page
│ ├── create-confluence-footer-comment.ts # Footer comments
│ ├── search-jira-issues.ts # Jira search
│ ├── get-jira-issue.ts # Single issue
│ ├── jira-create-issue.ts # Create issue
│ ├── jira-update-issue.ts # Update issue
│ ├── jira-add-comment.ts # Add comment
│ ├── jira-get-transitions.ts # Get transitions
│ ├── jira-transition-issue.ts # Transition issue
│ ├── jira-get-all-projects.ts # All projects
│ ├── utils.ts # Utility functions & PII filtering
│ └── index.ts # Tool exports
├── utils/ # Utility modules
│ └── tool-filter.ts # Tool filtering and access control
└── index.ts # Main entry point and server setup
建筑
# Using npm
npm run build
# Using make
make build
测试
# Using npm
npm test
# Using make
make test
Makefile命令
该项目包括一个Makefile来简化常见操作:
# Display available commands
make help
许可证
麻省理工学院
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
