seoul-opendata-mcp: Command for Claude Code

.claude/commands/deploy.md

deploy is a command for Claude Code from whchoi98/seoul-opendata-mcp. It costs 20 tokens per session (1,086 once invoked), scanned A, original, MIT.

A deployment command for the seoul-opendata-mcp project, an MCP server that connects to Seoul's public-data API.

In plain words
What is it for?
Use it to prepare, build, bundle, and smoke-test a deployment of this MCP server.
Why use it?
It checks tests, versions, secrets, build output, and the packaged server before release, including a live API test and a startup check.

Command for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

This is whchoi98/seoul-opendata-mcp's own configuration. It tells Claude Code how to work on seoul-opendata-mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything seoul-opendata-mcp configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is | node dist/index.js | tail -1 | grep -o '"name"' | wc -l # 19이어야 함.

Reuse

Borrowing it

Nothing to install: this file belongs to whchoi98/seoul-opendata-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/whchoi98/seoul-opendata-mcp/main/.claude/commands/deploy.md
Clone the repo
git clone --depth 1 https://github.com/whchoi98/seoul-opendata-mcp

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for deploy

README.md
[![agentmods](https://agentmods.dev/badge/commands/whchoi98/seoul-opendata-mcp/deploy/github.svg)](https://agentmods.dev/commands/whchoi98/seoul-opendata-mcp/deploy)
Your own site
<a href="https://agentmods.dev/commands/whchoi98/seoul-opendata-mcp/deploy"><img src="https://agentmods.dev/badge/commands/whchoi98/seoul-opendata-mcp/deploy/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for deploy

Your own site · 80×15
<a href="https://agentmods.dev/commands/whchoi98/seoul-opendata-mcp/deploy"><img src="https://agentmods.dev/badge/commands/whchoi98/seoul-opendata-mcp/deploy.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 20 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,086 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00020 $0.01086
Opus 5 $0.00010 $0.00543
Sonnet 5 $0.00004 $0.00217
Haiku 4.5 $0.00002 $0.00109

Measured 9d ago against content hash 0e0ca265792b, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

deploy scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/commands/deploy.md · 122 lines

How it starts

The opening of the file, as written. The whole thing — 122 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Deploy

애플리케이션을 빌드하고 배포합니다.

Step 1: 배포 전 체크

  1. 워킹 트리가 깨끗한지 확인: git status
  2. 현재 브랜치 확인 (main이 아니면 경고)
  3. 모든 테스트 통과 확인: npm test
  4. 배포 runbook 확인: ls docs/runbooks/deploy-*.md

Step 2: 배포 전 준비 (seoul-opendata-mcp 특화)

버전 동기화 확인

배포 전 3곳 버전이 일치해야 합니다:

  • package.json의 version 필드
  • manifest.json의 version 필드
  • README.md / README.ko.md의 버전 참조

Live 테스트 실행 (권장)

RUN_LIVE=true npm test

실제 Seoul Open Data API 응답으로 엔드투엔드 검증합니다.

API 키 마스킹 확인

배포되는 코드에 다음이 없는지 확인:

  • 하드코딩된 SEOUL_API_KEY 또는 SEOUL_SUBWAY_API_KEY
  • .env 파일 커밋
  • 테스트 출력에서의 실제 키

Step 3: 빌드 및 번들

npm run build
npm run bundle

빌드 결과 확인:

  • dist/ 디렉토리 생성
  • seoul-opendata-mcp.mcpb 파일 생성 (MCPB 번들)

번들 실행 스모크 (필수 — 파일 존재 확인만으로는 부족): 번들을 임시 디렉토리에 언팩한 뒤 실제로 실행해 tools/list가 19개를 반환하는지 확인한다. v0.2.0에서 .mcpbignore의 비앵커 src/ 패턴이 의존성 내부 node_modules/*/src/까지 제거해, 파일 검사는 통과했지만 실행 즉시 죽는 번들이 배포된 사례가 있다(ignore 패턴은 반드시 /src/처럼 루트 앵커로 쓸 것).

npx @anthropic-ai/mcpb unpack seoul-opendata-mcp.mcpb /tmp/bundle-smoke
cd /tmp/bundle-smoke && printf '%s\n' \
 '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
 '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
 '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
 | node dist/index.js | tail -1 | grep -o '"name"' | wc -l   # 19이어야 함

Step 4: npm에 발행

npm publish

발행이 성공하면:

  • npm 레지스트리에 패키지 업로드
  • git 태그 푸시 (리포지토리 관리자가 수행)

Step 5: 검증

배포 후:

  • npm 페이지 확인: https://www.npmjs.com/package/seoul-opendata-mcp
  • MCPB 번들 크기 확인 (이상적: <5MB)
  • 설치 테스트: npm install -g seoul-opendata-mcp

Step 6: 요약

표시합니다:

  • 배포된 것과 장소
  • 사용된 배포 방법
  • 검증 결과
  • 배포 runbook이 없으면 생성을 제안

Error Recovery

Step 1 배포 전 체크 실패 시

git stash -u                  # 커밋되지 않은 변경사항 임시 저장
git checkout main             # main 브랜치로 전환

Step 2 버전 동기화 오류 시

# 현재 버전 확인
npm pkg get version

# 모든 파일이 같은 버전을 가지도록 수정
# package.json, manifest.json, README.md, README.ko.md

Read the full file on GitHub · 122 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 122 lines · 20 tokens per session scan A 0e0ca265792b

Subscribe to this mod's changes

deploy is a command published in the GitHub repository whchoi98/seoul-opendata-mcp (1 stars, last pushed 24d ago), licensed MIT. It adds 20 tokens to every session and 1,086 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.