atlassian-proxy
atlassian-proxy
Локальный stdio MCP-прокси, который располагается перед размещённым Rovo MCP-сервером Atlassian (https://mcp.atlassian.com/v1/mcp) и урезает его для Claude Code.
Claude Code (stdio) -> index.js -> mcp-remote (subprocess, OAuth) -> https://mcp.atlassian.com/v1/mcpЧто он делает:
Открывает только те инструменты, которые перечислены в
ALLOWED_TOOLSвindex.js(те, что реально используютjira-ops/jira-reviewer) — всё остальное вышестоящее скрыто изtools/list.Автоматически подставляет
cloudId,contentFormat,responseContentFormatв каждый вызов и убирает эти параметры из схемы, которую видит Claude, так что Claude никогда не должен о них знать.Рекурсивно удаляет шумные ключи (
avatarUrls,self,iconUrl,_links,expand,browseUrl, ...) из каждого результата инструмента перед возвратом.
Требования
Node.js (любая версия, поддерживающая нативный ESM /
type: "module").npxдоступен в PATH (используется для запускаmcp-remote).
Related MCP server: JIRA MCP Server
Установка
Сначала проверьте, установлен ли Node.js — если да, и node_modules уже присутствует в этой папке, npm install не нужен:
node -vЕсли это не сработало (Node не найден), сначала установите Node.js, затем:
cd C:\Users\Dz\oktanetest\atlassian-proxy
npm installЭто установит @modelcontextprotocol/sdk и mcp-remote из package.json.
Запуск в автономном режиме (ручной смоук-тест)
node index.jsОн говорит по MCP через stdio, поэтому прямой запуск просто блокирует ожидание клиента на stdin. При первом вызове любого инструмента Jira/Confluence он запускает npx -y mcp-remote https://mcp.atlassian.com/v1/mcp как дочерний процесс, который открывает окно браузера для OAuth-входа Atlassian. После авторизации mcp-remote кэширует токен, так что последующие запуски не требуют повторной аутентификации. [atlassian-proxy] ready в stderr означает, что он подключился к вышестоящему серверу и обслуживает отфильтрованный список инструментов.
Регистрация в Claude Code
Зарегистрируйте этот прокси под именем atlassian-proxy, а не atlassian — это предотвращает конфликт с реальным размещённым Atlassian/Rovo MCP-сервером, если тот также зарегистрирован под именем atlassian.
Добавьте его как stdio MCP-сервер для проекта, например, в конфиге Claude Code этого проекта (блок mcpServers):
{
"atlassian-proxy": {
"type": "stdio",
"command": "node",
"args": ["<path-to-atlassian-proxy>\\index.js"],
"env": {}
}
}Если реальный MCP-сервер atlassian также зарегистрирован, отключите его (не удаляйте), чтобы активными были только отфильтрованные инструменты этого прокси: запустите /mcp в Claude Code, выберите сервер atlassian и выберите опцию отключения. Позже вы сможете снова включить его там, если вам понадобится полный, нефильтрованный набор инструментов вышестоящего сервера.
Перезапустите/переподключите Claude Code (или MCP-соединение) после регистрации, чтобы он подхватил новый сервер. Инструменты этого прокси появятся с префиксом atlassian-proxy (например, mcp__atlassian-proxy__getJiraIssue), уже ограниченные ALLOWED_TOOLS и лишённые cloudId/contentFormat/responseContentFormat.
Статистика экономии токенов
Поскольку Claude Code запускает этот прокси скрыто и его stderr не виден в чате, экономия записывается в файлы:
logs/token-savings.log— JSONL, одна строка на событиеtools/list/tools/call(tokensSavedIn,tokensSavedOut, нарастающие итоги).logs/stats-summary.txt— перезаписывается после каждого события с текущими нарастающими итогами.
Отслеживаются два числа (оба являются оценками — количество символов / 4, а не настоящий токенизатор, так как токенизатор Claude не подключён):
Исключено из контекста Claude (
tokensSavedIn): урезание списка инструментов (ALLOWED_TOOLS) плюс шум, удалённый из результатов инструментов (stripNoise).Claude не пришлось генерировать (
tokensSavedOut): постоянные параметры (cloudId,contentFormat,responseContentFormat), которые прокси подставляет от имени Claude.
Чтобы наблюдать за этим в реальном времени, откройте отдельный терминал и выполните tail для файла сводки:
Get-Content logs\stats-summary.txt -WaitУстранение неполадок
Зависание без сообщения
ready:npx -y mcp-remote ...скорее всего ожидает OAuth-поток в браузере — проверьте наличие окна/запроса браузера.Инструмент недоступен в Claude: убедитесь, что имя инструмента есть в
ALLOWED_TOOLSвindex.js; всё, что не перечислено, отфильтровывается изtools/listи отклоняется приtools/call.
Устаревшая/истёкшая аутентификация (401 Unauthorized или could not resolve cloudId from getAccessibleAtlassianResources)
Переподключение /mcp в Claude Code перезапускает только stdio-процесс node index.js — оно не принудительно выполняет повторную аутентификацию. Сам OAuth-токен находится уровнем ниже, кэшируется на диске дочерним процессом mcp-remote по пути ~/.mcp-auth/mcp-remote-<version>/<server-hash>_tokens.json, ключом является URL вышестоящего сервера. Если этот токен устарел (истёк, отозван или был уже устаревшим до перезапуска процесса node), каждый вызов инструмента завершается ошибкой 401/could not resolve cloudId, независимо от того, сколько раз вы переподключаетесь в Claude Code, потому что переподключение никогда не затрагивает этот кэш.
Полный рецепт, по порядку:
Очистите кэш:
rm -rf ~/.mcp-auth(Windows:C:\Users\<you>\.mcp-auth). Это стирает кэшированную регистрацию клиента, PKCE-верификатор и токен для каждого сервера на базеmcp-remoteна машине — безопасно, это чисто состояние OAuth-клиента, ничто другое от него не зависит.Повторно аутентифицируйтесь автономно, вне Claude Code, в отдельном терминале:
cd C:\Users\Dz\oktanetest\atlassian-proxy npx -y mcp-remote https://mcp.atlassian.com/v1/mcp --host 127.0.0.1Дайте этому выполниться на переднем плане (или в фоновой оболочке, за которой можно наблюдать) и завершите вход в браузере в своём темпе. Не пытайтесь повторно аутентифицироваться, сначала переподключая
atlassian-proxyвнутри Claude Code — таймаут установки соединения Claude Code конкурирует с интерактивным OAuth-потоком, посколькуmain()вindex.jsне открывает свою сторону stdio, пока не разрешится всё подключение вышестоящегоmcp-remote(включая ваши клики в браузере). Если Claude Code сдастся первым, он убьётindex.jsи его дочернийmcp-remoteна середине рукопожатия — браузер может всё ещё показывать "Authorization successful!", но обмен токеном будет прерван до записиtokens.json(у вас останутся толькоclient_info.json/code_verifier.txtв~/.mcp-auth, без токена — проверьте это, если так произошло). Запускmcp-remoteавтономно сначала полностью устраняет эту гонку; как только он выведетProxy established successfully(код выхода 0), токен безопасно кэширован.Только после этого переподключите
atlassian-proxyв Claude Code (/mcp). Он запускает тот жеmcp-remote, находит теперь действительный кэшированный токен и подключается немедленно, без шага с браузером.
--host 127.0.0.1 в аргументах запуска index.js (не по умолчанию вышестоящего mcp-remote) обязателен на Windows: локальный OAuth-сервер обратного вызова mcp-remote привязывается только к 127.0.0.1, но его имя хоста по умолчанию для redirect_uri — localhost. На машине с Windows, где localhost сначала разрешается в ::1 (проверьте с помощью Resolve-DnsName localhost), перенаправление браузера после входа попадает на адрес, где ничего не слушает — страница обратного вызова показывает "Unable to connect", и код аутентификации остаётся неиспользованным. Не удаляйте этот флаг.
EADDRINUSE на порту обратного вызова (например, listen EADDRINUSE: 127.0.0.1:3736) после прерванной предыдущей попытки аутентификации: npx на Windows не всегда убивает всё дерево дочерних процессов, когда его родитель отменяется, поэтому предыдущий mcp-remote может остаться осиротевшим и продолжать удерживать порт. Найдите и убейте его перед повторной попыткой:
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