Openapi Mcp

com.goldpopcon由 goldpopcon.com 發布v0.3.1更新於 Oct 24, 2026

금방 Open API MCP 서버 — 스펙 조회·JWT 서명 코드 생성·로컬 서명/검증

已驗證STDIO僅桌面金融開發者工具

概覽

AI 產生的概覽

本機 MCP 伺服器,協助編碼助理為 Goldpopcon(금방)金銀交易 Open API 撰寫正確的串接程式碼。

可以做什麼
瀏覽介面規格:列出端點及其權限範圍、冪等性與限流桶,查看單一端點的參數、請求主體結構與範例,並查詢錯誤碼及依狀態碼的重試建議和常見陷阱。了解請求簽章:提供依方法區分 query_hash、時間宣告、nonce 與冪等性的簽章指南。產生程式碼:依指定操作產生 python、javascript、go 或 curl 的完整簽章請求程式碼。本機簽章與驗證:以真實金鑰計算 JWT 以便除錯,或依伺服器相同順序驗證既有權杖以診斷 401。啟用後可選擇以唯讀方式呼叫線上介面,回傳結構化資料與限流資訊。
適用情境
適用於開發或除錯 Goldpopcon Open API 用戶端時,尤其是請求簽章與 query_hash 處理造成 401 的情況,或希望助理直接掌握端點、錯誤碼與簽章細節,而不必照搬其他範例。
執行需求
以 stdio 在本機執行,通常透過 npx 使用 npm 套件,需要 Node.js。API 金鑰(gpk_ 存取金鑰與 sk_ 私密金鑰)只能在 Goldpopcon 手機應用程式中核發。金鑰可作為工具參數傳入,唯讀呼叫工具也可透過 GOLDPOPCON_ACCESS_KEY 與 GOLDPOPCON_SECRET_KEY 環境變數提供。僅當 GOLDPOPCON_MCP_ALLOW_LIVE 為 true 時才會註冊線上呼叫工具。線上呼叫需要網路存取。
安裝前請注意
金鑰屬敏感資訊:作為工具參數傳入的值會以明文留在模型上下文、工作階段紀錄與用戶端日誌中,重複呼叫建議改用環境變數。線上呼叫工具為唯讀、固定 production 且僅限白名單中的 GET 端點;交易、出金與虛擬帳戶端點無法線上呼叫。簽章工具可為 buyAsset 等資金操作產生有效簽章,產生的程式碼應人工審閱後再執行。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Openapi Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@keumbang/goldpopcon-openapi-mcp

[npm] [CI] [node] [license] [goldpopcon-openapi-mcp MCP server]

[VS Code 설치] [Cursor 설치]

골드팝콘(금방) Open API 코딩 어시스턴트 MCP 서버. Claude Code · Claude Desktop · Codex CLI · Gemini CLI · Cursor 등 MCP 클라이언트에 붙여, 금·은 거래 API 연동 코드를 정확히 짜도록 돕는다.

📘 골드팝콘 Open API 문서 → https://keumbang.github.io/goldpopcon-openapi-mcp/

엔드포인트 표 · 빠른 시작 · JWT 서명 규격 · 권한/한도 · 멱등성 · 에러 코드. 스펙에서 생성되는 공식 문서다. 요청·응답 스키마는 Redoc 에서 본다. MCP 없이 직접 연동할 사람도 여기부터 읽으면 된다. (repo 안에서 바로 보려면 docs/index.md)

API 키 발급

Open API 키(gpk_ 액세스 키 + sk_ 시크릿 키)는 골드팝콘 앱에서만 발급된다. 웹 발급 경로는 없다.

  1. 골드팝콘 앱 설치 — App Store · Google Play
  2. 회원가입 후 앱 내 Open API 메뉴에서 키 발급
  3. sk_ 시크릿 키는 발급 화면에서만 노출된다 — 그 자리에서 안전한 곳에 보관

