Skip to main content
Glama
keumbang

keumbang/goldpopcon-openapi-mcp

by keumbang

@keumbang/goldpopcon-openapi-mcp

npm CI node license

MCP-сервер для кодинг-ассистента для Open API сервиса Goldpopcon (Geumbang). Подключается к MCP-клиентам, таким как Claude Code, Claude Desktop, Codex CLI, Gemini CLI, Cursor и другим, помогая точно писать код для интеграции с API торговли золотом и серебром.

Получение API-ключа

Ключи Open API (ключ доступа gpk_ + секретный ключ sk_) выдаются только в приложении Goldpopcon. Веб-пути для получения нет.

  1. Установите приложение Goldpopcon — App Store · Google Play

  2. Зарегистрируйтесь и получите ключи в меню Open API внутри приложения

  3. Секретный ключ sk_ отображается только на экране выдачи — сохраните его в надежном месте сразу же

Самое сложное место для разработчика в этом API — не названия полей, а подпись запроса: ввод query_hash различается в зависимости от метода (POST = raw body, GET = нормализованная querystring), и если скопировать пример из Upbit, все запросы будут возвращать 401. Этот MCP генерирует код для этой процедуры и выполняет локальное подписание/верификацию.

Related MCP server: korea-stock-mcp

Инструменты

Инструмент

Назначение

list_endpoints

Список эндпоинтов — включает область разрешений, идемпотентность, rate bucket

get_endpoint

Детали одного эндпоинта — схема параметров и тела, примеры запроса/успешного ответа, коды ответов

list_error_codes

Таблица кодов ошибок + рекомендации по повторным попыткам в зависимости от кода состояния + ловушки (недостаточно средств = 400 P0001, ошибка аутентификации = 401 error:null)

signing_guide

Процедура подписи JWT — ветвление query_hash, временные утверждения, nonce, идемпотентность

generate_signed_request

Генерация завершенного кода подписанного запроса на разных языках (python/javascript/go/curl)

sign_request

Локальное вычисление JWT с реальным ключом (отладка) — возвращает JWT, query_hash, готовый к использованию curl

verify_signature

Верификация уже созданного JWT в том же порядке, что и сервер — диагностика причины 401

call_api (opt-in)

Реальный вызов — только для чтения, production фиксирован. Регистрируется только при включении через env

Ресурсы: goldpopcon://openapi.yaml (полная спецификация), goldpopcon://overview (подпись, лимиты, описание ошибок).

Безопасность: secret_key, переданный в sign_request/verify_signature/call_api, используется только для локальной подписи, передается только результат подписи (JWT) — сам секрет не передается по сети.

call_api — вызов в реальном времени только для чтения

По умолчанию отключен. Регистрируется только при GOLDPOPCON_MCP_ALLOW_LIVE=true. Четырехуровневая защита, полностью блокирующая перемещение средств:

  1. Шлюз env — без переменной инструмент отсутствует

  2. Белый список — только getPrices / getBalances / getPriceHistory / getOrderPreview / getTradeHistory. buy·sell·payout·virtual-accounts недоступны для живого вызова (только генерация кода)

  3. Фиксация production — аргументом нельзя изменить сервер. Так как это только чтение, чтение production не приводит к движению средств

  4. Принудительный 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"].

Переменные окружения

Переменная

По умолчанию

Значение

GOLDPOPCON_OPENAPI_SPEC

Встроенный spec/openapi.yaml

Переопределение пути к файлу спецификации

GOLDPOPCON_MCP_ALLOW_LIVE

(нет)

true активирует call_api (только чтение, production)

GOLDPOPCON_ACCESS_KEY

(нет)

Значение по умолчанию для ключа доступа call_api — используется при опущенном аргументе

GOLDPOPCON_SECRET_KEY

(нет)

Значение по умолчанию для секретного ключа call_api — рекомендуется для автоматизации повторяющихся вызовов

Примеры диалогов

  • "Дай код на 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_codes400 P0001 (не 500). Также выводится таблица рекомендаций по повторным попыткам в зависимости от кода состояния

Синхронизация спецификации

Оригинал спецификации находится в docs/openapi.yaml репозитория бэкенда (вне этого репозитория), а этот репозиторий содержит копию spec/openapi.yaml в виде бандла. При изменении оригинала обновите копию, указав путь через SPEC_SRC:

SPEC_SRC=/path/to/<backend-repo>/docs/openapi.yaml npm run sync-spec

SPEC_SRC обязателен. Если его опустить, оригинал не будет найден, и операция завершится ошибкой — чтобы не указывать имя репозитория бэкенда в этом репозитории, значение по умолчанию не задано.

После обновления закоммитьте spec/openapi.yaml. Если правила подписи расходятся с сервером, npm test (зеркало правил верификации сервера) это обнаружит.

<backend-repo>/docs/openapi.yaml  ──sync-spec──▶  spec/openapi.yaml
Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    D
    maintenance
    An 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.
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An 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.
    11
    2
  • A
    license
    C
    quality
    B
    maintenance
    Safe-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.
    27
    19
    2
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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