Skip to main content
Glama
keumbang

keumbang/goldpopcon-openapi-mcp

by keumbang

@keumbang/goldpopcon-openapi-mcp

npm CI node license

골드팝콘(금방) Open API MCP-Server für Codierungsassistenten. Er hilft, präzisen Code für die Integration von Gold- und Silberhandels-APIs zu schreiben, wenn er an MCP-Clients wie Claude Code, Claude Desktop, Codex CLI, Gemini CLI, Cursor usw. angeschlossen wird.

API-Schlüssel beantragen

Open-API-Schlüssel (gpk_ Zugriffsschlüssel + sk_ geheimer Schlüssel) werden nur in der Gold Popcorn App ausgestellt. Es gibt keinen Weg zur Ausstellung über das Web.

  1. Gold Popcorn App installieren — App Store · Google Play

  2. Nach der Registrierung Schlüssel im Open-API-Menü der App ausstellen.

  3. Der sk_ geheime Schlüssel wird nur auf dem Ausstellungsbildschirm angezeigt — bewahren Sie ihn sofort an einem sicheren Ort auf.

Der Punkt, an dem Entwickler bei dieser API hängen bleiben, sind nicht die Feldnamen, sondern die Anfragesignatur — die query_hash-Eingabe variiert je nach Methode (POST=roher Body, GET=normalisierte Query-String) und wenn man das Upbit-Beispiel direkt übernimmt, erhält man überall 401. Dieser MCP generiert diesen Prozess als Code und führt die Signatur/Verifizierung lokal durch.

Related MCP server: korea-stock-mcp

Werkzeuge

Werkzeug

Zweck

list_endpoints

Liste der Endpunkte — inklusive Berechtigungsbereiche, Idempotenz, Rate-Buckets

get_endpoint

Details eines einzelnen Endpunkts — Parameter, Body-Schema, Beispiele für Anfrage/erfolgreiche Antwort, Antwortcodes

list_error_codes

Fehlercodetabelle + Wiederholungsentscheidung nach Statuscode + Fallstricke (Kontostand unzureichend=400 P0001, Authentifizierungsfehler=401 error:null)

signing_guide

JWT-Signaturverfahren — query_hash-Verzweigung, Zeitanspruch, Nonce, Idempotenz

generate_signed_request

Generiert vollständigen signierten Anforderungscode pro Sprache (python/javascript/go/curl)

sign_request

Berechnet JWT lokal mit echtem Schlüssel (Debugging) — gibt JWT, query_hash, sofort verwendbares curl zurück

verify_signature

Überprüft bereits erstelltes JWT in derselben Reihenfolge wie der Server — Diagnose von 401-Ursachen

call_api (opt-in)

Tatsächlicher Aufruf — nur Abfrage, production fest. Wird nur registriert, wenn per env aktiviert.

Ressourcen: goldpopcon://openapi.yaml (vollständige Spezifikation), goldpopcon://overview (Prosa zu Signatur, Limits, Fehlern).

Sicherheit: Der an sign_request/verify_signature/call_api übergebene secret_key wird nur für die lokale Signatur verwendet und nur das Signaturergebnis (JWT) wird übertragen — das Secret selbst wird nicht über das Netzwerk gesendet.

call_api — Live-Aufruf nur für Abfragen

Standardmäßig deaktiviert. Wird nur registriert, wenn GOLDPOPCON_MCP_ALLOW_LIVE=true gesetzt ist. Vierfache Sicherheitsvorkehrungen blockieren Geldbewegungen grundsätzlich:

  1. Env-Gate — ohne Variable existiert das Werkzeug nicht

  2. Whitelist — nur getPrices / getBalances / getPriceHistory / getOrderPreview / getTradeHistory. buy·sell·payout·virtual-accounts sind nicht live möglich (nur Codegenerierung)

  3. Production fest — Der Server kann nicht über Argumente geändert werden. Da es sich um reine Abfragen handelt, bewegt das Lesen von Production kein Geld.

  4. GET erzwungen — Schreibmethoden blockiert

Um Geldbewegungsendpunkte tatsächlich aufzurufen, erhalten Sie den Code über generate_signed_request und führen ihn in Ihrer eigenen Entwicklungsumgebung aus.

Leseautomatisierung — Schlüssel per env

Wenn es sich um eine Automatisierung handelt, bei der das LLM wiederholt Kurse und Kontostände abfragt, lassen Sie die Argumente accessKey/secretKey weg und geben Sie sie per env. Das als Argument übergebene sk_ bleibt bei jedem Aufruf im Klartext im Modellkontext, Transkript und Client-Log.

