Hello,
I am trying to make use of Atlassian MCP (Confluence) via the Anthropic /messages API.
'"mcp_servers":[{'
'"type":"url",'
'"url":"https://mcp.atlassian.com/v1/mcp",'
'"name":"atlassian",'
'"authorization_token":"' + atlassian_token + '"'
'}]The request body support MCP Servers specific as above.
I have enabled "API Access" to MCP in my Atlassian admin settings.
I have generated an Atlassian API Key on a service account and confirmed that API calls work via Postman... however submitting that API Key prefixed with Bearer, OR encoding it as email:api-key and submitting that prefixed with Basic... both result in this response when processed via the Anthropic API:
Atlassian Rovo MCP server -> Authentication tab -> Allow API token authentication --- is enabled.
In the Domains tab, I already have "allow atlassian-supported domains" enabled which should cover Anthropic... but I've added anthropic.com and api.anthropic.com to that list. Same error with the Basic token provided :(
[
{
"type": "mcp_tool_use",
"id": "mcptoolu_014aHNbrBbjHWfnKhZ7czJCd",
"name": "getTeamworkGraphContext",
"input": {
"cloudId": "vivuninc.atlassian.net",
"objectType": "ConfluenceSpace",
"objectIdentifier": "IT",
"detailLevel": "full",
"first": 50
},
"server_name": "atlassian"
},
{
"type": "mcp_tool_result",
"tool_use_id": "mcptoolu_014aHNbrBbjHWfnKhZ7czJCd",
"is_error": true,
"content": [
{
"type": "text",
"text": "{\"error\":true,\"message\":\"TWG request failed: 401 Unauthorized. build: failed to parse token not a compact JWS\"}"
}
]
}
]
Maybe Rovo MCP just doesn't support Anthropic API. Atlassian's docs only mention Claude... not the API. :(
Hi there, thanks for the detailed write-up.
The error you're seeing "TWG request failed: 401 Unauthorized. build: failed to parse token not a compact JWS" - means it's not recognizing it as a Basic or Bearer API token/key. This typically happens when the Authorization header isn't reaching the MCP server in the expected format.
Before we dig deeper, a few clarifying questions:
Did you create a personal API token from - rovomcp token
Or did you create a service account API key via your Atlassian admin console?
Did you create a scoped or unscoped token? (Scoped tokens let you select specific product scopes during creation.)
If you created a scoped token or API key, which scopes did you select? For Confluence-only access, you'd typically need scopes like read:page:confluence, search:confluence, etc. The available MCP tools depend directly on the scopes granted to the token.
Required scopes are documented here
The Atlassian MCP server expects the Authorization header in one of these two formats:
Personal API token (Basic): Authorization: Basic <base64(email:api_token)>
Service account API key (Bearer): Authorization: Bearer <api_key>
When you say you're using the Anthropic /messages API with the mcp_servers configuration, the authorization_token field in that config — could you share exactly what value you're passing? Specifically:
Are you passing just the raw token value, or the full header value (e.g., Bearer ATATT3x... or Basic dXNlcm5hbWU6...)?
The Anthropic API may be wrapping your value with its own Bearer prefix automatically. If so, passing Basic <base64> as the authorization_token could result in something like Bearer Basic <base64> being sent to Atlassian — which would cause exactly this kind of parse failure.
Could you share the Anthropic API docs or spec for how authorization_token is handled in the mcp_servers block? Specifically, does the Anthropic API let you set a custom Authorization header, or does it always send the token as Bearer <authorization_token>?
This is important because if the Anthropic API only supports sending Bearer tokens and doesn't allow Basic auth headers, there may be a compatibility constraint between the two platforms for the personal API token (Basic auth) flow. The service account API key (Bearer) flow would be the better fit in that case.
Would you be able to gather these details and create a support ticket at Atlassian Support? That way our support team can investigate with full context — including your org ID, the exact token type, and the full request/response flow. It'll help us pinpoint whether this is a token format issue, an Anthropic-side header handling issue, or something else on our end.
Feel free to reference this thread in the ticket so support has the background.