개인이 모르는 사람한테 MCP server ship 이 자기 위해 돌리기 와 다른 카테고리 작업. 아래 checklist 가 — 진짜 production 사고 막아준 — 가장 짧은 list. 어느 한 항목 skip 이 — 어느 시점에 — 누군가의 나쁜 한 주.
- Protocol revision pin 과 문서화. README + manifest + initialize 시 assertion. Spec 움직이면 명시적 업그레이드; latest 조용히 따라 X.
- Stdio server: 모든 diagnostic 을 stderr 로. Codebase audit 해
print(, library 디폴트, debugger 출력, tqdm bar. Stdout 이 wire. - HTTP server: 로컬이면 127.0.0.1 에 bind, 항상 Origin/Host 검증, TLS 뒤에서. Track 7 의 로컬 함정 optional 아님.
- OAuth scope 가 tight. 요청하는 scope 마다 미래 보안 사고 (breach 시). 동작하는 가장 작은 set 디폴트.
- Tool annotation 정직. destructiveHint, openWorldHint, idempotentHint 가 host 에 중요; 거짓말은 delisting.
- Write tool 에 append-only audit log. Observability log 와 구별. 경계에서 redact.
- 모든 외부 write 에 idempotency key. Stripe-식 (conversation/session/proposal) keyed. 네트워크 hiccup 'production 에 드물지' 않음.
- README 에 compatibility 매트릭스. Revision 셋 × top client 셋 × 두 transport. 안 테스트 셀 마크.
- 매 commit 에 CI smoke test. Server 띄우기, tool list, tool 하나 호출, shutdown. 더 정교한 거 보너스; 이 최소가 regression 90% 잡음.
- Public changelog 와 deprecation note. Spec 같은 어휘 — "1.5.0 부터 deprecated, 1.7.0 에 제거" 와 병렬 가용성.
두 번 읽어. List 길어지지 않음; 따르는 server 가 여러 해 산다. 스킵하는 server 가 — 이 quest 같은 — 전쟁 이야기 들어감.