atlassian-proxy
Proxies Atlassian's hosted MCP server to provide access to Atlassian services, exposing a filtered set of Jira and Confluence tools while hiding unnecessary configuration and response noise.
Provides Confluence tools through the same proxy, allowing interaction with Confluence content while stripping noisy fields from responses.
Provides Jira tools such as retrieving Jira issues, automatically injecting required parameters like cloud ID and simplifying returned data.
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., "@atlassian-proxyFind my assigned open Jira issues and list them by priority."
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.
atlassian-proxy
Local stdio MCP proxy that sits in front of Atlassian's hosted Rovo MCP
server (https://mcp.atlassian.com/v1/mcp) and trims it down for Claude
Code.
Claude Code (stdio) -> index.js -> mcp-remote (subprocess, OAuth) -> https://mcp.atlassian.com/v1/mcpWhat it does:
Exposes only the tools listed in
ALLOWED_TOOLSinindex.js(the onesjira-ops/jira-revieweractually use) — everything else upstream is hidden fromtools/list.Auto-injects
cloudId,contentFormat,responseContentFormatinto every call and strips those params from the schema Claude sees, so Claude never has to know about them.Recursively strips noisy keys (
avatarUrls,self,iconUrl,_links,expand,browseUrl, ...) from every tool result before returning it.
Requirements
Node.js (any version supporting native ESM /
type: "module").npxavailable on PATH (used to spawnmcp-remote).
Related MCP server: JIRA MCP Server
Install
First check whether Node.js is already installed — if it is, and
node_modules is already present in this folder, npm install is not
needed:
node -vIf that fails (Node not found), install Node.js first, then:
cd C:\Users\Dz\oktanetest\atlassian-proxy
npm installThis installs @modelcontextprotocol/sdk and mcp-remote from
package.json.
Run standalone (manual smoke test)
node index.jsIt speaks MCP over stdio, so running it directly just blocks waiting for a
client on stdin. On the first call to any Jira/Confluence tool it spawns
npx -y mcp-remote https://mcp.atlassian.com/v1/mcp as a child process,
which opens a browser window for Atlassian OAuth login. Once authorized,
mcp-remote caches the token, so subsequent runs don't need to
re-authenticate. [atlassian-proxy] ready on stderr means it connected to
upstream and is serving the filtered tool list.
Register with Claude Code
Register this proxy under the name atlassian-proxy, not atlassian — that
keeps it from colliding with the real hosted Atlassian/Rovo MCP server if
that one is also registered under atlassian.
Add it as a stdio MCP server for the project, e.g. in that project's Claude
Code config (mcpServers block):
{
"atlassian-proxy": {
"type": "stdio",
"command": "node",
"args": ["<path-to-atlassian-proxy>\\index.js"],
"env": {}
}
}If the real atlassian MCP server is also registered, disable it (don't
remove it) so only this proxy's filtered tools are active: run /mcp in
Claude Code, select the atlassian server, and choose the disable option.
Re-enable it there later if you ever need the full, unfiltered upstream
tool set back.
Restart/reconnect Claude Code (or the MCP connection) after registering so
it picks up the new server. Tools from this proxy will appear under the
atlassian-proxy prefix (e.g. mcp__atlassian-proxy__getJiraIssue),
already limited to ALLOWED_TOOLS and stripped of cloudId/
contentFormat/responseContentFormat.
Token savings stats
Since Claude Code runs this proxy hidden and its stderr isn't visible in chat, savings are written to files instead:
logs/token-savings.log— JSONL, one line pertools/list/tools/callevent (tokensSavedIn,tokensSavedOut, running totals).logs/stats-summary.txt— overwritten after every event with the current running totals.
Two numbers are tracked (both are estimates — char-count / 4, not a real tokenizer, since no Claude tokenizer is wired in):
Kept out of Claude's context (
tokensSavedIn): tool-list trimming (ALLOWED_TOOLS) plus noise stripped from tool results (stripNoise).Claude didn't have to generate (
tokensSavedOut): the constant params (cloudId,contentFormat,responseContentFormat) the proxy injects on Claude's behalf.
To watch it live, open a separate terminal and tail the summary file:
Get-Content logs\stats-summary.txt -WaitTroubleshooting
Hangs with no
readymessage:npx -y mcp-remote ...is likely waiting on the OAuth browser flow — check for a browser window/prompt.Tool not available in Claude: confirm the tool name is in
ALLOWED_TOOLSinindex.js; anything not listed is filtered out oftools/listand rejected ontools/call.
Stale/expired auth (401 Unauthorized, or could not resolve cloudId from getAccessibleAtlassianResources)
Claude Code's /mcp reconnect only restarts the node index.js stdio
process — it does not force re-auth. The actual OAuth token lives one
layer down, cached on disk by the mcp-remote child process at
~/.mcp-auth/mcp-remote-<version>/<server-hash>_tokens.json, keyed by the
upstream server URL. If that token is stale (expired, revoked, or was
already stale before the node process even restarted), every tool call
fails with 401/could not resolve cloudId regardless of how many times
you reconnect in Claude Code, because reconnecting never touches that
cache.
Full recipe, in order:
Clear the cache:
rm -rf ~/.mcp-auth(Windows:C:\Users\<you>\.mcp-auth). This wipes the cached client registration, PKCE verifier, and token for everymcp-remote-backed server on the machine — safe, it's pure OAuth-client state, nothing else depends on it.Re-authenticate standalone, outside Claude Code, in its own terminal:
cd C:\Users\Dz\oktanetest\atlassian-proxy npx -y mcp-remote https://mcp.atlassian.com/v1/mcp --host 127.0.0.1Let this run in the foreground (or a background shell you can watch) and complete the browser login at your own pace. Do not try to re-authenticate by reconnecting
atlassian-proxyinside Claude Code first — Claude Code's own connection-setup timeout races the interactive OAuth flow, sinceindex.js'smain()doesn't open its own stdio side until the entire upstreammcp-remoteconnect (including you clicking through the browser) resolves. If Claude Code gives up first, it killsindex.jsand itsmcp-remotechild mid-handshake — the browser may still show "Authorization successful!", but the token exchange gets cut off beforetokens.jsonis written (you're left with onlyclient_info.json/code_verifier.txtin~/.mcp-auth, no token — check for that if this happens). Runningmcp-remotestandalone first removes that race entirely; once it printsProxy established successfully(exit code 0), the token is safely cached.Only then reconnect
atlassian-proxyin Claude Code (/mcp). It spawns the samemcp-remote, finds the now-valid cached token, and connects immediately with no browser step.
--host 127.0.0.1 in index.js's spawn args (not upstream mcp-remote
default) is required on Windows: mcp-remote's local OAuth callback server
binds 127.0.0.1 only, but its default redirect_uri hostname is
localhost. On a Windows machine where localhost resolves to ::1
first (check with Resolve-DnsName localhost), the browser's post-login
redirect hits an address nothing is listening on — the callback page shows
"Unable to connect" and the auth code is stranded. Do not remove this flag.
EADDRINUSE on the callback port (e.g. listen EADDRINUSE: 127.0.0.1:3736) after a previous auth attempt was interrupted: npx on
Windows doesn't always kill the full child process tree when its parent is
cancelled, so a previous mcp-remote can be left orphaned, still holding
the port. Find and kill it before retrying:
Get-NetTCPConnection -LocalPort <port> | Select-Object OwningProcess
Stop-Process -Id <pid> -ForceThis server cannot be installed
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 Servers
- FlicenseNot gradedqualityDmaintenanceEnables Claude to interact with Jira through JQL (Jira Query Language) queries using the Model Control Protocol, allowing natural language access to Jira issue tracking and project management.
- AlicenseNot gradedqualityDmaintenanceEnables Claude AI to interact with JIRA for project management and issue tracking, supporting JQL queries, comprehensive issue details retrieval with subtasks and linked issues, and release planning analysis.MIT
- AlicenseNot gradedqualityAmaintenanceEnables users to fetch and search Jira tickets, comments, and attachments directly within Claude Code. It features JQL support and automatically exports linked Figma designs to provide comprehensive project context.1242MIT
- AlicenseAqualityBmaintenanceEnables Claude AI and other MCP clients to interact with Jira Server/Data Center through tools like listing issues, logging work, and updating issues, requiring user confirmation for write operations.8891MIT
Related MCP Connectors
Live SEO workflow tools for Claude Code, Codex, and AI agents.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
One shared context your team's AI tools read & write over MCP. No re-explaining. Free.
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/DzmHub/atlassian-proxy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server