{
  "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_..."
      }
    }
  }
}

Der env-Fallback existiert nur für call_api (nur Abfragen). sign_request wurde nicht geöffnet, da es bis zur Signatur von buyAsset reichen kann — wenn geöffnet, könnte der Agent ohne menschliches Eingreifen gültige Signaturen für Geldbewegungen erstellen.

call_api antwortet auch mit structuredContent — Werte können direkt ohne Markdown-Parsing verwendet werden.

{
  "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 }
}
  • Die Form von data variiert pro Endpunkt — das Beispiel einer erfolgreichen Antwort von get_endpoint ist die Spezifikation.

  • Auch 4xx/5xx kommen nicht als Werkzeugfehler, sondern als status/ok. Die Schleife verzweigt und verarbeitet sie.

  • Nicht-JSON-Inhalte (Gateway-HTML-Fehler usw.) kommen als raw statt data.

  • Bei 429 enthält rateLimit.retryAfter die Wartezeit in Sekunden. Quote 600/Minute, Trade 60/Minute.

Installation · Build

git clone https://github.com/keumbang/goldpopcon-openapi-mcp.git
cd goldpopcon-openapi-mcp
npm install
npm run build       # dist/ 생성
npm test            # 서명 회귀 테스트

MCP-Client-Registrierung

Clients, die mit einer CLI-Zeile verbunden werden:

# 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

Direkte Bearbeitung der Konfigurationsdatei (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 interpretiert PATH instabil — wenn der Server nicht startet, ersetzen Sie command durch den absoluten Pfad, den Sie mit which npx erhalten.

Lokalen Klon ausführen:

{
  "mcpServers": {
    "goldpopcon-openapi": {
      "command": "node",
      "args": ["/절대경로/goldpopcon-openapi-mcp/dist/index.js"]
    }
  }
}

Während der Entwicklung: command: "npx", args: ["tsx", "/absoluterPfad/.../src/index.ts"].

Umgebungsvariablen

Variable

Standard

Bedeutung

GOLDPOPCON_OPENAPI_SPEC

Gebündelt spec/openapi.yaml

Pfad zur Spezifikationsdatei überschreiben

GOLDPOPCON_MCP_ALLOW_LIVE

(kein)

Wenn true, aktiviert call_api (nur Abfragen, production)

GOLDPOPCON_ACCESS_KEY

(kein)

Standardwert für call_api-Zugriffsschlüssel — wird verwendet, wenn Argument ausgelassen wird

GOLDPOPCON_SECRET_KEY

(kein)

Standardwert für call_api-geheimen Schlüssel — empfohlen für Automatisierung wiederholter Aufrufe

Beispiel-Dialoge

  • "Gib mir Code, um sellAsset in Python aufzurufen, Gold 0,5g" → generate_signed_request(operationId=sellAsset, language=python, pathParams={asset:gold}, body={quantity:0.5})

  • "Um das gesamte gehaltene Gold zu verkaufen?" → generate_signed_request(operationId=sellAsset, language=python, pathParams={asset:gold}, body={quantity:0.001, sell_all:true})sell_all ignoriert die angeforderte Menge und führt die gesamte verfügbare Restmenge aus.

  • "Warum gibt dieses JWT 401?" → verify_signature(token=..., secretKey=..., method=POST, rawBody=...)

  • "Was sind die Parameter des Preisverlaufs-Endpunkts?" → get_endpoint(operationId=getPriceHistory)

  • "Welcher Fehler bei unzureichendem Kontostand?" → list_error_codes400 P0001 (nicht 500). Die Tabelle zur Wiederholungsentscheidung nach Statuscode wird ebenfalls angezeigt.

Spezifikationssynchronisation

Die ursprüngliche Spezifikation befindet sich im Backend-Repo unter docs/openapi.yaml (außerhalb dieses Repos), und dieses Repo bündelt eine Kopie in spec/openapi.yaml. Wenn sich das Original ändert, aktualisieren Sie es, indem Sie den Pfad mit SPEC_SRC angeben:

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

SPEC_SRC ist erforderlich. Wenn es weggelassen wird, wird das Original nicht gefunden und schlägt fehl — es wurde kein Standardpfad festgelegt, um den Backend-Repo-Namen nicht in diesem Repo zu hinterlassen.

Nach der Aktualisierung committen Sie spec/openapi.yaml. Wenn die Signaturregeln vom Server abweichen, wird dies von npm test (Spiegel der Server-Validierungsregeln) erkannt.

<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