jira-confluence-mcp

jira-confluence-mcp

This MCP server provides unified read/write access to Jira Cloud tickets and Confluence Cloud pages, enabling search, retrieval, and updates. It automatically downloads log attachments from tickets into a shared directory for the companion Log Intelligence MCP to ingest.

Category
访问服务器

README

Jira + Confluence MCP

A single MCP server that gives the Rapid7 SI Triage agent read/write access to Jira Cloud (tickets, attachments, comments, search) and Confluence Cloud (the historical knowledge base of runbooks and postmortems). Combining both Atlassian products in one server is natural: they share the same auth and host, and the triage workflow uses them together.

A key side effect lives here: when the agent fetches a ticket, this server auto-downloads log-like attachments into a shared directory that the companion Log Intelligence MCP then ingests.


Tools

Jira

Tool Purpose
get_ticket(ticket_id, download_logs?) Fetch + normalise a ticket (summary, description, comments, attachments, product/components, environment). Auto-downloads log attachments unless download_logs=false.
get_attachment(ticket_id, attachment_id) Download a specific attachment by id into the ticket's log dir.
search_tickets(jql, max_results=25) JQL search — used to find similar historical defects.
post_comment(ticket_id, body) Post a comment (write; guarded).
update_ticket_field(ticket_id, field, value) Update one field (write; guarded).

Confluence

Tool Purpose
search_confluence(query, max_results=10, cql?) CQL/text search of the KB. Returns ranked, normalised results (title, url, excerpt, relevance) — the same shape as Jira search so the agent handles both uniformly.
get_page(page_id) Fetch a page as clean plain text (storage-format markup stripped) + metadata. Cached.
get_child_pages(page_id) List direct child pages (walk a runbook space).

Auth & configuration

Atlassian Cloud uses HTTP Basic auth with email:api_token (base64). Secrets come from the environment only — never hardcoded. Copy .env.example to .env:

ATLASSIAN_BASE_URL=https://asgspratapsingh.atlassian.net
ATLASSIAN_EMAIL=asgspratapsingh@gmail.com
ATLASSIAN_API_TOKEN=<create at id.atlassian.com/manage-profile/security/api-tokens>
SI_DATA_DIR=./si_data

ATLASSIAN_BASE_URL may be any URL from your site — it's normalised to the site origin automatically (e.g. …atlassian.net/jira/for-you?tab=x → https://…atlassian.net).

Write safety. DRY_RUN=1 refuses all writes (read-only). ALLOW_WRITES=0 refuses writes even when not in dry-run. Both post_comment and update_ticket_field respect these guards.

Attachment download. AUTO_DOWNLOAD_LOGS=1 (default) downloads attachments whose name ends in LOG_ATTACHMENT_SUFFIXES (.log,.txt,.gz,.out,.err) or that are text/plain, up to MAX_ATTACHMENT_MB (50). Files land in SI_DATA_DIR/logs/<ticket_id>/.

The HTTP client retries 429/5xx with exponential backoff (honouring Retry-After), controlled by HTTP_MAX_RETRIES and HTTP_TIMEOUT.


Install & run

cd jira-confluence-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e .            # installs mcp, httpx, uvicorn
cp .env.example .env        # fill in ATLASSIAN_API_TOKEN

# stdio:
python -m jira_confluence_mcp --transport stdio

# HTTP (streamable-http at http://127.0.0.1:8080/mcp):
python -m jira_confluence_mcp --transport http

Register with an MCP client (stdio example)

{
  "mcpServers": {
    "jira-confluence": {
      "command": "python",
      "args": ["-m", "jira_confluence_mcp", "--transport", "stdio"],
      "env": {
        "ATLASSIAN_BASE_URL": "https://asgspratapsingh.atlassian.net",
        "ATLASSIAN_EMAIL": "asgspratapsingh@gmail.com",
        "ATLASSIAN_API_TOKEN": "…",
        "SI_DATA_DIR": "/absolute/path/to/si_data"
      }
    }
  }
}

How it coordinates with the Log Intelligence MCP

Set SI_DATA_DIR to the same absolute path for both servers.

si_data/
  logs/<ticket_id>/…    # THIS server writes downloaded attachments here
                        # the Log Intelligence MCP reads + indexes them

Flow: get_ticket(EA-123) here → files appear in logs/EA-123/ → ingest_ticket_logs("EA-123") on the Log MCP → agent queries logs → delete_ticket_logs("EA-123") cleans up.


Ports

This server's HTTP transport defaults to 8080; the Log Intelligence MCP uses 8081, so both can run simultaneously.


Tests

pytest                      # in the POC environment
python tests/_runner.py     # offline harness when pytest isn't installed

Covers auth-header construction, base-URL normalisation, ADF→text flattening, ticket normalisation, log-attachment filtering, Confluence storage-format stripping, search-result normalisation, CQL escaping, and — via a stub HTTP transport (so no network is needed) — ticket fetch with auto-download, JQL search normalisation, write guards, Confluence search/get_page/caching, and child-page listing. 19 tests, all offline.

Live Jira/Confluence calls and running the MCP over a real transport need network access and the mcp/httpx packages installed, which the build sandbox blocks. The tests validate all request-building and response-handling logic against real payloads through the stubbed transport.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选