Skip to main content
Glama
thehavays

Vestel Jira MCP Server

by thehavays

Vestel Jira MCP Server

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.


Related MCP server: JIRA MCP Server

Installation

  1. Clone or copy the repository files.

  2. 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 to 50.

  • 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 to 50.

  • 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 to 50.

  • 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 in YYYY-MM-DD format.

    • endDate (string, optional): End date in YYYY-MM-DD format.

    • maxResults (number, optional): Defaults to 50.

  • 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": "jane@example.com",
          "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; usemaxIssues to 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 to 100.

  • 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.json or .env files that contain sensitive environment values (such as passwords, usernames, or access tokens).

To prepare this server for package registry/repository hosting:

  1. Initialize git and configure .gitignore to prevent committing secrets:

    git init
    echo "node_modules/" >> .gitignore
    echo ".agents/" >> .gitignore
    echo ".env" >> .gitignore
  2. Specify included files inside your package.json:

    "files": [
      "index.js",
      "package.json",
      "README.md"
    ]
  3. Generate a release bundle for local sharing:

    npm pack
A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/thehavays/vestel-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server