Dynamic Jira Software Cloud MCP Server
Dynamically exposes over 100 Jira Software Cloud REST API operations as fully typed tools for LLMs to interact with, supporting SSE and Stdio transports.
README
Dynamic Jira Software Cloud MCP Server
A premium, dynamic Model Context Protocol (MCP) server generated dynamically from Atlassian's swagger.json specification using the FastMCP framework in Python.
This server dynamically exposes over 100 Jira Software Cloud REST API operations as fully typed tools for Large Language Models (LLMs) to interact with, supporting Sstdio and Server-Sent Events (SSE) transports.
๐ Architecture & Project Structure
The project has been architected following highly modular and decoupled software engineering best practices:
โโโ .env # Local environment configuration
โโโ Dockerfile # Safe, non-root system user Docker image setup
โโโ docker-compose.yml # Automated multi-container configuration
โโโ pyproject.toml # Python project configuration and dependency list
โโโ dynamic_jira_mcp.py # FastMCP server registration and transport hub
โโโ dynamic_jira_mcp_client.py # Async MCP Client for testing the running SSE server
โโโ swagger.json # Atlassian Jira Software Cloud API OpenAPI 3.0 specification
โโโ openapi/ # Decoupled OpenAPI extraction and client package
โ โโโ __init__.py
โ โโโ openapi_client.py # Generic OpenAPI spec parser and async HTTP request execution
โโโ tests/ # Fully automated test suite
โโโ test_dynamic_jira_mcp.py # Pytest-compatible tests with live console logging
โ๏ธ Configuration & Environment Variables
Create a local .env file in the root directory to customize the MCP server behavior and connect to your Jira instance:
# Atlassian Jira Instance URL (e.g., https://your-domain.atlassian.net)
JIRA_BASE_URL=https://your-domain.atlassian.net
# Atlassian Account Email
JIRA_USERNAME=your-email@example.com
# Atlassian Account API Token
JIRA_API_TOKEN=your-jira-api-token
# Allowed HTTP Methods (comma-separated, e.g. "get" for read-only or "get,post,put,delete" for full CRUD)
ALLOWED_METHODS=get,post,put,delete
# MCP Server Settings
MCP_TRANSPORT=sse
MCP_HOST=0.0.0.0
MCP_PORT=8000
๐ Running the Server
1. Locally with uv (Fastest)
Ensure you have uv installed:
# Install dependencies and launch the server
uv run python dynamic_jira_mcp.py
2. Containerized with Docker
This container is strictly configured with a non-root system user for industry-standard production safety.
# Build the Docker image
docker build -t jira-mcp-server .
# Run the container mapping port 8000
docker run -p 8000:8000 --env-file .env jira-mcp-server
3. Automatically with Docker Compose (Recommended)
To spin up, build (if missing), and tag the image, launch via compose:
# Launch the containerized server in detached mode
docker compose up -d
# View live server logs
docker logs -f jira-mcp-server
๐งช Testing and Introspection
1. Real-time Console Log Tests via Pytest
Run the comprehensive async testing suite with full live logging outputs:
uv run python -m pytest -o log_cli=true --log-cli-level=INFO tests/
2. Connect via the MCP Client Component
Run the asynchronous test client to verify connection to the running SSE server and list registered tools:
uv run python dynamic_jira_mcp_client.py
๐ Features Included:
- Reference Resolution (
$ref): Recursively resolves and parses internal OpenAPI schemas. - Dynamic Parameter Mapping: Handles Path parameters, Query parameters, and JSON Request bodies, registering them as native type annotations (e.g.
int,str,list,dict) inside Python's function signatures. - SSE & Stdio Support: Seamlessly toggles transport protocols.
- Secure Non-Root Container: Built with enterprise security best practices.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.