Openapi MCP
개요
제작자가 쓴 설명(영어 원문)
금방 Open API MCP 서버 — 스펙 조회·JWT 서명 코드 생성·로컬 서명/검증
PopNx MCP의 세 기둥
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
- 사용자 의견i아직 리뷰가 없어요리뷰는 다음 단계에서 계정 기능과 함께 열려요
- 우리의 기본 점검i2개 중 2개 통과공개된 정보로 점검했으며, 코드는 아직 스캔하지 않았어요
- 사용 정도i아주 새로움↓ 43/주 · ★ 0
할 수 있는 일
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
- 연결 방식: 내 컴퓨터에서 실행
- 전송 방식: stdio
- 카테고리: 개발자 도구
- 입력해야 할 값: GOLDPOPCON_SECRET_KEY
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
설치하기 전에
- 기본 점검: 2개 중 2개 통과
- 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
- 직접 입력할 값:
GOLDPOPCON_MCP_ALLOW_LIVE,GOLDPOPCON_ACCESS_KEY,GOLDPOPCON_SECRET_KEY
비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"openapi": {
"command": "npx",
"args": [
"-y",
"@keumbang/goldpopcon-openapi-mcp"
],
"env": {
"GOLDPOPCON_MCP_ALLOW_LIVE": "your-value",
"GOLDPOPCON_ACCESS_KEY": "your-value",
"GOLDPOPCON_SECRET_KEY": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add openapi --env GOLDPOPCON_MCP_ALLOW_LIVE=your-value --env GOLDPOPCON_ACCESS_KEY=your-value --env GOLDPOPCON_SECRET_KEY=your-value -- npx -y @keumbang/goldpopcon-openapi-mcp실행하기 전에 빈 값을 채워 주세요.
또는 설정을 직접 복사하기
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"openapi": {
"command": "npx",
"args": [
"-y",
"@keumbang/goldpopcon-openapi-mcp"
],
"env": {
"GOLDPOPCON_MCP_ALLOW_LIVE": "your-value",
"GOLDPOPCON_ACCESS_KEY": "your-value",
"GOLDPOPCON_SECRET_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
또는 설정을 직접 복사하기
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"openapi": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@keumbang/goldpopcon-openapi-mcp"
],
"env": {
"GOLDPOPCON_MCP_ALLOW_LIVE": "your-value",
"GOLDPOPCON_ACCESS_KEY": "your-value",
"GOLDPOPCON_SECRET_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
직접 입력할 값
GOLDPOPCON_MCP_ALLOW_LIVEenvtrue 면 call_api(조회 전용·production) 도구가 등록된다GOLDPOPCON_ACCESS_KEYenvcall_api 액세스 키(gpk_) 기본값 — 골드팝콘 앱에서 발급- call_api 시크릿 키(sk_) 기본값 — 로컬 서명에만 쓰인다
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
어떤 앱에서 쓸 수 있나요
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
할 수 있는 일
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 10일 점검
- ✓ 통과
제작자와 저장소 일치
레지스트리 이름이 도메인 goldpopcon.com 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
- ✓ 통과
계속 관리되고 있음
코드 마지막 변경: 10일 전
- … 아직 점검 안 함
라이선스 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- – 해당 없음
엔드포인트 응답
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
- – 해당 없음
OAuth로 로그인
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
- … 아직 점검 안 함
도구 설명에 숨겨진 지시 없음
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
개발자 도구 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 5731개 중 0%보다 스타가 많아요
- 이 카테고리의 다른 서버 5731개 중 30%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 5731개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
Openapi MCP, 안전한가요?
해당하는 기본 점검 2개 중 2개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
입력해야 할 값: GOLDPOPCON_SECRET_KEY
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 10일 전 변경됐고, 최신 버전(0.3.1)은 3개월 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: REA, Netdata, Front-End Checklist
대안
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Netdata
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
Front-End Checklist
Review frontend code and live pages against 386 quality-gated web development rules.
제작자의 README
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
@keumbang/goldpopcon-openapi-mcp
골드팝콘(금방) Open API 코딩 어시스턴트 MCP 서버. Claude Code · Claude Desktop · Codex CLI · Gemini CLI · Cursor 등 MCP 클라이언트에 붙여, 금·은 거래 API 연동 코드를 정확히 짜도록 돕는다.
### 📘 골드팝콘 Open API 문서 → [https://keumbang.github.io/goldpopcon-openapi-mcp/](https://keumbang.github.io/goldpopcon-openapi-mcp/)
엔드포인트 표 · 빠른 시작 · JWT 서명 규격 · 권한/한도 · 멱등성 · 에러 코드. 스펙에서 생성되는 공식 문서다.
요청·응답 스키마는 Redoc 에서 본다. MCP 없이 직접 연동할 사람도 여기부터 읽으면 된다.
(repo 안에서 바로 보려면 docs/index.md)
API 키 발급
Open API 키(gpk_ 액세스 키 + sk_ 시크릿 키)는 골드팝콘 앱에서만 발급된다. 웹 발급 경로는 없다.
- 골드팝콘 앱 설치 — App Store · Google Play
- 회원가입 후 앱 내 Open API 메뉴에서 키 발급
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_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(서명·한도·에러 산문).
보안:
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 fallback 은 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"].
환경변수
| 변수 | 기본 | 의미 |
|---|---|---|
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 로 경로를 지정해 갱신한다:
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