본문 바로가기
C.W.K.
Stream
Lesson 04 of 04 · published

Compatibility 매트릭스

~22 min · matrix, testing, ci, interop

Level 0호기심 많은 독자
0 XP0/48 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

남이 쓸 MCP server (나 client) 를 내보낸다면 compatibility 표 하나는 빚진 거야. 어느 protocol revision 과 어느 client 와 어느 transport 조합을 실제로 시험해봤는지 공개한 목록이지. 이 표가 정직해지는 건 칸이 두 종류이기 때문이야. 되는 걸로 확인된 칸, 그리고 안 해봤다고 대놓고 적어둔 칸. 둘 다 있어야 지원 부담이 줄어.

값 대비 가장 싼 표는 이래. Revision 은 셋 (지금 것과 그 앞의 둘), 사람들이 제일 많이 쓰는 client 셋 (Claude Desktop, Cursor, 직접 만든 host), transport 는 둘 (stdio, Streamable HTTP). 칸마다 CI 작업을 하나씩 걸어서 server 를 띄우고 끝에서 끝까지 훑어 (initialize → tool 목록 → tool 하나 호출 → 종료). 실패하는 칸은 버그고, 통과하는 칸은 약속이야.

이 표는 주의사항을 적어두기에도 좋은 자리야. "Streamable HTTP 가 Cloudflare Workers 위에서 돌긴 하는데 websocket 을 켜야 함" 같은 한 줄이, 다음 사람의 하루를 통째로 아껴주는 종류의 메모거든. README 에서 제일 쓸모 있는 절이 대개 이 표야.

Code

README 의 sample compatibility 매트릭스·markdown
| Server v1.4.0          | 2025-03-26 | 2025-06-18 | 2025-11-25 |
|------------------------|:----------:|:----------:|:----------:|
| Claude Desktop (stdio) | ✅         | ✅         | ✅         |
| Cursor (stdio)         | ✅         | ✅         | ✅         |
| Custom host (HTTP)     | ✅         | ✅         | ✅         |
| Bare HTTP+SSE          | ✅         | ⚠️ deprecated | ❌      |

Notes:
- Async tasks: 2025-11-25 host 만 (다른 곳에선 sync 로 auto-fallback).
- Sampling: host 가 `sampling` capability 광고 필요.
Revision 에 pin 한 CI smoke test·yaml
matrix:
  protocol_version: ["2025-11-25", "2025-06-18", "2025-03-26"]
  transport: ["stdio", "streamable-http"]
steps:
  - run: pytest tests/smoke.py --protocol $PROTOCOL_VERSION --transport $TRANSPORT

External links

Exercise

네가 내보내는 server 하나의 README 에 3×3×2 compatibility 표 초안을 넣어. 채울 수 있는 칸은 전부 훑어보고, 못 해본 칸은 표시해. README 를 push 해. 이 실습이 네가 진짜로 아는 칸과 그냥 잘 되겠거니 했던 칸을 갈라줘.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.