Gosar
Gosar MCP Server
MCP-сервер, который позволяет Claude вызывать Gosar API от имени пользователя, с аутентификацией через OAuth 2.0 + PKCE от Gosar.
Он действует как мост:
Для Claude (MCP-клиента) он ведёт себя как полноценный OAuth-сервер авторизации — обрабатывает динамическую регистрацию клиентов и выдаёт собственные кратковременные токены.
Для Gosar он является единственным предварительно зарегистрированным OAuth-клиентом (публичным, только с PKCE), который выполняет реальный обмен Authorization Code + PKCE, описанный в руководстве по интеграции Gosar.
Предварительные требования
Python 3.11+
OAuth-клиент Gosar, зарегистрированный в команде Gosar (см. «Что нам нужно от вас» в руководстве по интеграции) — вам нужны
client_idи одобренный redirect URI.ngrok (или аналогичный инструмент), если вы хотите тестировать с реальным Gosar API — redirect URI Gosar должен быть HTTPS и точно совпадать, а Claude также нужен HTTPS-URL для подключения удалённого MCP-сервера.
Related MCP server: Strava MCP Server
1. Установка зависимостей
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt2. Настройка .env
Скопируйте имеющиеся значения в .env в корне проекта:
# Real values from the Gosar team
GOSAR_API_BASE_URL=https://api.gosar.example
GOSAR_CLIENT_ID=your-registered-client-id
GOSAR_SCOPES=applications.read applications.write
# Your server's own public HTTPS URL (e.g. your ngrok URL). Gosar's registered
# redirect_uri must be exactly this + GOSAR_REDIRECT_PATH.
MCP_PUBLIC_BASE_URL=https://your-tunnel.ngrok-free.app
GOSAR_REDIRECT_PATH=/gosar/callback
MCP_HOST=0.0.0.0
MCP_PORT=8000
# Generate once and keep stable — see below
JWT_SIGNING_KEY=Сгенерируйте ключ подписи (Gosar — публичный клиент без секрета, поэтому его нельзя получить автоматически — он обязателен):
python -c "import secrets; print(secrets.token_urlsafe(32))"Вставьте вывод в JWT_SIGNING_KEY. Держите его одинаковым между перезапусками, иначе каждый подключённый пользователь будет выходить из системы.
3. Откройте ваш сервер через HTTPS (для реального тестирования Gosar)
Claude и Gosar оба требуют HTTPS. В отдельном терминале:
ngrok http 8000Скопируйте URL https://...ngrok-free.app в MCP_PUBLIC_BASE_URL в .env и отправьте {MCP_PUBLIC_BASE_URL}/gosar/callback команде Gosar как ваш зарегистрированный redirect URI.
4. Запуск сервера
source .venv/bin/activate
python main.pyВы должны увидеть:
Starting MCP server 'Gosar' with transport 'http' on http://0.0.0.0:8000/mcp
Uvicorn running on http://0.0.0.0:8000Автоперезагрузка при изменении кода
python main.py не перезагружается — mcp.run() блокирует выполнение и владеет собственным процессом uvicorn, который нельзя передать файловому наблюдателю для перезагрузки. Для разработки запускайте ASGI-приложение в gosar_mcp/asgi.py напрямую под uvicorn:
uvicorn gosar_mcp.asgi:app --reload --reload-include ".env" --host 0.0.0.0 --port 8000--reloadперезапускает рабочий процесс при изменении любого файла.py.--reload-include ".env"также перезапускает его при редактировании.env(uvicorn по умолчанию следит только за Python-файлами, а переменные окружения читаются только один раз при запуске процесса, поэтому без этого флага изменение.envпотребует ручного перезапуска).Держите порт в соответствии с тем, куда указывает ваш ngrok-туннель.
5. Проверка OAuth-связки
При запущенном сервере убедитесь, что метаданные обнаружения обслуживаются:
curl -s http://127.0.0.1:8000/.well-known/oauth-authorization-server | python3 -m json.toolВы должны увидеть applications.read/applications.write в scopes_supported и S256 как единственный метод PKCE.
6. Подключение к Claude
В настройках коннектора Claude добавьте удалённый MCP-сервер, указав:
https://your-tunnel.ngrok-free.app/mcpClaude зарегистрируется как OAuth-клиент на этом сервере, перенаправит пользователя через согласие, затем через реальный вход Google + экран согласия Gosar, и вернётся сюда с активным подключением. Попросите Claude вызвать инструмент whoami, чтобы подтвердить, что он аутентифицирован как ожидаемая учётная запись Gosar.
Примечания
Хранилище токенов (регистрации клиентов + зашифрованные вышестоящие токены Gosar) по умолчанию использует подходящее для ОС зашифрованное файловое хранилище на диске — дополнительная настройка для локальной разработки не требуется. См.
gosar_mcp/auth.py, чтобы указать другой бэкенд в продакшене.Пути конечных точек
/applicationsвgosar_mcp/tools.py— заглушки: руководство по интеграции определяет только уровень OAuth, а не форму REST API приложений. Уточните реальные пути/полезные нагрузки у команды Gosar и скорректируйте их там.
This 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
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop and other MCP clients to interact with any OAuth2-authenticated OpenAPI-based API through automatic tool generation from OpenAPI specifications, with built-in token management and authentication handling.83MIT
- FlicenseBqualityDmaintenanceConnects Claude or any MCP client to the Strava API v3, enabling access to fitness data such as activities, athletes, clubs, segments, routes, and streams.37
- FlicenseNot gradedqualityBmaintenanceEnables Claude.ai to connect to a Hermes MCP server via OAuth 2.1 authorization code flow with PKCE, acting as a reverse proxy and single-user authorization gateway.
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with Basecamp API for project and to-do management via OAuth authentication.60MIT
Related MCP Connectors
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
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/feranmiemmanuel/gosar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server