이 API에서 개발자가 막히는 지점은 필드명이 아니라 요청 서명이다 — query_hash 입력이 메서드에 따라 갈리고(POST=raw body, GET=정규화 querystring) 업비트 예제를 그대로 옮기면 전부 401이 난다. 이 MCP는 그 절차를 코드로 생성하고 로컬에서 서명/검증까지 해준다.

도구

도구용도
list_endpoints엔드포인트 목록 — 권한 스코프·멱등성·rate 버킷 포함
get_endpoint단일 엔드포인트 상세 — 파라미터·본문 스키마·요청/성공 응답 예제·응답 코드
list_error_codes에러 코드 표 + 상태 코드별 재시도 판단 + 함정(잔액 부족=400 P0001, 인증 실패=401 error:null)
signing_guideJWT 서명 절차 — 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(서명·한도·에러 산문).

보안: sign_request/verify_signature/call_api에 넘긴 secret_key는 로컬 서명에만 쓰이고 서명 결과(JWT)만 전송된다 — secret 자체는 네트워크를 타지 않는다.

call_api — 조회 전용 라이브 호출

기본 비활성. GOLDPOPCON_MCP_ALLOW_LIVE=true 일 때만 등록된다. 4중 안전장치로 자금 이동을 원천 차단:

  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_ 는 호출마다 모델 컨텍스트·트랜스크립트·클라이언트 로그에 평문으로 남는다.

json
{  "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 fallback 은 call_api(조회 전용)에만 있다. sign_request 는 buyAsset 서명까지 만들 수 있어 열지 않았다 — 열면 에이전트가 사람 개입 없이 유효한 자금 이동 서명을 찍어낸다.

call_api 는 structuredContent 로도 응답한다 — 마크다운 파싱 없이 값을 바로 쓴다.

json
{  "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/분.

설치 · 빌드

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

MCP 클라이언트 등록

CLI 한 줄로 붙는 클라이언트:

bash
# Claude Codeclaude 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):

json
{ "mcpServers": { "goldpopcon-openapi": { "command": "npx", "args": ["-y", "@keumbang/goldpopcon-openapi-mcp"] } } }

Gemini CLI 는 PATH 해석이 불안정하다 — 서버가 안 뜨면 command 를 which npx 로 얻은 절대경로로 바꾼다.

로컬 클론 실행:

json
{  "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 시크릿 키 기본값 — 반복 호출 자동화에서 권장

예시 대화

  • "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 아님). 상태 코드별 재시도 판단표도 같이 나온다

스펙 동기화

스펙 원본은 백엔드 repo 의 docs/openapi.yaml(이 repo 밖)이고, 이 repo 는 spec/openapi.yaml 사본을 번들한다. 원본이 바뀌면 SPEC_SRC 로 경로를 지정해 갱신한다:

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

SPEC_SRC 는 필수다. 생략하면 원본을 못 찾고 실패한다 — 백엔드 repo 명을 이 repo 에 남기지 않기 위해 기본 경로를 두지 않았다.

dist/ 가 있으면 sync-spec 이 문서 사이트(docs/index.md · docs/openapi.yaml)도 같이 다시 만든다. 스펙만 따로 갱신했다면 npm run docs 로 맞춘다 — 둘 다 생성물이라 직접 고치지 않는다. 문서 내용을 바꾸려면 백엔드 스펙의 info.description 을 고친다. 손으로 쓰는 파일은 docs/_config.yml 과 docs/redoc.html 둘뿐이다.

갱신 후 spec/openapi.yaml 과 docs/ 를 커밋한다. main 에 푸시되면 GitHub Pages 가 사이트를 다시 배포한다. 서명 규칙이 서버와 어긋나면 npm test(서버 검증 규칙 미러)가 잡는다.

<backend-repo>/docs/openapi.yaml  ──sync-spec──▶  spec/openapi.yaml  ──gen-docs──▶  docs/  ──Pages──▶  keumbang.github.io

來源:README.md,提交 ccc59ed

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.3.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分