atlassian-proxy
atlassian-proxy
Proxy local stdio MCP que se sitúa delante del servidor MCP Rovo alojado de Atlassian (https://mcp.atlassian.com/v1/mcp) y lo simplifica para Claude Code.
Claude Code (stdio) -> index.js -> mcp-remote (subprocess, OAuth) -> https://mcp.atlassian.com/v1/mcpLo que hace:
Expone únicamente las herramientas incluidas en
ALLOWED_TOOLSenindex.js(las quejira-ops/jira-reviewerusan realmente); todo lo demás de upstream queda oculto entools/list.Inyecta automáticamente
cloudId,contentFormat,responseContentFormaten cada llamada y elimina esos parámetros del esquema que ve Claude, para que Claude nunca tenga que conocerlos.Elimina recursivamente las claves ruidosas (
avatarUrls,self,iconUrl,_links,expand,browseUrl, ...) de cada resultado de herramienta antes de devolverlo.
Requisitos
Node.js (cualquier versión compatible con ESM nativo /
type: "module").npxdisponible en PATH (se usa para lanzarmcp-remote).
Related MCP server: JIRA MCP Server
Instalación
Comprueba primero si Node.js ya está instalado; si lo está y node_modules ya existe en esta carpeta, npm install no es necesario:
node -vSi eso falla (no se encuentra Node), instala Node.js primero y después:
cd C:\Users\Dz\oktanetest\atlassian-proxy
npm installEsto instala @modelcontextprotocol/sdk y mcp-remote desde package.json.
Ejecución independiente (prueba de humo manual)
node index.jsHabla MCP sobre stdio, así que ejecutarlo directamente solo queda bloqueado esperando a un cliente en stdin. En la primera llamada a cualquier herramienta de Jira/Confluence lanza npx -y mcp-remote https://mcp.atlassian.com/v1/mcp como proceso hijo, que abre una ventana del navegador para iniciar sesión con Atlassian OAuth. Una vez autorizado, mcp-remote guarda el token en caché, así que en ejecuciones posteriores no hace falta volver a autenticarse. [atlassian-proxy] ready en stderr significa que se ha conectado con upstream y está sirviendo la lista de herramientas filtrada.
Registro en Claude Code
Registra este proxy con el nombre atlassian-proxy, no con atlassian; así no entrará en conflicto con el servidor MCP real alojado de Atlassian/Rovo si ese otro también está registrado como atlassian.
Añádelo como servidor MCP stdio del proyecto, por ejemplo en la configuración de Claude Code de ese proyecto (bloque mcpServers):
{
"atlassian-proxy": {
"type": "stdio",
"command": "node",
"args": ["<path-to-atlassian-proxy>\\index.js"],
"env": {}
}
}Si el servidor MCP real atlassian también está registrado, desactívalo (no lo elimines) para que solo estén activas las herramientas filtradas de este proxy: ejecuta /mcp en Claude Code, selecciona el servidor atlassian y elige la opción de desactivar. Vuelve a activarlo ahí cuando necesites recuperar el conjunto completo de herramientas de upstream sin filtrar.
Reinicia o vuelve a conectar Claude Code (o la conexión MCP) después de registrarlo para que detecte el nuevo servidor. Las herramientas de este proxy aparecerán con el prefijo atlassian-proxy (p. ej. mcp__atlassian-proxy__getJiraIssue), ya limitadas a ALLOWED_TOOLS y sin cloudId/contentFormat/responseContentFormat.
Estadísticas de ahorro de tokens
Como Claude Code ejecuta este proxy oculto y su stderr no es visible en el chat, los ahorros se escriben en archivos:
logs/token-savings.log— JSONL, una línea por evento detools/list/tools/call(tokensSavedIn,tokensSavedOut, totales acumulados).logs/stats-summary.txt— se sobrescribe tras cada evento con los totales acumulados actuales.
Se controlan dos cifras (ambas son estimaciones — número de caracteres / 4, no un tokenizador real, porque no hay ningún tokenizador de Claude conectado):
Lo que no ha llegado al contexto de Claude (
tokensSavedIn): el recorte de la lista de herramientas (ALLOWED_TOOLS) más el ruido eliminado de los resultados de herramientas (stripNoise).Lo que Claude no ha tenido que generar (
tokensSavedOut): los parámetros constantes (cloudId,contentFormat,responseContentFormat) que el proxy inyecta en nombre de Claude.
Para verlo en directo, abre una terminal aparte y haz tail al archivo de resumen:
Get-Content logs\stats-summary.txt -WaitSolución de problemas
Se cuelga sin mensaje
ready:npx -y mcp-remote ...está probablemente esperando el flujo de navegador de OAuth; comprueba si hay una ventana o aviso del navegador.La herramienta no está disponible en Claude: confirma que el nombre de la herramienta está en
ALLOWED_TOOLSenindex.js; cualquier cosa no listada se filtra detools/listy se rechaza entools/call.
Autenticación obsoleta o caducada (401 Unauthorized, o could not resolve cloudId from getAccessibleAtlassianResources)
La reconexión con /mcp de Claude Code solo reinicia el proceso stdio node index.js; no fuerza la reautenticación. El token OAuth real está un nivel más abajo, guardado en disco por el proceso hijo mcp-remote en ~/.mcp-auth/mcp-remote-<version>_tokens.json, clasificado por la URL del servidor upstream. Si ese token está caducado (expirado, revocado o ya estaba caducado antes de que el propio proceso node reiniciara), cualquier llamada falla con 401/couldDeteccio cloudId sin importar cuántas veces reconectes en Claude Code, porque reconectar nunca toca esa caché.
Receta completa, en orden:
Vacía la caché:
rm -rf ~/.mcp-auth(en Windows:C:\Users\<you>\.mcp-auth). Esto borra el registro de cliente, el verificador PKCE y el token de todos los servidores respaldados pormcp-remoteen la máquina; es seguro, porque es solo estado de cliente OAuth y nada más depende de él.Vuelve a autenticarte de forma independiente, sin Claude Code, en su propia terminal:
cd C:\Users\Dz\oktanetest\atlassian-proxy npx -y mcp-remote https://mcp.atlassian.com/v1/mcp --host 127.0.0.1Déjalo corriendo en primer plano (o en un shell de fondo que puedas vigilar) y completa el inicio de sesión el navegador a tu ritmo. No intentes reautenticarte reconectando
atlassian-proxydentro de Claude Code primero: el límite de tiempo para establecer la conexión de Claude Code compite con el flujo OAuth interactivo, ya quemain()deindex.jsno abre su propio lado de stdio hasta que se ha resuelto toda la conexiónmcp-remotecon upstream (incluido que hagas clic en el navegador). Si Claude Code se rinde antes, mataindex.jsy a su hijomcp-remoteen plena negociación: el navegador puede mostrar "Authorization successful", pero el intercambio de tokens el corte antes de que se escribatokens.json(te queda soloclient_info.json/code_verifier.txten~/.mcp-auth, sin token; compruébalo si ocurre). Ejecutarmcp-remotesolo antes elimina esa comprotación por completo; una vez que imprimaProxy established successfully(código de salida 0), el token queda correctamente en caché.Solo después reconecta
atlassian-proxyen Claude Code (/mcp). Lanza el mismomcp-remote, encuentra el token en caché ahora válido y se conecta inmediatamente, sin paso por el navegador.
--host 127.0.0.1 in dalam argumentos de spawn de index.js (y el valor predeterminado de mcp-remote upstream no) es obligatorio en Windows: el servidor local de callback de OAuth de mcp-remote solo se vincula a 127.0.0.1, pero su hostname redirect_uri predeterminado es localhost. En una máquina Windows donde localhost resuelva primero como ::1 (compruébalo con Resolve-DnsName localhost), el redireccionamiento del navegador tras el login apunta a una dirección en la que no hay nada escuchado; la página de callback muestra "Unable to connect" y el código de autenticación se queda atrapado. No elimines esta opción.
EADDRINUSE en el puerto del callback (p. ej. listen EADDRINUSE:127.0.0.1:3736) después de dejar a medias un intento de autenticación anterior: npx en Windows no siempre los procesos hijos de su árbol cuando se cancela el proceso padre, así que un mcp-remote anterior puede quedar huérfano y seguir ocupando el puerto. Encontrar sino y Matalo antes de reintentar:
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