Vestel Jira Server
FreeNot checkedConnects AI assistants to Jira, enabling retrieval, search, creation, and update of issues with schema validation.
About
Connects AI assistants to Jira, enabling retrieval, search, creation, and update of issues with schema validation.
README
An integration server built on the Model Context Protocol (MCP) that connects AI assistants to Jira. It provides tools to retrieve, search, create, and update issues, supporting input/output schema validation.
Features
- Get Assigned Issues: Inclusive retrieval of active issues (
Pending,Submitted,In Progress,Open,Reopened). - Fetch Issue Details: Retrieve key fields, descriptions, and comments.
- Query Issues via JQL: Perform flexible Jira Query Language searches.
- Manage Issues: Create new issues, update fields, and add comments.
- Get Issue Commits: Fetch commits linked to a single issue via the Jira Development Status API (supports Bitbucket, FishEye/Crucible, GitHub, GitLab integrations).
- Get Version Commits: Aggregate all commits across every issue belonging to a specific project release version (fixVersion).
- Strict Schema Compliance: All tools declare input and output schemas conforming to the MCP specifications.
Installation
- Clone or copy the repository files.
- Install dependencies:
npm install
Configuration
The server is configured via environment variables or a configuration file.
| Variable | Description | Example |
|---|---|---|
JIRA_URL |
Base URL of your Jira instance | https://rdpm.vestel.com.tr/ |
JIRA_USERNAME |
Username (required for basic authentication) |
your_username |
JIRA_PASSWORD |
Personal Access Token (PAT) or password | your_pat_or_password |
JIRA_AUTH_TYPE |
Authentication mechanism: bearer or basic (default) |
bearer |
JIRA_REJECT_UNAUTHORIZED |
Toggle SSL certificate verification | true |
ALLOWED_PROJECTS |
Comma-separated list of allowed project keys. If empty, not set, or containing *, all projects are allowed. |
PROJ,TEST |
ALLOWED_TOOLS |
Comma-separated list of allowed MCP tools. If empty, not set, or containing *, all tools are allowed. |
jira_get_issue,jira_search_issues |
Security Configuration File (.jira-config.json)
You can also restrict access by creating a .jira-config.json file in your server's working directory.
- Use
*inside the array to allow all projects or all tools (which is the default configuration).
{
"allowedProjects": ["*"],
"allowedTools": ["*"]
}
If the file is present, it will take precedence over the environment variables.
MCP Integration Guide
Configure your MCP host (such as Claude Desktop or Gemini Code Assist) to launch the server.
Example configuration (claude_desktop_config.json):
{
"mcpServers": {
"vestel-jira": {
"command": "npx",
"args": ["-y", "github:thehavays/vestel-mcp-server"],
"env": {
"JIRA_URL": "https://rdpm.vestel.com.tr/",
"JIRA_USERNAME": "your_username",
"JIRA_PASSWORD": "your_secure_password_or_token",
"JIRA_AUTH_TYPE": "bearer",
"JIRA_REJECT_UNAUTHORIZED": "true",
"ALLOWED_PROJECTS": "*",
"ALLOWED_TOOLS": "*"
}
}
}
}
Tools Documentation
jira_get_issue
Retrieve details of a specific Jira issue (summary, status, assignee, reporter, description, comments, issueType, priority, and linkedIssues).
- Input Schema:
issueKey(string, required): Key (e.g.,PROJ-123).
- Output Schema: Conforms to an object containing issue properties, comments, issueType, priority, and linkedIssues.
jira_get_issues_by_assignee
Retrieve open/active issues (ignores resolved/closed statuses).
- Input Schema:
username(string, required): Jira username.maxResults(number, optional): Defaults to50.
- Output Schema:
{ issues: Array<{ key, summary, status, updated, issueType, priority, linkedIssues: Array<{ direction, linkType, key, summary, status, issueType, priority }> }> }
jira_get_review_issues_by_assignee
Retrieve issues currently in a review status.
- Input Schema:
username(string, required): Jira username.maxResults(number, optional): Defaults to50.
- Output Schema:
{ issues: Array<{ key, summary, status, updated, issueType, priority, linkedIssues: Array<{ direction, linkType, key, summary, status, issueType, priority }> }> }
jira_create_issue
Create a new issue.
- Input Schema:
projectKey(string, required)summary(string, required)description(string, required)issueType(string, required)
- Output Schema:
{ key, url }
jira_update_issue
Update fields of an existing issue.
- Input Schema:
issueKey(string, required)fields(object, required)
- Output Schema:
{ issueKey, success }
jira_add_comment
Add a comment to an issue.
- Input Schema:
issueKey(string, required)comment(string, required)
- Output Schema:
{ issueKey, commentId, success }
jira_search_issues
Search using JQL.
- Input Schema:
jql(string, required)maxResults(number, optional)
- Output Schema:
{ issues: Array<{ key, summary, status, assignee, updated, issueType, priority, linkedIssues: Array<{ direction, linkType, key, summary, status, issueType, priority }> }> }
jira_get_watched_issues
Retrieve a list of open/active issues watched by a specific user or the authenticated user.
- Input Schema:
username(string, optional): The Jira username of the watcher.maxResults(number, optional): Defaults to50.
- Output Schema:
{ issues: Array<{ key, summary, status, updated, issueType, priority, linkedIssues: Array<{ direction, linkType, key, summary, status, issueType, priority }> }> }
jira_get_user_activities
Fetch a timeline feed of recent activities (comments, transitions, updates) performed by a user using the Jira Activity Stream.
- Input Schema:
username(string, optional): The Jira username to fetch activities for.startDate(string, optional): Start date inYYYY-MM-DDformat.endDate(string, optional): End date inYYYY-MM-DDformat.maxResults(number, optional): Defaults to50.
- Output Schema:
{ activities: Array<{ title, published, content, url }> }
jira_get_issue_commits
Fetch commits linked to a specific Jira issue via the Jira Development Status API (/rest/dev-status/latest/issue/*). Supports any SCM integration configured in your Jira instance, including Bitbucket, FishEye/Crucible, GitHub, and GitLab.
[!NOTE] Requires Jira Software with an active source control integration (e.g., Bitbucket Server, FishEye/Crucible, GitHub for Jira). The tool automatically discovers all linked SCM instance types and fetches commits from each.
- Input Schema:
issueKey(string, required): The issue key (e.g.,PROJ-123).
- Output Schema:
{ issueKey, commits: Array<{ id, message, author, authorEmail, date, url, repository, repositoryUrl }> } - Example Output:
{ "issueKey": "PROJ-123", "commits": [ { "id": "abc1234", "message": "BUGFIX PROJ-123: Fix login bug", "author": "Jane Doe", "authorEmail": "[email protected]", "date": "2026-05-22T17:38:17.589+0300", "url": "https://your-scm.example.com/commits/abc1234", "repository": "my-repo", "repositoryUrl": "https://your-scm.example.com/browse/my-repo" } ] }
jira_get_version_commits
Aggregate all commits linked to a specific Jira project release version (fixVersion). Uses JQL to find every issue belonging to the version, then calls the Jira Development Status API per issue and deduplicates commits that appear on multiple issues. Each commit in the result carries its originating issueKey.
[!NOTE] Requires Jira Software with an active source control integration (e.g., Bitbucket Server, FishEye/Crucible, GitHub for Jira). Large versions with many issues will trigger one dev-status API call per issue; use
maxIssuesto cap the scan if needed.
- Input Schema:
projectKey(string, required): The project key (e.g.,COMA).version(string, required): The fixVersion name exactly as it appears in Jira (e.g.,v1.18.9).maxIssues(number, optional): Maximum number of issues to scan. Defaults to100.
- Output Schema:
{ projectKey, version, issueCount, commits: Array<{ id, message, author, authorEmail, date, url, repository, repositoryUrl, issueKey }> } - Example Output:
{ "projectKey": "COMA", "version": "v1.18.9", "issueCount": 42, "commits": [ { "id": "8470", "message": "BUGFIX COMA-4991: Fix eFuse version reporting", "author": "Eray Havaylar", "authorEmail": "", "date": "2026-05-22T17:38:17.589+0300", "url": "https://rdreview.vestel.com.tr/changelog/AndroidTV?cs=8470", "repository": "AndroidTV", "repositoryUrl": "https://rdreview.vestel.com.tr/browse/AndroidTV", "issueKey": "COMA-4991" } ] }
Sharing and Distribution
[!WARNING] Important Security Practice: Never share or commit the
.agents/mcp_config.jsonor.envfiles that contain sensitive environment values (such as passwords, usernames, or access tokens).
To prepare this server for package registry/repository hosting:
- Initialize git and configure
.gitignoreto prevent committing secrets:git init echo "node_modules/" >> .gitignore echo ".agents/" >> .gitignore echo ".env" >> .gitignore - Specify included files inside your
package.json:"files": [ "index.js", "package.json", "README.md" ] - Generate a release bundle for local sharing:
npm pack
Installing Vestel Jira Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/thehavays/vestel-mcp-serverFAQ
Is Vestel Jira Server MCP free?
Yes, Vestel Jira Server MCP is free — one-click install via Unyly at no cost.
Does Vestel Jira Server need an API key?
No, Vestel Jira Server runs without API keys or environment variables.
Is Vestel Jira Server hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Vestel Jira Server in Claude Desktop, Claude Code or Cursor?
Open Vestel Jira Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Notion
Read and write pages in your workspace
by NotionLinear
Issues, cycles, triage — from Claude
by LinearGoogle Drive
Search and read your Drive files
by Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
by mindsdbCompare Vestel Jira Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All productivity MCPs
