Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Trouble authenticating to Atlassian Rovo Remote MCP Server (mcp.atlassian.com) from Python (LangChai

mahesh_komirishetti
December 21, 2025

Hi everyone,

I’m trying to connect to the Atlassian Rovo Remote MCP Server from a Python app using LangChain MCP adapters (langchain_mcp_adapters) and the MCP Streamable HTTP transport. I can successfully obtain an Atlassian OAuth 3LO access token (via refresh token) and use it with Atlassian REST APIs, but I’m unable to establish an MCP session (tool discovery fails).

Goal

Use MultiServerMCPClient to fetch tools from Atlassian MCP and then bind them to an LLM (Azure OpenAI) to query Confluence/Jira content (example prompt: “ETL Guide?”).

Environment

  • Windows 10/11, Python 3.10
  • langchain_mcp_adapters, mcp, httpx, anyio
  • Transport: http (Streamable HTTP / SSE)

What works

1) OAuth token refresh works

I call: POST https://auth.atlassian.com/oauth/token with grant_type=refresh_token and get an access_token.

2) Token works with Atlassian platform API

This succeeds with 200: GET https://api.atlassian.com/oauth/token/accessible-resources

It returns my Confluence site and cloud id, e.g.

  • site: https://<my-site>.atlassian.net
  • cloudId: 

So the token is valid for Confluence scopes.

What fails

A) Direct call to MCP SSE endpoint returns invalid_token

Using real curl (curl.exe), this returns 401: GET https://mcp.atlassian.com/v1/sse Header: Authorization: Bearer <access_token>

Response: {"error":"invalid_token","error_description":"Invalid access token"}

B) Using LangChain MCP adapters fails during initialize()

My initial Python config used:

Python
client = MultiServerMCPClient({
  "atlassian/atlassian-mcp-server": {
    "transport": "http",
    "url": "https://mcp.atlassian.com/v1/",
    "headers": {"Authorization": f"Bearer {access_token}"}
  }
})
tools = await client.get_tools()

With httpx debug enabled I can see it sends: POST https://mcp.atlassian.com/v1/ with JSON-RPC initialize

But the server responds:

  • HTTP/1.1 404 Not Found

Then the client fails with: mcp.shared.exceptions.McpError: Session terminated

C) Endpoint probing results

I tested a few likely endpoints:

So /v1/mcp and /v1/sse exist, but reject my Bearer token; /v1/ returns 404, which breaks the MCP client initialize POST.

Questions

  1. What is the correct base URL to use with an MCP “streamable HTTP” client for Atlassian’s remote MCP server?

  2. Does Atlassian Rovo Remote MCP require a different token/audience than a standard Atlassian 3LO access token (even if that token works for Confluence via api.atlassian.com)?

    • Is there a token exchange step or a Rovo-specific OAuth client/scopes required?
  3. I tried to use both API based token and Atlassian 3LO access token approaches.

If anyone has a working Python example (LangChain MCP adapters or plain mcp client) connecting to Atlassian’s remote MCP server, I’d really appreciate guidance.

Thanks!

0 answers

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
STANDARD
TAGS
AUG Leaders

Atlassian Community Events