atlassian-proxy
atlassian-proxy
Lokaler stdio-MCP-Proxy, der vor Atlassians gehostetem Rovo-MCP-Server (https://mcp.atlassian.com/v1/mcp) sitzt und ihn für Claude Code zurechtstutzt.
Claude Code (stdio) -> index.js -> mcp-remote (subprocess, OAuth) -> https://mcp.atlassian.com/v1/mcpWas er tut:
Stellt nur die in
ALLOWED_TOOLSinindex.jsaufgeführten Tools bereit (diejenigen, diejira-ops/jira-reviewertatsächlich verwenden) – alles andere upstream wird vortools/listverborgen.Injiziert automatisch
cloudId,contentFormat,responseContentFormatin jeden Aufruf und entfernt diese Parameter aus dem Schema, das Claude sieht, sodass Claude nie davon erfahren muss.Entfernt rekursiv verrauschte Schlüssel (
avatarUrls,self,iconUrl,_links,expand,browseUrl, ...) aus jedem Tool-Ergebnis, bevor es zurückgegeben wird.
Voraussetzungen
Node.js (beliebige Version, die natives ESM /
type: "module"unterstützt).npxmuss im PATH verfügbar sein (wird verwendet, ummcp-remotezu starten).
Related MCP server: JIRA MCP Server
Installation
Prüfen Sie zuerst, ob Node.js bereits installiert ist – wenn ja und node_modules bereits in diesem Ordner vorhanden ist, ist npm install nicht erforderlich:
node -vFalls das fehlschlägt (Node nicht gefunden), installieren Sie zuerst Node.js, dann:
cd C:\Users\Dz\oktanetest\atlassian-proxy
npm installDies installiert @modelcontextprotocol/sdk und mcp-remote aus package.json.
Eigenständig ausführen (manueller Smoke-Test)
node index.jsEs spricht MCP über stdio, daher blockiert die direkte Ausführung einfach und wartet auf einen Client auf stdin. Beim ersten Aufruf eines Jira-/Confluence-Tools startet es npx -y mcp-remote https://mcp.atlassian.com/v1/mcp als Kindprozess, der ein Browserfenster für die Atlassian-OAuth-Anmeldung öffnet. Nach der Autorisierung speichert mcp-remote das Token zwischen, sodass spätere Ausführungen keine erneute Authentifizierung benötigen. [atlassian-proxy] ready auf stderr bedeutet, dass die Verbindung zum Upstream hergestellt wurde und die gefilterte Tool-Liste bereitgestellt wird.
Bei Claude Code registrieren
Registrieren Sie diesen Proxy unter dem Namen atlassian-proxy, nicht atlassian – das verhindert eine Kollision mit dem echten gehosteten Atlassian-/Rovo-MCP-Server, falls dieser ebenfalls unter atlassian registriert ist.
Fügen Sie ihn als stdio-MCP-Server für das Projekt hinzu, z. B. in der Claude-Code-Konfiguration des Projekts (mcpServers-Block):
{
"atlassian-proxy": {
"type": "stdio",
"command": "node",
"args": ["<path-to-atlassian-proxy>\\index.js"],
"env": {}
}
}Wenn der echte atlassian-MCP-Server ebenfalls registriert ist, deaktivieren Sie ihn (nicht entfernen), sodass nur die gefilterten Tools dieses Proxys aktiv sind: Führen Sie /mcp in Claude Code aus, wählen Sie den atlassian-Server und wählen Sie die Deaktivierungsoption. Aktivieren Sie ihn später dort wieder, falls Sie den vollständigen, ungefilterten Upstream-Toolsatz zurückbenötigen.
Starten Sie Claude Code (oder die MCP-Verbindung) nach der Registrierung neu bzw. verbinden Sie sich erneut, damit der neue Server übernommen wird. Tools dieses Proxys erscheinen unter dem Präfix atlassian-proxy (z. B. mcp__atlassian-proxy__getJiraIssue), bereits auf ALLOWED_TOOLS begrenzt und ohne cloudId/contentFormat/responseContentFormat.
Token-Ersparnis-Statistiken
Da Claude Code diesen Proxy verborgen ausführt und sein stderr im Chat nicht sichtbar ist, werden die Ersparnisse stattdessen in Dateien geschrieben:
logs/token-savings.log– JSONL, eine Zeile protools/list/tools/call-Ereignis (tokensSavedIn,tokensSavedOut, laufende Summen).logs/stats-summary.txt– wird nach jedem Ereignis mit den aktuellen laufenden Summen überschrieben.
Es werden zwei Zahlen erfasst (beide sind Schätzungen – Zeichenanzahl / 4, kein echter Tokenizer, da kein Claude-Tokenizer eingebunden ist):
Aus Claudes Kontext ferngehalten (
tokensSavedIn): Tool-Listen-Kürzung (ALLOWED_TOOLS) plus aus Tool-Ergebnissen entferntes Rauschen (stripNoise).Claude musste nicht generieren (
tokensSavedOut): die konstanten Parameter (cloudId,contentFormat,responseContentFormat), die der Proxy in Claudes Namen injiziert.
Um es live zu beobachten, öffnen Sie ein separates Terminal und verfolgen Sie die Zusammenfassungsdatei:
Get-Content logs\stats-summary.txt -WaitFehlerbehebung
Hängt ohne
ready-Meldung:npx -y mcp-remote ...wartet wahrscheinlich auf den OAuth-Browserablauf – prüfen Sie auf ein Browserfenster/einen Browser-Prompt.Tool in Claude nicht verfügbar: Bestätigen Sie, dass der Toolname in
ALLOWED_TOOLSinindex.jssteht; alles, was nicht aufgeführt ist, wird austools/listherausgefiltert und beitools/callabgelehnt.
Veraltete/abgelaufene Authentifizierung (401 Unauthorized oder could not resolve cloudId from getAccessibleAtlassianResources)
Die /mcp-Wiederverbindung von Claude Code startet nur den node index.js-stdio-Prozess neu – sie erzwingt keine erneute Authentifizierung. Das eigentliche OAuth-Token liegt eine Ebene tiefer und wird vom mcp-remote-Kindprozess auf der Festplatte unter ~/.mcp-auth/mcp-remote-<version>/<server-hash>_tokens.json zwischengespeichert, abhängig von der Upstream-Server-URL. Wenn dieses Token veraltet ist (abgelaufen, widerrufen oder bereits vor dem Neustart des node-Prozesses veraltet), schlägt jeder Tool-Aufruf mit 401/could not resolve cloudId fehl, egal wie oft Sie sich in Claude Code neu verbinden, da die Wiederverbindung diesen Cache nie berührt.
Vollständige Anleitung, in Reihenfolge:
Cache leeren:
rm -rf ~/.mcp-auth(Windows:C:\Users\<you>\.mcp-auth). Dies löscht die zwischengespeicherte Client-Registrierung, den PKCE-Verifier und das Token für jedenmcp-remote-basierten Server auf dem Rechner – sicher, es ist reiner OAuth-Client-Zustand, nichts anderes hängt davon ab.Eigenständig außerhalb von Claude Code neu authentifizieren, in einem eigenen Terminal:
cd C:\Users\Dz\oktanetest\atlassian-proxy npx -y mcp-remote https://mcp.atlassian.com/v1/mcp --host 127.0.0.1Lassen Sie dies im Vordergrund (oder in einer beobachtbaren Hintergrund-Shell) laufen und schließen Sie die Browser-Anmeldung in Ihrem eigenen Tempo ab. Versuchen Sie nicht, sich zuerst durch erneutes Verbinden von
atlassian-proxyin Claude Code zu authentifizieren – das eigene Verbindungs-Timeout von Claude Code konkurriert mit dem interaktiven OAuth-Ablauf, damain()vonindex.jsseine eigene stdio-Seite erst öffnet, wenn die gesamte Upstream-mcp-remote-Verbindung (einschließlich Ihres Klickens durch den Browser) aufgelöst ist. Wenn Claude Code zuerst aufgibt, tötet esindex.jsund seinmcp-remote-Kind mitten im Handshake – der Browser zeigt möglicherweise weiterhin „Authorization successful!“, aber der Token-Austausch wird abgebrochen, bevortokens.jsongeschrieben wird (Sie bleiben nur mitclient_info.json/code_verifier.txtin~/.mcp-authzurück, ohne Token – prüfen Sie das, falls dies passiert). Wenn Siemcp-remotezuerst eigenständig ausführen, wird dieser Wettlauf vollständig beseitigt; sobald esProxy established successfullyausgibt (Exit-Code 0), ist das Token sicher zwischengespeichert.Erst dann verbinden Sie
atlassian-proxyin Claude Code erneut (/mcp). Es startet dasselbemcp-remote, findet das nun gültige zwischengespeicherte Token und verbindet sich sofort ohne Browser-Schritt.
--host 127.0.0.1 in den Spawn-Argumenten von index.js (nicht der Upstream-mcp-remote-Standard) ist unter Windows erforderlich: Der lokale OAuth-Callback-Server von mcp-remote bindet nur 127.0.0.1, aber sein Standard-Redirect_uri-Hostname ist localhost. Auf einem Windows-Rechner, auf dem localhost zuerst zu ::1 aufgelöst wird (prüfen Sie mit Resolve-DnsName localhost), trifft die Post-Login-Weiterleitung des Browsers auf eine Adresse, auf der nichts lauscht – die Callback-Seite zeigt „Unable to connect“ und der Auth-Code bleibt hängen. Entfernen Sie dieses Flag nicht.
EADDRINUSE auf dem Callback-Port (z. B. listen EADDRINUSE: 127.0.0.1:3736), nachdem ein vorheriger Authentifizierungsversuch unterbrochen wurde: npx unter Windows tötet nicht immer den gesamten Kindprozessbaum, wenn sein Elternteil abgebrochen wird, sodass ein vorheriges mcp-remote verwaist zurückbleiben und den Port weiterhin belegen kann. Finden und beenden Sie es, bevor Sie es erneut versuchen:
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