keumbang/goldpopcon-openapi-mcp
@keumbang/goldpopcon-openapi-mcp
ゴールドポップコーン(金房)Open API コーディングアシスタントMCPサーバー。Claude Code · Claude Desktop · Codex CLI · Gemini CLI · Cursor などのMCPクライアントに接続し、金・銀取引API連携コードを正確に作成できるように支援します。
APIキーの発行
Open APIキー(gpk_ アクセスキー + sk_ シークレットキー)は ゴールドポップコーンアプリでのみ発行 されます。Web発行の経路はありません。
ゴールドポップコーンアプリをインストール — App Store · Google Play
会員登録後、アプリ内のOpen APIメニューでキーを発行
sk_シークレットキーは 発行画面でのみ表示 されます — その場で安全な場所に保管してください
このAPIで開発者がつまずくポイントはフィールド名ではなく リクエスト署名 です — query_hash の入力がメソッドによって異なり(POST=raw body、GET=正規化されたquerystring)、Upbitのサンプルをそのまま流用するとすべて401になります。このMCPはその手順をコードで生成し、ローカルで署名・検証まで行います。
Related MCP server: korea-stock-mcp
ツール
ツール | 用途 |
| エンドポイント一覧 — 権限スコープ・冪等性・レートバケットを含む |
| 単一エンドポイントの詳細 — パラメータ・ボディスキーマ・リクエスト/成功レスポンス例・レスポンスコード |
| エラーコード表 + ステータスコード別のリトライ判断 + 落とし穴(残高不足=400 P0001、認証失敗=401 error:null) |
| JWT署名手順 — |
| 言語別(python/javascript/go/curl)の完全な署名リクエストコード生成 |
| 実際のキーでJWTを ローカル計算(デバッグ) — JWT・query_hash・そのまま使えるcurlを返す |
| 既に作成したJWTをサーバーと同じ順序で検証 — 401の原因診断 |
| 実際の呼び出し — 参照専用・production固定。envで有効にしたときのみ登録 |
リソース: goldpopcon://openapi.yaml(全仕様)、goldpopcon://overview(署名・制限・エラーに関する散文)。
セキュリティ:
sign_request/verify_signature/call_apiに渡したsecret_keyはローカル署名にのみ使用され、署名結果(JWT)だけが送信されます — secret自体はネットワークを経由しません。
call_api — 参照専用のライブ呼び出し
デフォルトでは 無効。GOLDPOPCON_MCP_ALLOW_LIVE=true の場合のみ登録されます。4重の安全策で資金移動を根本的にブロックします:
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 でも応答します — マークダウンパースなしで値を直接利用できます。
{
"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エラーなど)は
dataの代わりにrawで返ります。429 の場合は
rateLimit.retryAfterに待機秒数。quote 600/分、trade 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"]。
環境変数
変数 | デフォルト | 意味 |
| バンドル | スペックファイルパスの再指定 |
| (なし) |
|
| (なし) |
|
| (なし) |
|
対話例
"sellAsset をPythonで呼び出すコードをください、金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