MCP Atlassian Server
Allows searching, retrieving, creating, and updating pages in Atlassian Confluence.
Allows searching, retrieving, creating, and updating issues in Atlassian Jira.
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., "@MCP Atlassian Serverget details of Jira issue PROJ-123"
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.
MCP Atlassian Server
A simple, command-line Model Context Protocol (MCP) server for Atlassian Jira and Confluence. Connect any MCP-compatible AI assistant to your Atlassian instance with OAuth 2.0 authentication.
🚀 Quick Start
# 1. Clone and install
git clone https://github.com/your-username/mcp-nodejs-atlassian.git
cd mcp-nodejs-atlassian
npm install && npm run build
# 2. Set up authentication (interactive wizard)
npm run oauth-setup
# 3. Ready to use!
npx mcp-atlassian-nodejs --helpOptional: Install globally for cleaner commands:
npm install -g ./
mcp-atlassian --helpNow you can use the server in any MCP-compatible client without hardcoded paths!
Two ways to use:
With npx:
npx mcp-atlassian-nodejs(no global install needed)Globally:
mcp-atlassian(afternpm install -g ./)
Related MCP server: MCP Jira
🔧 Authentication
OAuth 2.0 (Recommended)
Run the interactive OAuth setup wizard:
npm run oauth-setupWhat it does:
Walks you through creating an Atlassian OAuth app
Opens your browser for secure authorization
Auto-detects your Cloud ID
Generates all configuration automatically
Requirements:
Atlassian Cloud account
Port 8080 available for callback
Manual Setup (Alternative)
For API tokens, server deployments, or advanced configuration:
cp env.example .env
# Edit .env with your credentialsAtlassian Cloud:
CONFLUENCE_URL=https://your-company.atlassian.net/wiki
CONFLUENCE_USERNAME=your.email@company.com
CONFLUENCE_API_TOKEN=your_api_token
JIRA_URL=https://your-company.atlassian.net
JIRA_USERNAME=your.email@company.com
JIRA_API_TOKEN=your_api_tokenServer/Data Center:
CONFLUENCE_URL=https://confluence.your-company.com
CONFLUENCE_PERSONAL_TOKEN=your_personal_token
JIRA_URL=https://jira.your-company.com
JIRA_PERSONAL_TOKEN=your_personal_token🤖 AI Assistant Integration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"atlassian": {
"command": "npx",
"args": ["mcp-atlassian-nodejs"]
}
}
}Alternative: Global install for cleaner setup:
npm install -g ./Then use:
{
"mcpServers": {
"atlassian": {
"command": "mcp-atlassian"
}
}
}Cursor
Settings → MCP → Add global MCP server
Command:
npxArgs:
["mcp-atlassian-nodejs"]
Alternative: After global install (npm install -g ./):
Command:
mcp-atlassianArgs:
[]
Any MCP Client
The server supports standard MCP transports:
# stdio (default - for most AI assistants)
npm start
# HTTP Server-Sent Events
npm start -- --transport sse --port 8000
# HTTP Streamable
npm start -- --transport streamable-http --port 8000🔧 Configuration
Command-Line Options
node dist/index.js --help # Show all options
node dist/index.js --oauth-setup # OAuth wizard
node dist/index.js --read-only # Safe mode
node dist/index.js --verbose # Debug logging
node dist/index.js --enabled-tools "search" # Limit tools
node dist/index.js --transport sse --port 8000 # HTTP modeEnvironment Variables
# Security
READ_ONLY_MODE=true # Disable write operations
MCP_VERBOSE=true # Enable debug logging
# Filtering
CONFLUENCE_SPACES_FILTER=DEV,TEAM,DOC # Limit Confluence spaces
JIRA_PROJECTS_FILTER=PROJ,DEV,SUPPORT # Limit Jira projects
# Tools
ENABLED_TOOLS=confluence_search,jira_get_issue # Specific tools only📚 Available Tools
Confluence
confluence_search - Search content across spaces
confluence_get_page - Get specific pages by ID/title
confluence_create_page - Create new pages
confluence_update_page - Update existing pages
Jira
jira_search_issues - Search issues with JQL
jira_get_issue - Get detailed issue info
jira_create_issue - Create new issues
jira_update_issue - Update existing issues
💬 Usage Examples
Ask your AI assistant:
"Search Confluence for API documentation"
"Get details of Jira issue PROJ-123"
"Create a bug report in the MOBILE project"
"Find all my open tickets from last sprint"
"Update PROJ-456 status to In Progress"
🖥️ Server Deployment
For production server deployment:
# Install on server
git clone https://github.com/your-username/mcp-nodejs-atlassian.git
cd mcp-nodejs-atlassian
npm ci --only=production
npm run build
# Set up environment
cp env.example .env
# Edit .env with production credentials
# Run with process manager (recommended)
npm install -g pm2
pm2 start dist/index.js --name "mcp-atlassian" -- --transport sse --port 8000 --host 0.0.0.0
# Or run directly
node dist/index.js --transport sse --port 8000 --host 0.0.0.0🏢 Enterprise Features
✅ OAuth 2.0 - Secure delegated access
✅ API Tokens - Simple authentication
✅ Personal Access Tokens - Server/Data Center support
✅ Read-only mode - Safe operations
✅ Access filtering - Limit spaces/projects
✅ Multiple transports - stdio, SSE, HTTP
✅ Process management - PM2/systemd compatible
🛠️ Development
npm run dev # Development mode with hot reload
npm run build # Build for production
npm test # Run tests
npm run lint # Code linting🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
📄 License
MIT License - see LICENSE file for details.
🔗 Links
Simple, powerful Atlassian integration for AI assistants
Available Tools
11 toolsconfluence_create_pageC
Create a new page in Confluence
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The title of the new page | |
| content | Yes | The content of the page in Confluence storage format | |
| parentId | No | Optional ID of the parent page | |
| spaceKey | Yes | The key of the space to create the page in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full responsibility for behavioral disclosure. It fails to mention important traits such as required permissions, side effects (e.g., auto-saving, notifications), any constraints on content (e.g., required Confluence storage format), or whether the operation is idempotent. This is a significant gap for a creation 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, direct sentence ('Create a new page in Confluence') with no fluff. Every word earned its place, and it is immediately understandable without parsing.
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 no output schema and no annotations, the description should provide more context about return behavior, error handling, or critical input details (e.g., that content must be in Confluence storage format). It is too sparse to reliably guide an agent through a successful invocation.
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 baseline is 3. The description adds no additional meaning beyond what the schema already provides for parameters. It does not explain how parameters interact (e.g., parentId usage) or emphasize required fields, but the schema itself is sufficient for basic understanding.
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 'Create a new page in Confluence' clearly states the action and resource. It distinguishes from sibling tools like confluence_update_page (update) and confluence_get_page (get) through the verb 'create'. However, it provides no additional context about scope or special behaviors, but remains unambiguous.
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 offers no guidance on when to use this tool versus alternatives such as confluence_update_page or Jira tools. There is no mention of prerequisites, typical scenarios, or exclusions, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_pageC
Get a specific Confluence page by ID
| Name | Required | Description | Default |
|---|---|---|---|
| expand | No | Comma-separated list of properties to expand (e.g., "body.storage,version") | |
| pageId | Yes | The ID of the page to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only indicates a read operation ('Get') but does not disclose error behavior (e.g., if pageId is invalid), rate limits, authentication needs, or whether the response includes full content or just metadata. The existence of the expand parameter is not hinted at in the description.
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, focused sentence. It earns its place by stating the core purpose, but it could include more detail without becoming verbose.
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 simple read tool with full schema coverage, the description is adequate but has gaps: it lacks explanation of return values (since no output schema is provided) and does not differentiate from sibling tools or mention the expand parameter's role in controlling the response.
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 baseline is 3. The input schema already documents both parameters (pageId required, expand optional with an example). The description adds no extra meaning or usage context for the parameters beyond the schema.
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 'Get a specific Confluence page by ID', specifying the verb (get) and resource (Confluence page) with the method (by ID). It implicitly distinguishes from sibling tools like confluence_search and confluence_create_page, but does not explicitly elaborate on what is returned (e.g., full content) or scope.
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 offers no guidance on when to use this tool versus alternatives like confluence_search (for finding pages) or confluence_get_spaces (for a different resource). It does not mention prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_get_spacesB
Get a list of spaces in Confluence
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of spaces to return (default: 25) | |
| start | No | Starting index for pagination (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. However, it only states the action without describing pagination, sorting, permissions, or response format. This is a minimal disclosure that provides no safety or behavior information.
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, focused sentence that conveys the tool's primary function without redundancy. It is appropriately sized for a simple list operation.
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 lack of annotations and output schema, the description is too sparse. It omits important contextual details such as pagination behavior (implied by limit/start), the shape of the returned data, and when to prefer this over confluence_search. This makes it incomplete for an agent to use 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?
The schema covers both parameters (limit and start) with descriptions and defaults, meeting 100% coverage. The description adds no additional parameter context beyond what the schema already provides, so the baseline of 3 applies.
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 gets a list of spaces in Confluence, using a specific verb and resource. It distinguishes itself from siblings like confluence_search and confluence_get_page, which serve different purposes.
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 alternatives. It does not mention that this is for listing all spaces, nor does it contrast with search or page retrieval. There is no explicit or implied usage context beyond the basic verb phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_searchC
Search for content in Confluence using CQL (Confluence Query Language)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default: 10) | |
| query | Yes | CQL query to search for content | |
| spaceKey | No | Optional space key to limit search to a specific space |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, but it only states what the tool does. It does not disclose behavioral traits such as rate limits, pagination behavior, authentication requirements, or whether results are filtered by user permissions. The agent gets no behavioral context beyond the verb 'search'.
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 short and front-loaded with the key purpose. However, it could benefit from a brief expansion to add usage or behavioral guidance without losing conciseness.
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 has no output schema and no annotations, the description is incomplete. The agent lacks information about return format, error handling, CQL syntax considerations (especially for complex queries), and pagination. For a search tool with a powerful but unfamiliar query language, more context is essential.
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 coverage is 100%, so baseline is 3. The description adds no parameter-specific meaning beyond the schema; 'CQL' is mentioned but not explained, and 'spaceKey' meaning is clear from the schema. The description does not compensate beyond what is already documented.
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 identifies the tool as a search function for Confluence using CQL, which is more specific than a generic 'search'. It distinguishes from sibling tools like confluence_get_page (retrieving by ID) and Jira tools.
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 alternatives like jira_search_issues or when CQL is appropriate. The usage context is implied but lacks explicit when-to-use or when-not-to-use statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_update_pageB
Update an existing Confluence page
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The new title of the page | |
| pageId | Yes | The ID of the page to update | |
| content | Yes | The new content of the page in Confluence storage format | |
| version | Yes | The current version number of the page |
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 only states 'Update', implying mutation, but reveals nothing about side effects (e.g., version creation, permissions required, atomicity, or response behavior). This is insufficient for an AI agent to understand the tool's operational characteristics.
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 front-loaded sentence with no filler. It is efficient but arguably too sparse given the missing behavioral and contextual details. Conciseness is good, but it trades off completeness, preventing a perfect score.
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 lack of output schema and annotations, the description should compensate with richer context. It does not explain what happens on success (e.g., returns updated page), how versioning works, or specifics about the content format (beyond schema). The tool has 4 required params and is a mutation, so the description is not complete enough for safe agent invocation.
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 each parameter already has a clear description. The tool description adds no new meaning beyond the schema. Per guidelines, baseline is 3 when coverage is high, and the description does not compensate or elaborate on parameter nuances such as the format of 'content' or the role of 'version' in optimistic locking.
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 'Update an existing Confluence page' clearly states the verb (update) and resource (existing Confluence page), but does not explicitly distinguish it from sibling tools like confluence_create_page or confluence_get_page. It implicitly differentiates by specifying 'existing', yet an explicit reference to alternatives would be stronger.
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 clear context on when to use: when an existing Confluence page needs modification. However, it offers no guidance on when not to use (e.g., for creation or retrieval) and does not mention prerequisites such as having the current version number. The context is clear but lacks full usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_add_commentC
Add a comment to a Jira issue
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The content of the comment | |
| issueKey | Yes | The key of the issue to comment on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It does not mention side effects (e.g., whether the comment is visible immediately, permissions required, or if it appends to existing comments). The description is too brief to convey behavioral traits.
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, clear sentence that efficiently conveys the core purpose. It is front-loaded and free of unnecessary words, though it is too brief for completeness.
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 low complexity (2 simple parameters, no nested objects, no output schema), the description is incomplete. It lacks behavioral context (e.g., return value, confirmation) and usage guidance. A minimal viable description for this tool would include a note about permissions or format.
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 baseline is 3. The description does not add new meaning beyond the schema's property descriptions. It does not clarify acceptable formats for 'body' (e.g., plain text vs. Jira wiki markup) or constraints on 'issueKey'.
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 a specific verb ('Add') and resource ('comment to a Jira issue'), which clearly distinguishes it from tools like jira_search_issues or jira_create_issue. However, it could be more precise by mentioning it adds a comment to an existing issue, but the context signals and tool name make it clear.
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 alternatives, such as when updating an issue via jira_update_issue might be more appropriate. There is no mention of prerequisites (e.g., issue must exist) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_create_issueB
Create a new issue in Jira
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | The summary/title of the issue | |
| priority | No | The priority of the issue (e.g., High, Medium, Low) | |
| issueType | Yes | The type of issue to create (e.g., Bug, Task, Story) | |
| projectKey | Yes | The key of the project to create the issue in | |
| description | No | The description of the issue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Create a new issue' and does not disclose behavioral traits such as whether the operation is idempotent, what authentication scopes are needed, what happens to existing data, or what the response format is (e.g., returns issue key). For a mutation tool, this is a significant gap.
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 sentence with no wasted words. It is front-loaded and immediately clear. However, it is slightly under-specified for the complexity of the tool; a few more sentences would improve completeness without sacrificing conciseness.
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 5 parameters, 3 required, no output schema, and no annotations, the description is insufficient. It does not explain return values, error handling, or any constraints (e.g., valid issue types). A creation tool typically needs more context for correct invocation, and the current description falls short.
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 input schema already documents all 5 parameters with descriptions. The description adds no additional meaning beyond what the schema provides. Baseline is 3, and the description does not compensate with extra context like parameter constraints 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 'Create a new issue in Jira' uses a specific verb ('Create') and resource ('issue in Jira') clearly distinguishing it from sibling tools like 'jira_search_issues', 'jira_get_issue', and 'jira_update_issue'. It is unambiguous and directly states the action.
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 alternatives such as 'jira_update_issue' or 'jira_add_comment'. It does not mention prerequisites (e.g., needing a project key from 'jira_get_projects') or any context for when creation is appropriate. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_issueB
Get a specific Jira issue by key
| Name | Required | Description | Default |
|---|---|---|---|
| expand | No | List of properties to expand (e.g., changelog, comments) | |
| fields | No | List of fields to include in the response | |
| issueKey | Yes | The key of the issue to retrieve (e.g., PROJ-123) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries full responsibility for behavioral disclosure. It states the operation is read-only in name ('Get'), but fails to explicitly confirm non-destructive behavior, authentication requirements, or what happens if the issue does not exist. The lack of any safety or side-effect information limits transparency.
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, front-loaded sentence with no filler. It earns a high score for efficiency, though a small addition (e.g., 'This is a read-only operation') would not detract from conciseness.
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 simple retrieval tool with no output schema and no annotations, the description should at least hint at the typical response structure (e.g., issue fields, metadata) or note any limitations (e.g., pagination). The current description covers only the input identifier, leaving the agent without guidance on what to expect from the result.
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% for all three parameters, so each parameter already has adequate inline documentation. The tool description adds no additional parameter-level meaning beyond what is in the schema, earning a baseline score of 3.
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 verb 'Get', the resource 'specific Jira issue', and the identifier method 'by key'. This distinguishes it from sibling tools like jira_search_issues (searching) and jira_create_issue (creating), leaving no ambiguity about its purpose.
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 alternatives such as jira_search_issues or jira_get_projects. An agent would not know that this tool is appropriate only when the issue key is known, nor does it explain what to do if the key is invalid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_projectsB
Get a list of projects in Jira
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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, but it only states the tool's basic function. It fails to mention whether authentication is required, what projects are included (all user-accessible or all in instance), or any limitations. This is a serious gap for a read operation.
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 concise sentence that is front-loaded with the key action and resource. However, it is under-specified and could include additional context (e.g., output format) without becoming verbose. It earns its place but could do more.
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?
The description does not explain the return value or output format, and there is no output schema to compensate. Given the simplicity of the tool (no parameters), the description should at least mention what kind of data is returned (e.g., project keys, names) or note if pagination applies. This makes it incomplete.
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 tool has zero parameters, so schema coverage is 100% by default. The description adds no parameter information, but none is needed. According to the baseline guideline for 0 parameters, a score of 4 is appropriate.
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 'Get a list of projects in Jira' clearly states the action (get) and resource (list of projects). It is specific and distinguishes itself from sibling tools such as jira_search_issues and confluence_get_spaces, as no other tool provides a project listing.
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 other Jira or Confluence tools. It does not mention alternatives, prerequisites, or context like 'use this to retrieve all accessible projects; for filtered search use jira_search_issues'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_search_issuesC
Search for issues in Jira using JQL (Jira Query Language)
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | JQL query to search for issues | |
| fields | No | List of fields to include in the response | |
| maxResults | No | Maximum number of results to return (default: 50) |
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 only states that the tool searches using JQL, without explaining any behavioral traits such as rate limits, authentication requirements, pagination behavior, or error handling. The schema already documents maxResults, so the description adds no new behavioral context.
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 sentence of 10 words, which is concise and front-loaded. It states the core purpose without unnecessary words. However, it could be slightly more informative (e.g., mentioning that results are paginated) while still remaining concise, so a score of 4 is given.
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 has no output schema and no annotations, the description is incomplete. It does not describe the return format, default fields, or how to handle pagination. While the schema covers all parameters, the tool's complexity (JQL queries) warrants more context about capabilities and limitations. The description is minimally adequate but has clear gaps.
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 each parameter has a clear description (e.g., 'JQL query to search for issues', 'List of fields to include in the response', 'Maximum number of results to return'). The tool description adds no additional meaning beyond the schema, such as JQL syntax examples or field name conventions. The baseline score of 3 is appropriate.
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: 'Search for issues in Jira using JQL'. The verb 'search' and resource 'issues' are specific, and the mention of JQL distinguishes it from sibling tools like jira_get_issue (single issue retrieval) or jira_create_issue. However, it does not explicitly contrast with sibling tools, which prevents a score of 5.
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 alternatives. It does not mention that JQL is a powerful query language for complex searches, nor does it indicate that simpler lookups could use jira_get_issue. There is no context about prerequisites, common use cases, or when to avoid this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_update_issueC
Update an existing Jira issue
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | Object containing the fields to update | |
| issueKey | Yes | The key of the issue to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states 'update', implying mutation but offers no details on side effects, idempotency, required permissions, rate limits, or error behavior. This leaves the agent with insufficient understanding of what actually happens when the tool is invoked.
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 extremely concise at 5 words. It is front-loaded and free of fluff. However, it may be too sparse given the complexity of the operation; a sentence about return behavior or common use would improve it. Still, it earns a 4 for structure.
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?
The description covers the basic action but lacks completeness. There is no output schema, yet the description does not indicate what the tool returns (e.g., updated issue details, success confirmation). It also omits constraints like partial vs full replacement or validation. For a 2-parameter tool with no annotations, more context is needed.
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% (both parameters have descriptions). The description itself does not add any parameter information beyond the schema. According to guidelines, baseline is 3 when coverage is high. The schema's description of 'fields' is vague ('Object containing the fields to update'), but that is a schema issue, not a description issue.
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 action as 'Update an existing Jira issue'. It uses a verb+resource structure and is distinct from siblings like jira_create_issue (creation) and jira_get_issue (retrieval). However, it does not explicitly differentiate itself from similar update tools (none exist in siblings), so it gets a 4 rather than 5.
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 alternatives. It does not mention that this is for modifying existing issues only, nor does it direct the agent to jira_create_issue for new issues or jira_get_issue for reading. The description is purely functional with no usage context.
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.
11 tool updates
v1.0.0- First observed
confluence_create_page - First observed
confluence_get_page - First observed
confluence_get_spaces - First observed
confluence_search - First observed
confluence_update_page - First observed
jira_add_comment - First observed
jira_create_issue - First observed
jira_get_issue - First observed
jira_get_projects - First observed
jira_search_issues - First observed
jira_update_issue
TDQS
All tools have clearly distinct purposes, separated by product prefix (confluence_ vs jira_) and action verbs (search, get, create, update, add, get list). No ambiguity between tools.
Naming follows a uniform snake_case pattern: <product>_<verb>_<noun>. All Confluence tools start with 'confluence_' and Jira tools with 'jira_', with consistent verb choice across the set.
11 tools is well-scoped for covering both Confluence and Jira core operations. Neither too few nor too many, each tool serves a distinct and needed function.
The set covers search, create, read, and update for pages and issues, plus listing spaces and projects. However, it lacks delete operations for both Confluence and Jira, and misses common features like Jira transitions or Confluence attachments, leaving notable gaps.
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
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
OAuth 2.1 short-link tools for AI agents with scoped tokens, approvals, audit logs, and revocation.
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Connect AI agents to 1000+ apps with managed authentication and tool-calling.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Atlassian products (Confluence and Jira) through natural language, supporting both Cloud and Server/Data Center deployments. Allows searching, creating, and managing content across Jira issues and Confluence pages with flexible authentication options.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Jira Cloud and Server/Data Center deployments for issue management, project tracking, and workflow automation. Supports multiple authentication methods including API tokens, OAuth 2.0, and personal access tokens.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Atlassian Confluence and Jira for searching, updating, and managing content and issues.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search, create, update, and transition Jira issues and Confluence pages, add comments, and manage Atlassian content across 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/itay1709/mcp-nodejs-atlassian'
If you have feedback or need assistance with the MCP directory API, please join our Discord server