[BUG] MCP Bug: Atlassian MCP Server Returns Empty Results

Resolved 💬 4 comments Opened Mar 17, 2026 by marcoaltiericoupa Closed Apr 15, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Claude Code MCP Bug Report: Atlassian MCP Server Returns Empty Results

Summary

Claude Code's MCP client integration returns empty results when calling the jira_search tool from the mcp-atlassian server, even though the same MCP server works correctly in Cursor and when tested manually via JSON-RPC.

Environment

  • Claude Code Version: 2.1.76
  • Platform: macOS Darwin 25.3.0
  • MCP Server: mcp-atlassian v0.21.0 (latest)
  • MCP Server Command: /opt/homebrew/bin/uvx mcp-atlassian
  • Server Status: ✓ Connected (verified with claude mcp list)

Configuration

{
  "user-atlassian": {
    "command": "/opt/homebrew/bin/uvx",
    "args": ["mcp-atlassian"],
    "env": {
      "JIRA_URL": "https://example.atlassian.net",
      "JIRA_USERNAME": "example@example.com",
      "JIRA_API_TOKEN": "[redacted]",
      "CONFLUENCE_URL": "https://example.atlassian.net/wiki",
      "CONFLUENCE_USERNAME": "example@example.com",
      "CONFLUENCE_API_TOKEN": "[redacted]",
      "TOOLSETS": "all"
    }
  }
}

Note: This exact configuration works correctly in Cursor IDE.

Issue Description

Actual Behavior (Claude Code)

When calling mcp__user-atlassian__jira_search through Claude Code:

Result: {"result":"{\n  \"total\": -1,\n  \"start_at\": 0,\n  \"max_results\": 50,\n  \"issues\": []\n}"}

Empty issues array for queries that should return results.

Impact

  • Users cannot reliably use MCP servers that work in other clients
  • Forces workarounds using direct API calls instead of MCP abstractions
  • Reduces value of MCP server ecosystem for Claude Code users

Workaround

Use direct Jira API calls via curl:

curl -s -u "user:token" \
  -H "Content-Type: application/json" \
  -X POST \
  "https://example.atlassian.net/rest/api/3/search/jql" \
  -d '{"jql": "key >= CD-571240 AND key < CD-571250", "maxResults": 50}'

Additional Context

  • The mcp-atlassian server uses FastMCP 2.14.5
  • Server reports capabilities correctly during initialization
  • No error messages in Claude Code output, just empty results
  • Issue occurs with all tested Jira search queries
  • Issue affects both jira_search and jira_get_issue tools

Suggested Investigation

  1. Enable debug logging for MCP client interactions in Claude Code
  2. Compare JSON-RPC message sequence between Claude Code and working implementations
  3. Check for timeout configurations in MCP client
  4. Verify response parsing handles the nested JSON structure correctly

---

Submitted by: Marco Altieri
Date: 2026-03-16
Claude Code Version: 2.1.77

What Should Happen?

Expected Behavior

The query should return matching Jira tickets, as it does when:

  1. Testing the MCP server manually via JSON-RPC
  2. Using the same configuration in Cursor IDE
  3. Calling the Jira API directly with curl

Error Messages/Logs

Steps to Reproduce

  1. Configure mcp-atlassian server in Claude Code with valid credentials
  2. Verify server is connected: claude mcp list shows "✓ Connected"
  3. Call the MCP tool in a Claude Code session:

``
mcp__user-atlassian__jira_search(
jql="key = CD-571247",
limit=10
)
``

  1. Observe empty results

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.77 (Claude Code)

Platform

AWS Bedrock

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Evidence That MCP Server Works Correctly

Test 1: Manual JSON-RPC Call

When manually testing the MCP server with proper JSON-RPC protocol:

(
  echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
  sleep 0.5
  echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"jira_search","arguments":{"jql":"key = CD-571247","limit":10}}}'
  sleep 2
) | JIRA_URL="https://example.atlassian.net" \
    JIRA_USERNAME="example@example.com" \
    JIRA_API_TOKEN="[redacted]" \
    TOOLSETS="all" \
    uvx mcp-atlassian

Result: Successfully returns the ticket with full details (summary, status, assignee, etc.)

Test 2: Range Query

Testing with a range query key >= CD-571240 AND key < CD-571250:

Manual JSON-RPC Result: Returns 10 tickets successfully:

CD-571240: String concatenation/construction...
<redacted>

Claude Code Result: Empty array

Test 3: Direct API Verification

Direct curl call to Jira API v3 with same credentials:

curl -s -u "example@example.com:[token]" \
  "https://example.atlassian.net/rest/api/2/issue/CD-571247?fields=summary,status"

Result: Returns ticket data successfully (verified ticket exists and is accessible)

Test 4: Other MCP Tools

Tested mcp__user-atlassian__jira_get_issue with specific ticket key:

Error: Issue CD-571247 not found. Verify the issue key and project access.

Even though the ticket clearly exists and is accessible via API.

Analysis

The issue appears to be in Claude Code's MCP client integration, not the MCP server itself:

  1. Server works: Manual JSON-RPC testing proves the server functions correctly
  2. Configuration valid: Same config works in Cursor IDE
  3. Authentication valid: Direct API calls work with same credentials
  4. Server connected: claude mcp list shows connected status
  5. Claude Code MCP client: Returns empty results for working queries

Possible Root Causes

  1. Session/initialization issues: Claude Code may not be properly maintaining the MCP server session
  2. Response parsing bugs: Not correctly extracting data from the MCP response format
  3. Timeout problems: Not waiting long enough for responses from the MCP server
  4. Protocol version mismatch: Potential incompatibility with MCP protocol version 2024-11-05

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