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).
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?”).
langchain_mcp_adapters, mcp, httpx, anyiohttp (Streamable HTTP / SSE)I call: POST https://auth.atlassian.com/oauth/token with grant_type=refresh_token and get an access_token.
This succeeds with 200: GET https://api.atlassian.com/oauth/token/accessible-resources
It returns my Confluence site and cloud id, e.g.
https://<my-site>.atlassian.netSo the token is valid for Confluence scopes.
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"}
My initial Python config used:
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 FoundThen the client fails with: mcp.shared.exceptions.McpError: Session terminated
I tested a few likely endpoints:
GET https://mcp.atlassian.com/v1 → 404GET https://mcp.atlassian.com/v1/message → 404GET https://mcp.atlassian.com/v1/rpc → 404GET https://mcp.atlassian.com/v1/streamable-http → 404GET https://mcp.atlassian.com/v1/sse → 401 invalid_token (missing/invalid access token)GET https://mcp.atlassian.com/v1/mcp → 401 invalid_token (missing/invalid access token)So /v1/mcp and /v1/sse exist, but reject my Bearer token; /v1/ returns 404, which breaks the MCP client initialize POST.
What is the correct base URL to use with an MCP “streamable HTTP” client for Atlassian’s remote MCP server?
https://mcp.atlassian.com/v1/mcp instead of /v1/?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)?
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!