Jira Insights MCP
The Jira Insights MCP server enables you to interact with Jira Service Management asset data through these capabilities:
Manage object schemas: Create, read, update, and delete schemas with options to include object types, attributes, or statistics with pagination support.
Manage object types: Perform CRUD operations on object types within specific schemas, with customizable response details.
Manage objects: Execute CRUD operations on individual objects with extensive response customization options.
Query using AQL: Construct complex queries with the Atlassian Query Language, supporting filtering, pagination, and schema validation.
Access resources: Retrieve instance summaries, AQL syntax documentation, schema listings, and detailed object type information.
Customize responses: Tailor data with options for simplified structures, attribute depth control, and extended Jira issue information.
Enables interaction with Atlassian's Jira Insights service for asset management, supporting schema operations, object type management, and object manipulation through the Atlassian API.
Provides tools for managing Jira Insights (JSM) asset schemas, including CRUD operations for object schemas, object types, and objects, as well as querying objects using Atlassian Query Language (AQL).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Jira Insights MCPlist all schemas in my Jira instance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Jira Insights MCP
A Model Context Protocol (MCP) server for managing Jira Insights (JSM) asset schemas.
Last updated: 2025-04-09
Overview
This MCP server provides tools for interacting with Jira Insights (JSM) asset schemas through the Model Context Protocol. It allows you to manage object schemas, object types, and objects in Jira Insights.
Related MCP server: MCP Atlassian
Features
Manage object schemas (create, read, update, delete)
Manage object types (create, read, update, delete)
Manage objects (create, read, update, delete)
Query objects using AQL (Atlassian Query Language)
Prerequisites
Node.js 20 or later
Docker (for containerized deployment)
Jira Insights instance with API access
Jira API token with appropriate permissions
Installation
Local Development
Clone the repository:
git clone https://github.com/aaronsb/jira-insights-mcp.git cd jira-insights-mcpInstall dependencies:
npm installBuild the project:
npm run build
Docker
Build the Docker image:
./scripts/build-local.shUsage
MCP Configuration
To use this MCP server with Claude or other AI assistants that support the Model Context Protocol, add it to your MCP configuration using one of the following methods:
Local Build Configuration
If you've built the project locally, use this configuration:
{
"mcpServers": {
"jira-insights": {
"command": "node",
"args": ["/path/to/jira-insights-mcp/build/index.js"],
"env": {
"JIRA_API_TOKEN": "your-api-token",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_HOST": "https://your-domain.atlassian.net",
"LOG_MODE": "strict"
}
}
}
}Docker-based Configuration
If you prefer to use the Docker image (recommended for most users), use this configuration:
{
"mcpServers": {
"jira-insights": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "JIRA_API_TOKEN",
"-e", "JIRA_EMAIL",
"-e", "JIRA_HOST",
"ghcr.io/aaronsb/jira-insights-mcp:latest"
],
"env": {
"JIRA_API_TOKEN": "your-api-token",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_HOST": "https://your-domain.atlassian.net"
}
}
}
}This Docker-based configuration pulls the latest image from GitHub Container Registry and runs it with the necessary environment variables.
Running Locally for Development
For local development and testing:
# Build the Docker image
./scripts/build-local.sh
# Run the Docker container
JIRA_API_TOKEN=your_token JIRA_EMAIL=your_email JIRA_HOST=your_host ./scripts/run-local.shAvailable Tools
manage_jira_insight_schema
Manage Jira Insights object schemas with CRUD operations.
{
"operation": "list",
"maxResults": 10
}manage_jira_insight_object_type
Manage Jira Insights object types with CRUD operations.
{
"operation": "list",
"schemaId": "1",
"maxResults": 20
}manage_jira_insight_object
Manage Jira Insights objects with CRUD operations and AQL queries.
{
"operation": "query",
"aql": "objectType = \"Application\"",
"maxResults": 10
}Available Resources
The MCP server provides several resources for accessing Jira Insights data:
jira-insights://instance/summary- High-level statistics about the Jira Insights instancejira-insights://aql-syntax- Comprehensive guide to Assets Query Language (AQL) syntax with examplesjira-insights://schemas/all- Complete list of all schemas with their object typesjira-insights://schemas/{schemaId}/full- Complete definition of a specific schema including object typesjira-insights://schemas/{schemaId}/overview- Overview of a specific schema including metadata and statisticsjira-insights://object-types/{objectTypeId}/overview- Overview of a specific object type including attributes and statistics
Planned Improvements
We are working on several improvements to enhance the functionality and usability of the Jira Insights MCP:
High Priority Improvements
Enhanced Error Handling
More detailed error messages with specific validation issues
Suggested fixes for common errors
Operation-specific examples to help users correct issues
AQL Query Improvements
Validation and formatting utilities for AQL queries
Schema-specific example queries
Better error messages for query issues
Attribute Discovery Enhancement
Improved attribute retrieval for object types
Caching for better performance
Better handling of the "expand" parameter
Medium Priority Improvements
Object Template Generation
Templates for creating objects based on object types
Type-specific placeholder generation
Validation rules in templates
Example Query Library
Schema-specific example queries
Context-aware query suggestions
Query templates for common operations
Improved Documentation
Enhanced AQL syntax documentation
Operation-specific documentation
Common error scenarios and solutions
For more details on the planned improvements, see:
TODO.md- Comprehensive todo list with all tasks organized by priorityIMPLEMENTATION_PLAN.md- Detailed implementation plans for the high-priority improvementsHANDLER_IMPROVEMENTS.md- Specific changes needed for each handler fileIMPROVEMENT_SUMMARY.md- Concise summary of the planned improvementsdocs/API_MIGRATION_TODO.md- Status of the API migration and planned improvements
Development
Scripts
npm run build: Build the TypeScript codenpm run lint: Run ESLintnpm run lint:fix: Run ESLint with auto-fixnpm run test: Run testsnpm run watch: Watch for changes and rebuildnpm run generate-diagrams: Generate TypeScript dependency diagrams
Docker Scripts
./scripts/build-local.sh: Build the Docker image./scripts/run-local.sh: Run the Docker container
Troubleshooting
Common Issues
AQL Query Validation Errors
Ensure values with spaces are enclosed in quotes:
Name = "John Doe"Use uppercase for logical operators:
AND,OR(notand,or)Check that object types and attributes exist in your schema
Object Type Attribute Issues
When using the "expand" parameter with "attributes", ensure the object type exists
Check that you have permissions to view the attributes
API Connection Issues
Verify your Jira API token has the necessary permissions
Check that the Jira host URL is correct
Ensure your network allows connections to the Jira API
License
MIT
Available Tools
3 toolsmanage_jira_insight_objectC
Manage Jira Insights objects with CRUD operations and AQL queries
| Name | Required | Description | Default |
|---|---|---|---|
| aql | No | AQL query string. Required for query operation. IMPORTANT: For comprehensive AQL documentation, refer to the "jira-insights://aql-syntax" resource using the access_mcp_resource tool. This resource contains detailed syntax guides, examples, and best practices. Guide to Constructing Better Jira Insight AQL Queries: Understanding AQL Fundamentals: - Object Type Case Sensitivity: Use exact case matching for object type names (e.g., ObjectType = "Supported laptops" not objectType = "Supported laptops"). - String Values in Quotes: Always enclose string values in double quotes, especially values containing spaces (e.g., Name = "MacBook Pro" not Name = MacBook Pro). - Attribute References: Reference attributes directly by their name, not by a derived field name (e.g., use Name not name). - LIKE Operator Usage: Use the LIKE operator for partial string matching, but be aware it may be case-sensitive. Effective Query Construction: - Start Simple: Begin with the most basic query to validate object existence before adding complex filters: ObjectType = "Supported laptops" - Examine Response Objects: Study the first responses to understand available attribute names and formats before using them in filters. - Keyword Strategy: When searching for specific items, try multiple potential keywords (e.g., "ThinkPad", "Lenovo", "Carbon") rather than just exclusion logic. - Incremental Complexity: Add filter conditions incrementally, testing after each addition rather than constructing complex queries in one step. Managing Complex Queries: - AND/OR Operators: Structure complex conditions carefully with proper parentheses: ObjectType = "Supported laptops" AND (Name LIKE "ThinkPad" OR Name LIKE "Lenovo") - NOT Operators: Use NOT sparingly and with proper syntax: ObjectType = "Supported laptops" AND NOT Name LIKE "MacBook" - Reference Object Queries: For filtering on related objects, use their object key as a reference: ObjectType = "Supported laptops" AND Manufacturer = "PPL-231" - Pagination Awareness: For large result sets, utilize the startAt and maxResults parameters to get complete data. | |
| attributes | No | Attributes of the object as key-value pairs. Optional for create/update. | |
| expand | No | Optional fields to include in the response | |
| includeAttributes | No | Should the objects attributes be included in the response. If this parameter is false only the information on the object will be returned and the object attributes will not be present. | |
| includeAttributesDeep | No | How many levels of attributes should be included. E.g. consider an object A that has a reference to object B that has a reference to object C. If object A is included in the response and includeAttributesDeep=1 object A's reference to object B will be included in the attributes of object A but object B's reference to object C will not be included. However if the includeAttributesDeep=2 then object B's reference to object C will be included in object B's attributes. | |
| includeExtendedInfo | No | Include information about open Jira issues. Should each object have information if open tickets are connected to the object? | |
| includeTypeAttributes | No | Should the response include the object type attribute definition for each attribute that is returned with the objects. | |
| maxResults | No | Maximum number of objects to return. Used for list and query operations. Can also use snake_case "max_results". | |
| name | No | Name of the object. Required for create operation, optional for update. | |
| objectId | No | The ID of the object. Required for get, update, and delete operations. Can also use snake_case "object_id". | |
| objectTypeId | No | The ID of the object type. Required for create operation. Can also use snake_case "object_type_id". | |
| operation | Yes | Operation to perform on the object | |
| resolveAttributeNames | No | Replace attribute IDs (attr_xxx) with actual attribute names in the response. This provides more meaningful attribute names for better readability. | |
| schemaId | No | The ID of the schema to use for enhanced validation. When provided, the query will be validated against the schema structure, providing better error messages and suggestions. | |
| simplifiedResponse | No | Return a simplified response with only essential key-value pairs, excluding detailed metadata, references, and type definitions. Useful for reducing response size and improving readability. | |
| startAt | No | Index of the first object to return (0-based). Used for list and query operations. Can also use snake_case "start_at". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'CRUD operations and AQL queries' but lacks details on permissions, side effects, rate limits, or response formats. For a tool with 16 parameters and complex operations like delete/update, this is insufficient—it doesn't explain what 'manage' entails beyond high-level operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly concise to the point of under-specification—it's a single sentence that fails to convey necessary details for such a complex tool. It lacks front-loaded critical information and doesn't structure guidance effectively, making it inefficient despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (16 parameters, no annotations, no output schema), the description is incomplete. It doesn't address behavioral aspects, usage context, or output expectations, leaving significant gaps. For a multi-operation tool managing objects, more comprehensive guidance is needed to support effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal parameter semantics beyond the input schema, which has 100% coverage. It implies parameters relate to CRUD and AQL operations but doesn't elaborate on specific usage or interactions. Since schema coverage is high, the baseline is 3, but the description doesn't compensate with additional insights like parameter dependencies or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Manage Jira Insights objects with CRUD operations and AQL queries.' It specifies the resource (Jira Insights objects) and the operations (CRUD + AQL queries). However, it doesn't explicitly differentiate from sibling tools like 'manage_jira_insight_object_type' or 'manage_jira_insight_schema,' which likely manage different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 its siblings or alternatives. It mentions CRUD operations and AQL queries but doesn't specify scenarios, prerequisites, or exclusions. For example, it doesn't clarify if this is for basic object management while siblings handle types/schemas, leaving usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_jira_insight_object_typeC
Manage Jira Insights object types with CRUD operations
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | Description of the object type. Optional for create/update. | |
| expand | No | Optional fields to include in the response | |
| icon | No | Icon for the object type. Optional for create/update. | |
| maxResults | No | Maximum number of object types to return. Used for list operation. Can also use snake_case "max_results". | |
| name | No | Name of the object type. Required for create operation, optional for update. | |
| objectTypeId | No | The ID of the object type. Required for get, update, and delete operations. Can also use snake_case "object_type_id". | |
| operation | Yes | Operation to perform on the object type | |
| schemaId | No | The ID of the schema. Required for create operation. Can also use snake_case "schema_id". | |
| startAt | No | Index of the first object type to return (0-based). Used for list operation. Can also use snake_case "start_at". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states 'CRUD operations' without detailing permissions, side effects, rate limits, or response behavior. It lacks critical information for a mutation-capable tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain return values, error handling, or behavioral nuances needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional parameter semantics beyond the generic 'CRUD operations', which aligns with the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool performs CRUD operations on Jira Insights object types, which is a clear purpose. However, it doesn't differentiate from sibling tools like 'manage_jira_insight_object' or 'manage_jira_insight_schema', leaving ambiguity about scope boundaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its siblings or alternatives. The description mentions CRUD operations but doesn't specify contexts, prerequisites, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_jira_insight_schemaC
Manage Jira Insights object schemas with CRUD operations
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | Description of the schema. Optional for create/update. | |
| expand | No | Optional fields to include in the response | |
| maxResults | No | Maximum number of schemas to return. Used for list operation. Can also use snake_case "max_results". | |
| name | No | Name of the schema. Required for create operation, optional for update. | |
| operation | Yes | Operation to perform on the schema | |
| schemaId | No | The ID of the schema. Required for get, update, and delete operations. Can also use snake_case "schema_id". | |
| startAt | No | Index of the first schema to return (0-based). Used for list operation. Can also use snake_case "start_at". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but only states 'manage with CRUD operations.' It doesn't describe authentication requirements, rate limits, error conditions, what 'delete' actually destroys, or response formats. For a multi-operation tool with mutation capabilities, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded with the core purpose, though it could benefit from more detail given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 7 parameters supporting 5 different operations (including destructive ones like delete) and no output schema or annotations, the description is inadequate. It doesn't explain return values, error handling, or operational constraints, leaving the agent with insufficient context to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds no parameter-specific information beyond the generic 'CRUD operations' mention, which doesn't provide additional semantic context about individual parameters or their relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool manages Jira Insights object schemas with CRUD operations, which provides a general purpose but lacks specificity about what 'manage' entails. It doesn't distinguish this schema management tool from its sibling object and object type management tools, leaving the scope vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus its siblings (manage_jira_insight_object and manage_jira_insight_object_type). The description mentions CRUD operations but doesn't specify contexts, prerequisites, or exclusions for choosing this schema management tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- First observed
manage_jira_insight_object - First observed
manage_jira_insight_object_type - First observed
manage_jira_insight_schema
TDQS
Each tool has a clearly distinct purpose targeting different Jira Insights components: objects, object types, and schemas. The descriptions specify unique domains (objects, object types, schemas) with no overlap in functionality, making it easy for an agent to select the correct tool.
All tool names follow a consistent verb_noun pattern with 'manage_jira_insight_' prefix followed by the specific component (object, object_type, schema). This predictable naming convention enhances readability and usability across the tool set.
With only 3 tools, the count feels thin for a server named 'Jira Insights MCP', which might imply broader functionality. However, it covers core management areas adequately, though it could benefit from additional tools for querying or reporting to be more comprehensive.
The tools provide CRUD operations for key Jira Insights components (objects, types, schemas), covering essential management tasks. A minor gap exists in lacking dedicated query or analysis tools beyond AQL mentioned in one description, but core workflows are well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server for Product Management
An MCP server that provides access to Testiny projects, test cases and test runs
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceModel Context Protocol (MCP) server for Atlassian Cloud products (Confluence and Jira). This integration is designed specifically for Atlassian Cloud instances and does not support Atlassian Server or Data Center deployments.5,853MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to interact with Atlassian products (Confluence and Jira) for content management, issue tracking, and project management through a standardized interface.3,8316MIT
- -licenseNot gradedqualityCmaintenanceA local MCP server for administering Atlassian Cloud Assets and Jira, providing hundreds of tools for schemas, projects, workflows, and more.-
- AlicenseNot gradedqualityBmaintenanceModel Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Supports both Cloud and Server/Data Center deployments.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/aaronsb/jira-insights-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server