jira-mcp
by trongtai1801
README.md
# jira-mcp
MCP server for fetching Jira issue data.
## Required Settings
### Python
This project requires Python `3.14` or newer.
The required version is declared in:
- `.python-version`
- `pyproject.toml`
- `uv.lock`
### Dependency Management
Use `uv` as the Python dependency and virtual environment manager for this project.
Install `uv` if it is not already available:
```sh
curl -LsSf https://astral.sh/uv/install.sh | sh
```
Then install the project dependencies from `pyproject.toml` and `uv.lock`:
```sh
uv sync
```
Do not install dependencies directly with `pip`; keep dependency changes in `pyproject.toml` and refresh the lockfile with `uv`.
### Environment Variables
Create a local `.env` file from the example file:
```sh
cp .env.example .env
```
Set these values in `.env`:
```env
JIRA_EMAIL=your-email@example.com
JIRA_API_TOKEN=your-jira-token
JIRA_DOMAIN=your-company.atlassian.net
```
Required by the current code:
- `JIRA_EMAIL`: Email address used for Jira API authentication.
- `JIRA_API_TOKEN`: Jira API token for the account above.
- `JIRA_DOMAIN`: Jira site domain, for example `your-company.atlassian.net`.
Included in `.env.example` but not currently used by `main.py`:
- `MODEL_NAME`
- `OPENAI_API_KEY`
### Jira Access
The Jira API call uses:
```text
https://<JIRA_DOMAIN>/rest/api/3/issue/<ISSUE_KEY>
```
The Jira account must have permission to view the requested issue. For Atlassian Cloud, use an API token rather than your account password.
## Running
Run the MCP server over stdio:
```sh
uv run main.py
```
The server exposes the `fetch_jira` MCP tool.
## Cursor MCP Setup
To use this MCP server from another project in Cursor, create or update this file in that project:
```text
.cursor/mcp.json
```
Add the Jira MCP server configuration:
```json
{
"mcpServers": {
"jira-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/jira-mcp",
"run",
"main.py"
]
}
}
}
```
Replace `/path/to/jira-mcp` with the local path to this project on your computer.
TDQS
D1.7/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion with other tools. The tool's purpose is unambiguous within the set, even without a description.
Naming Consistency5/5
The single tool name 'fetch_jira' follows a clear verb_noun pattern, consistent with common naming conventions. There are no other tools to cause inconsistency.
Tool Count2/5
A single tool for a Jira server is far too few to cover typical operations like creating, updating, or deleting issues. It falls in the 'too few' category, making the server feel incomplete for its apparent purpose.
Completeness1/5
The server only provides a 'fetch' operation, lacking any create, update, delete, or search capabilities. This severely limits its usefulness for Jira workflows, leaving huge gaps in functionality.
Maintenance
ActivityInactive
ResponsivenessNo issues