keumbang/goldpopcon-openapi-mcp
@keumbang/goldpopcon-openapi-mcp
MCP-сервер для кодинг-ассистента для Open API сервиса Goldpopcon (Geumbang). Подключается к MCP-клиентам, таким как Claude Code, Claude Desktop, Codex CLI, Gemini CLI, Cursor и другим, помогая точно писать код для интеграции с API торговли золотом и серебром.
Получение API-ключа
Ключи Open API (ключ доступа gpk_ + секретный ключ sk_) выдаются только в приложении Goldpopcon. Веб-пути для получения нет.
Установите приложение Goldpopcon — App Store · Google Play
Зарегистрируйтесь и получите ключи в меню Open API внутри приложения
Секретный ключ
sk_отображается только на экране выдачи — сохраните его в надежном месте сразу же
Самое сложное место для разработчика в этом API — не названия полей, а подпись запроса: ввод query_hash различается в зависимости от метода (POST = raw body, GET = нормализованная querystring), и если скопировать пример из Upbit, все запросы будут возвращать 401. Этот MCP генерирует код для этой процедуры и выполняет локальное подписание/верификацию.
Related MCP server: korea-stock-mcp
Инструменты
Инструмент | Назначение |
| Список эндпоинтов — включает область разрешений, идемпотентность, rate bucket |
| Детали одного эндпоинта — схема параметров и тела, примеры запроса/успешного ответа, коды ответов |
| Таблица кодов ошибок + рекомендации по повторным попыткам в зависимости от кода состояния + ловушки (недостаточно средств = 400 P0001, ошибка аутентификации = 401 error:null) |
| Процедура подписи JWT — ветвление |
| Генерация завершенного кода подписанного запроса на разных языках (python/javascript/go/curl) |
| Локальное вычисление JWT с реальным ключом (отладка) — возвращает JWT, query_hash, готовый к использованию curl |
| Верификация уже созданного JWT в том же порядке, что и сервер — диагностика причины 401 |
| Реальный вызов — только для чтения, production фиксирован. Регистрируется только при включении через env |
Ресурсы: goldpopcon://openapi.yaml (полная спецификация), goldpopcon://overview (подпись, лимиты, описание ошибок).
Безопасность:
secret_key, переданный вsign_request/verify_signature/call_api, используется только для локальной подписи, передается только результат подписи (JWT) — сам секрет не передается по сети.
call_api — вызов в реальном времени только для чтения
По умолчанию отключен. Регистрируется только при GOLDPOPCON_MCP_ALLOW_LIVE=true. Четырехуровневая защита, полностью блокирующая перемещение средств:
Шлюз env — без переменной инструмент отсутствует
Белый список — только
getPrices/getBalances/getPriceHistory/getOrderPreview/getTradeHistory.buy·sell·payout·virtual-accountsнедоступны для живого вызова (только генерация кода)Фиксация production — аргументом нельзя изменить сервер. Так как это только чтение, чтение production не приводит к движению средств
Принудительный GET — блокировка методов записи
Для реального вызова эндпоинтов, связанных с перемещением средств, используйте generate_signed_request, чтобы получить код и выполнить его в своей среде разработчика.
Автоматизация чтения — ключ через env
Если LLM автоматически повторно запрашивает цены и балансы, опустите аргументы accessKey/secretKey и передайте их через env. sk_, переданный в аргументах, остается в открытом виде в контексте модели, транскрипте и логах клиента при каждом вызове.
{
"mcpServers": {
"goldpopcon-openapi": {
"command": "npx",
"args": ["-y", "@keumbang/goldpopcon-openapi-mcp"],
"env": {
"GOLDPOPCON_MCP_ALLOW_LIVE": "true",
"GOLDPOPCON_ACCESS_KEY": "gpk_...",
"GOLDPOPCON_SECRET_KEY": "sk_..."
}
}
}
}Резервный вариант через env доступен только для call_api (только чтение). sign_request не открыт, так как может создавать подписи вплоть до buyAsset — если бы он был открыт, агент мог бы создавать действительные подписи для перемещения средств без участия человека.
call_api также отвечает с помощью structuredContent — значения доступны напрямую, без парсинга Markdown.
{
"operationId": "getPrices",
"url": "https://api.goldpopcon.com/api/open/v1/prices",
"status": 200,
"ok": true,
"data": { "...": "응답 본문 JSON 그대로" },
"rateLimit": { "limit": 600, "remaining": 599, "reset": 1730000000, "retryAfter": null }
}Формат
dataразличается для каждого эндпоинта — пример успешного ответа изget_endpointявляется спецификацией.Ошибки 4xx/5xx также приходят не как ошибки инструмента, а в виде
status/ok. Цикл обрабатывает их ветвлением.Если тело ответа не в JSON (например, HTML-ошибка шлюза), оно приходит в
rawвместоdata.При 429 в
rateLimit.retryAfterуказано время ожидания в секундах. Лимит: 600 запросов/мин для котировок, 60 запросов/мин для торговли.
Установка и сборка
git clone https://github.com/keumbang/goldpopcon-openapi-mcp.git
cd goldpopcon-openapi-mcp
npm install
npm run build # dist/ 생성
npm test # 서명 회귀 테스트Регистрация в MCP-клиенте
Клиенты, подключаемые одной командой CLI:
# Claude Code
claude mcp add goldpopcon-openapi -- npx -y @keumbang/goldpopcon-openapi-mcp
# Codex CLI (~/.codex/config.toml 에 기록된다. 세션에서 /mcp 로 연결 확인)
codex mcp add goldpopcon-openapi -- npx -y @keumbang/goldpopcon-openapi-mcpРедактирование файла конфигурации вручную (Claude Desktop claude_desktop_config.json, Cursor ~/.cursor/mcp.json, Gemini CLI ~/.gemini/settings.json):
{ "mcpServers": { "goldpopcon-openapi": { "command": "npx", "args": ["-y", "@keumbang/goldpopcon-openapi-mcp"] } } }Gemini CLI нестабильно интерпретирует PATH — если сервер не запускается, замените command на абсолютный путь, полученный с помощью which npx.
Запуск локального клона:
{
"mcpServers": {
"goldpopcon-openapi": {
"command": "node",
"args": ["/절대경로/goldpopcon-openapi-mcp/dist/index.js"]
}
}
}Во время разработки используйте command: "npx", args: ["tsx", "/абсолютный_путь/.../src/index.ts"].
Переменные окружения
Переменная | По умолчанию | Значение |
| Встроенный | Переопределение пути к файлу спецификации |
| (нет) |
|
| (нет) | Значение по умолчанию для ключа доступа |
| (нет) | Значение по умолчанию для секретного ключа |
Примеры диалогов
"Дай код на Python для вызова sellAsset, золото 0.5g" →
generate_signed_request(operationId=sellAsset, language=python, pathParams={asset:gold}, body={quantity:0.5})"Как продать все имеющееся золото?" →
generate_signed_request(operationId=sellAsset, language=python, pathParams={asset:gold}, body={quantity:0.001, sell_all:true})—sell_allигнорирует указанное количество и исполняет весь доступный остаток"Почему этот JWT выдает 401?" →
verify_signature(token=..., secretKey=..., method=POST, rawBody=...)"Какие параметры у эндпоинта истории цен?" →
get_endpoint(operationId=getPriceHistory)"Какой код ошибки при недостатке средств?" →
list_error_codes—400 P0001(не 500). Также выводится таблица рекомендаций по повторным попыткам в зависимости от кода состояния
Синхронизация спецификации
Оригинал спецификации находится в docs/openapi.yaml репозитория бэкенда (вне этого репозитория), а этот репозиторий содержит копию spec/openapi.yaml в виде бандла. При изменении оригинала обновите копию, указав путь через SPEC_SRC:
SPEC_SRC=/path/to/<backend-repo>/docs/openapi.yaml npm run sync-specSPEC_SRC обязателен. Если его опустить, оригинал не будет найден, и операция завершится ошибкой — чтобы не указывать имя репозитория бэкенда в этом репозитории, значение по умолчанию не задано.
После обновления закоммитьте spec/openapi.yaml. Если правила подписи расходятся с сервером, npm test (зеркало правил верификации сервера) это обнаружит.
<backend-repo>/docs/openapi.yaml ──sync-spec──▶ spec/openapi.yamlMaintenance
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
- Alicense-qualityDmaintenanceAn MCP server that provides current and historical gold/precious metal prices (gold, silver, platinum, and palladium) via the GoldAPI.io service with support for multiple currencies.1MIT
- ISC
- FlicenseAqualityDmaintenanceAn MCP server that enables natural language control of Kiwoom Securities accounts through Claude Desktop. It provides tools for stock price lookup, buying and selling stocks, and analyzing portfolios or trade history via the Kiwoom REST API.112
- AlicenseCqualityBmaintenanceSafe-by-default MCP server for the official Toss Securities Open API, providing read-only market and account data with optional order operations protected by multiple safety gates.27192MIT
Related MCP Connectors
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
South African Reserve Bank (SARB) Web API MCP. Keyless.
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/keumbang/goldpopcon-openapi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server