Enables querying, filtering, and analyzing JIRA issue data stored in CSV files, with tools for listing issues with various criteria, retrieving detailed information for specific issues, and generating project statistics and summaries.
Provides access to JIRA issue data exported from Snowflake, reading from CSV files containing issue data, labels, components, and comments to make this data queryable through a standardized interface.
Jira MCP Server
A Model Context Protocol (MCP) server that provides access to JIRA issue data stored in Snowflake. This server enables AI assistants to query, filter, and analyze JIRA issues through a standardized interface.
Overview
This MCP server connects to Snowflake to query JIRA data and provides three main tools for interacting with the data:
list_issues
- Query and filter JIRA issues with various criteriaget_issue_details
- Get detailed information for a specific issue by keyget_project_summary
- Get statistics and summaries for all projects
Features
Data Sources
The server connects to Snowflake and queries the following tables:
JIRA_ISSUE_NON_PII
- Main issue data (non-personally identifiable information)JIRA_LABEL_RHAI
- Issue labels and tags
Note: Table names are expected to exist in your configured Snowflake database and schema.
Available Tools
1. List Issues (list_issues
)
Query JIRA issues with optional filtering:
- Project filtering - Filter by project key (e.g., 'SMQE', 'OSIM')
- Issue type filtering - Filter by issue type ID
- Status filtering - Filter by issue status ID
- Priority filtering - Filter by priority ID
- Text search - Search in summary and description fields
- Result limiting - Control number of results returned (default: 50)
2. Get Issue Details (get_issue_details
)
Retrieve comprehensive information for a specific JIRA issue by its key (e.g., 'SMQE-1280'), including:
- Basic issue information (summary, description, status, priority)
- Timestamps (created, updated, due date, resolution date)
- Time tracking (original estimate, current estimate, time spent)
- Metadata (votes, watches, environment, components)
- Associated labels
3. Get Project Summary (get_project_summary
)
Generate statistics across all projects:
- Total issue counts per project
- Status distribution per project
- Priority distribution per project
- Overall statistics
Monitoring & Metrics
The server includes optional Prometheus metrics support for monitoring:
- Tool usage tracking - Track calls to each MCP tool with success/error rates and duration
- Snowflake query monitoring - Monitor database query performance and success rates
- Connection tracking - Track active MCP connections
- HTTP endpoints -
/metrics
for Prometheus scraping and/health
for health checks
Prerequisites
- Python 3.8+
- Podman or Docker
- Access to Snowflake with appropriate credentials
Architecture
The codebase is organized into modular components in the src/
directory:
src/mcp_server.py
- Main server entry point and MCP initializationsrc/config.py
- Configuration management and environment variable handlingsrc/database.py
- Snowflake database connection and query executionsrc/tools.py
- MCP tool implementations and business logicsrc/metrics.py
- Optional Prometheus metrics collection and HTTP server
Environment Variables
The following environment variables are used to configure the Snowflake connection:
Required
SNOWFLAKE_TOKEN
- Your Snowflake authentication token (Bearer token)SNOWFLAKE_BASE_URL
- Snowflake API base URL (e.g.,https://your-account.snowflakecomputing.com/api/v2
)SNOWFLAKE_DATABASE
- Snowflake database name containing your JIRA dataSNOWFLAKE_SCHEMA
- Snowflake schema name containing your JIRA tables
Optional
MCP_TRANSPORT
- Transport protocol for MCP communication- Default:
stdio
- Default:
ENABLE_METRICS
- Enable Prometheus metrics collection- Default:
false
- Default:
METRICS_PORT
- Port for metrics HTTP server- Default:
8000
- Default:
Installation & Setup
Local Development
- Clone the repository:
- Install dependencies:
- Set up environment variables (see Environment Variables section above)
- Run the server:
Container Deployment
Building locally
To build the container image locally using Podman, run:
This will create a local image named jira-mcp-snowflake:latest
that you can use to run the server.
Running with Podman or Docker
Example configuration for running with Podman:
Then access metrics at: http://localhost:8000/metrics
Connecting to a remote instance
Example configuration for connecting to a remote instance:
VS Code Continue Integration
Example configuration to add to VS Code Continue:
Usage Examples
Query Issues by Project
Search Issues by Text
Get Specific Issue Details
Get Project Overview
Monitoring
When metrics are enabled, the server provides the following monitoring endpoints:
/metrics
- Prometheus metrics endpoint for scraping/health
- Health check endpoint returning JSON status
Available Metrics
mcp_tool_calls_total
- Counter of tool calls by tool name and statusmcp_tool_call_duration_seconds
- Histogram of tool call durationsmcp_active_connections
- Gauge of active MCP connectionsmcp_snowflake_queries_total
- Counter of Snowflake queries by statusmcp_snowflake_query_duration_seconds
- Histogram of Snowflake query durations
Data Privacy
This server is designed to work with non-personally identifiable information (non-PII) data only. The Snowflake tables should contain sanitized data with any sensitive personal information removed.
Security Considerations
- Environment Variables: Store sensitive information like
SNOWFLAKE_TOKEN
in environment variables, never in code - Token Security: Ensure your Snowflake token is kept secure and rotated regularly
- Network Security: Use HTTPS endpoints and secure network connections
- Access Control: Follow principle of least privilege for Snowflake database access
- SQL Injection Prevention: The server includes input sanitization to prevent SQL injection attacks
Dependencies
httpx
- HTTP client library for Snowflake API communicationfastmcp
- Fast MCP server frameworkprometheus_client
- Prometheus metrics client (optional, for monitoring)
Development
Code Structure
The project follows a modular architecture:
Adding New Tools
To add new MCP tools:
- Add the tool function to
src/tools.py
- Decorate with
@mcp.tool()
and@track_tool_usage("tool_name")
- Follow the existing patterns for error handling and logging
- Update this README with documentation for the new tool
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
A Model Context Protocol server that provides access to JIRA issue data stored in CSV files, enabling AI assistants to query, filter, and analyze JIRA issues through standardized tools.
Related MCP Servers
- AsecurityAlicenseAqualityProvides an interface to access and manage JIRA data through the Model Context Protocol, offering features like relationship tracking, data cleaning, and contextual insights for AI applications.Last updated -919920TypeScriptMIT License
- -securityFlicense-qualityA server implementation that allows AI models to interact with Jira through the Model Context Protocol, enabling tasks like JQL searches and retrieving issue details.Last updated -Python
- AsecurityFlicenseAqualityA Model Context Protocol server that enables integration with JIRA, allowing users to interact with JIRA tasks and issues through Claude AI assistant.Last updated -32Python
- AsecurityFlicenseAqualityA Model Context Protocol server that enables ChatGPT and other AI assistants to directly interact with JIRA issues, currently offering the ability to retrieve issue details.Last updated -TypeScript