benepass-mcp
benepass-mcp
Неофициальный только для чтения MCP-сервер для API Benepass employee-web.
Этот проект не связан с Benepass, не одобрен и не поддерживается Benepass. Он основан на реверс-инжиниринге публичного клиента employee-web. Не обращайтесь в службу поддержки Benepass по поводу этого сервера, проблем со входом, отсутствующих эндпоинтов или чего-либо ещё, связанного с этим неофициальным инструментом.
Имя пакета в публичном реестре уже занято. Этот репозиторий устанавливает private: true и не публикуется там.
Структура
src/index.ts— точка входа stdio (serveStdio)src/server.ts— фабрикаMcpServersrc/tools.ts— тонкие MCP-адаптеры (TOOL_NAMES)src/app.ts— корень композицииsrc/accounts.ts— вывод льгот, выбор HSA-счётаsrc/hsa.ts— перебор GET-путей инвестицийsrc/api.ts— HTTP-клиент Benepass только для GETsrc/http.ts— ky + список разрешённых хостовsrc/cognito.ts— Cognito OTP + обновление токенаsrc/session.ts— локальный файл сессииsrc/schemas.ts— модели Zod для JSON Benepasssrc/errors.ts— типизированные ошибкиtest/— Vitest (внутрипроцессный MCP-клиент + модульные тесты)
Related MCP server: appstoreconnect-codex-mcp
Модель безопасности
Только для чтения. ky-клиент для
api.benefitsapi.comвыбрасывает ошибку, если метод не GET. Нет инструментов для пополнений, снятия средств, отправки/обновления/удаления расходов, карт/PIN-кодов, выплат или универсальногоcall_api.Токены остаются на вашей машине. После OTP-входа refresh-токен Cognito сохраняется в
~/.config/benepass-mcp/session.json(XDG черезenv-paths), с правами0600. Переопределить можно черезBENEPASS_SESSION_PATH(с двумя P). Инструменты никогда не возвращают refresh- и access-токены. Токены никогда не логируются. Файлы сессий игнорируются git.Только исходящие хосты:
cognito-idp.us-east-1.amazonaws.com,cognito.benefitsapi.com,api.benefitsapi.com.Идентификатор клиента приложения Cognito
6l7jeu4r44kgndgeab4aot355m— это публичный идентификатор клиента (не секрет); он встроен в приложение employee-web.
Процесс входа
Вызовите
start_login, указав свою электронную почту Benepass. Cognito InitiateAuth CUSTOM_AUTH отправляет OTP.Вызовите
complete_loginс адресом электронной почты, OTP иchallenge_session. Cognito RespondToAuthChallenge CUSTOM_CHALLENGE выдаёт refresh-токен, который записывается в локальный файл сессии. Инструмент возвращает только{ ok, email }.Последующие API-вызовы отправляют POST
grant_type=refresh_tokenна URL токена и передают access-токен как Authorization Bearer. Срок действия токена учитывается (expires_inи JWTexp).Если
workspace_idне указан, выполняется GET/v2/me/workspaces/и сохраняется первое рабочее пространство сtype=employment.
Инструменты
Аутентификация: start_login, complete_login, auth_status, logout.
Чтение: list_workspaces, list_accounts, list_benefits (выводится из enrollment.benefit счетов и доступного остатка), list_transactions, get_hsa_account_details, get_hsa_investments, list_documents, get_document, get_current_user.
list_benefits: у Benepass нет /v2/me/benefits/. Льготы выводятся из enrollment.benefit каждого счёта и из ключа остатка, оканчивающегося на /available.
get_hsa_investments: использует только GET, побеждает первый ответ 2xx:
/v2/me/accounts/{id}/hsa-investments//v2/me/accounts/{id}/hsa-investments/portfolio//v2/me/accounts/{id}/hsa-investments/portfolio/allocation//v2/me/accounts/{id}/hsa-investments/asset-links/
Если account_id не указан, HSA-счета выбираются из полей, разобранных Zod (enrollment.benefit.benefit_type, enrollment.benefit.key, account.key, account.account_type, account.type), соответствующих hsa / health_savings / health_savings_account. Названия счетов не проверяются. Если эти поля отсутствуют, инструмент откатывается к идентификатору счёта из GET /v2/me/hsa-account-details/. Если каждый кандидат возвращает 404, инструмент завершается ошибкой и включает в неё payload этого get_hsa_account_details. Эти инвестиционные GET-пути получены реверс-инжинирингом и могут существовать не для каждого счёта.
Лицензия
MIT
Stdio
Этот сервер общается по MCP через stdout и пишет логи в stderr. Используйте скрипт start после build или скрипт dev во время разработки.
Cursor
Добавьте запись benepass в настройки MCP (mcp.json), которая запускает скомпилированную точку входа этого пакета. Выполните аутентификацию с помощью start_login, затем complete_login.
Пример конфигурации Cursor находится в cursor-mcp.example.json.
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
- FlicenseBqualityDmaintenanceEnables read-only access to FileMaker databases through the Data API, allowing users to retrieve records, analyze metadata, search across layouts, and infer relationships while maintaining data security.16
- AlicenseNot gradedqualityBmaintenanceEnables read-only interaction with App Store Connect via MCP tools, including listing apps, versions, builds, and review submissions, with compliance boundaries and no write operations by default.MIT
- AlicenseNot gradedqualityCmaintenanceRead-only access to Stripe data including customers, charges, subscriptions, balance, and invoices.12MIT
- AlicenseNot gradedqualityCmaintenanceEnables read-only access to Bity cryptocurrency account balances, market data (ticker, order book, trades), and order history via the official API.MIT
Related MCP Connectors
Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
Read your Savee saves, boards and home feed, and search its public library. Read-only.
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/brian7989/benepass-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server