Skip to main content
Glama
edrich13

MCP Jira Server

by edrich13

jira_get_current_user

Retrieve details of the currently authenticated user in Jira, including account ID, display name, email, and active status.

Instructions

Get information about the currently authenticated user

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Handler for 'jira_get_current_user' tool. Calls JiraClient.getCurrentUser() and returns the user data as JSON.
    case 'jira_get_current_user': {
      const user = await getJiraClient().getCurrentUser();
      return {
        content: [
          {
            type: 'text',
            text: JSON.stringify(user, null, 2),
          },
        ],
      };
    }
  • Registration of 'jira_get_current_user' tool with description and empty input schema.
    {
      name: 'jira_get_current_user',
      description: 'Get information about the currently authenticated user',
      inputSchema: {
        type: 'object',
        properties: {},
      },
    },
  • JiraClient.getCurrentUser() method that makes a GET request to /rest/api/2/myself to fetch the current user.
    async getCurrentUser(): Promise<any> {
      const response = await this.client.get('/myself');
      return response.data;
    }
  • src/index.ts:56-297 (registration)
    The tools array contains the full list of tool definitions including 'jira_get_current_user' (line 289-296). The server registers them via ListToolsRequestSchema handler at line 313.
    const tools: Tool[] = [
      {
        name: 'jira_get_issue',
        description: 'Get details of a specific Jira issue by its key (e.g., PROJ-123)',
        inputSchema: {
          type: 'object',
          properties: {
            issueKey: {
              type: 'string',
              description: 'The Jira issue key (e.g., PROJ-123)',
            },
          },
          required: ['issueKey'],
        },
      },
      {
        name: 'jira_search_issues',
        description: 'Search for Jira issues using JQL (Jira Query Language). Examples: "project = PROJ AND status = Open", "assignee = currentUser() AND status != Done"',
        inputSchema: {
          type: 'object',
          properties: {
            jql: {
              type: 'string',
              description: 'JQL query string to search for issues',
            },
            maxResults: {
              type: 'number',
              description: 'Maximum number of results to return (default: 50)',
              default: 50,
            },
          },
          required: ['jql'],
        },
      },
      {
        name: 'jira_create_issue',
        description: 'Create a new Jira issue in a specified project',
        inputSchema: {
          type: 'object',
          properties: {
            projectKey: {
              type: 'string',
              description: 'The project key where the issue will be created',
            },
            summary: {
              type: 'string',
              description: 'Brief summary/title of the issue',
            },
            description: {
              type: 'string',
              description: 'Detailed description of the issue',
            },
            issueType: {
              type: 'string',
              description: 'Type of issue (e.g., Bug, Task, Story, Epic)',
            },
            priority: {
              type: 'string',
              description: 'Priority level (e.g., High, Medium, Low)',
            },
            assignee: {
              type: 'string',
              description: 'Username of the person to assign the issue to',
            },
            labels: {
              type: 'array',
              items: {
                type: 'string',
              },
              description: 'Array of labels to add to the issue',
            },
            components: {
              type: 'array',
              items: {
                type: 'string',
              },
              description: 'Array of component names',
            },
            customFields: {
              type: 'object',
              description: 'Map of additional Jira field IDs/keys (e.g., customfield_10211) to include in the fields payload',
              additionalProperties: true,
            },
          },
          required: ['projectKey', 'summary', 'issueType'],
        },
      },
      {
        name: 'jira_update_issue',
        description: 'Update an existing Jira issue',
        inputSchema: {
          type: 'object',
          properties: {
            issueKey: {
              type: 'string',
              description: 'The Jira issue key to update',
            },
            summary: {
              type: 'string',
              description: 'New summary/title for the issue',
            },
            description: {
              type: 'string',
              description: 'New description for the issue',
            },
            assignee: {
              type: 'string',
              description: 'Username to assign the issue to',
            },
            priority: {
              type: 'string',
              description: 'New priority level',
            },
            labels: {
              type: 'array',
              items: {
                type: 'string',
              },
              description: 'New array of labels',
            },
            status: {
              type: 'string',
              description: 'New status/workflow state (e.g., "In Progress", "Done")',
            },
            customFields: {
              type: 'object',
              description: 'Map of additional Jira field IDs/keys (e.g., customfield_10211) to include in the fields payload',
              additionalProperties: true,
            },
          },
          required: ['issueKey'],
        },
      },
      {
        name: 'jira_add_comment',
        description: 'Add a comment to a Jira issue',
        inputSchema: {
          type: 'object',
          properties: {
            issueKey: {
              type: 'string',
              description: 'The Jira issue key',
            },
            comment: {
              type: 'string',
              description: 'The comment text to add',
            },
          },
          required: ['issueKey', 'comment'],
        },
      },
      {
        name: 'jira_get_comments',
        description: 'Get all comments from a Jira issue',
        inputSchema: {
          type: 'object',
          properties: {
            issueKey: {
              type: 'string',
              description: 'The Jira issue key',
            },
          },
          required: ['issueKey'],
        },
      },
      {
        name: 'jira_get_projects',
        description: 'List all available Jira projects',
        inputSchema: {
          type: 'object',
          properties: {},
        },
      },
      {
        name: 'jira_get_project',
        description: 'Get details of a specific Jira project',
        inputSchema: {
          type: 'object',
          properties: {
            projectKey: {
              type: 'string',
              description: 'The project key',
            },
          },
          required: ['projectKey'],
        },
      },
      {
        name: 'jira_get_issue_types',
        description: 'Get available issue types for a project',
        inputSchema: {
          type: 'object',
          properties: {
            projectKey: {
              type: 'string',
              description: 'The project key',
            },
          },
          required: ['projectKey'],
        },
      },
      {
        name: 'jira_assign_issue',
        description: 'Assign a Jira issue to a user',
        inputSchema: {
          type: 'object',
          properties: {
            issueKey: {
              type: 'string',
              description: 'The Jira issue key',
            },
            assignee: {
              type: 'string',
              description: 'Username to assign the issue to',
            },
          },
          required: ['issueKey', 'assignee'],
        },
      },
      {
        name: 'jira_delete_issue',
        description: 'Delete a Jira issue permanently',
        inputSchema: {
          type: 'object',
          properties: {
            issueKey: {
              type: 'string',
              description: 'The Jira issue key to delete',
            },
          },
          required: ['issueKey'],
        },
      },
      {
        name: 'jira_get_current_user',
        description: 'Get information about the currently authenticated user',
        inputSchema: {
          type: 'object',
          properties: {},
        },
      },
    ];

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.3

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The verb 'Get' implies a read-only operation, which conveys the core behavioral nature, but the description discloses nothing about what happens when authentication is missing or invalid, what fields 'information' includes, or any permissions considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single nine-word sentence with no filler. The action and target resource are front-loaded, and nothing is repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool this is minimally adequate, but with no output schema the description doesn't clarify what 'information' will be returned (e.g., account ID, display name, email) nor how auth failures surface. An agent invoking this must guess the return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty input schema (100% coverage), so there is nothing for the description to explain. This matches the baseline-4 case where parameter documentation is trivially satisfied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') tied to a specific resource ('information about the currently authenticated user'), making the tool's scope unambiguous. No sibling tool targets the current user, so an agent can distinguish this from jira_search_issues, jira_get_issue, and jira_get_projects without needing to open schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There are no preconditions, contextual triggers, or exclusions stated, even though the tool is clearly distinct from siblings, leaving the agent to infer when it is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.