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

Capability Manifest

~18 min · manifest, capabilities, metadata, versioning

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

실행 중에 주고받는 handshake 말고도, 제대로 된 MCP server 는 작은 manifest 를 하나 같이 내보내. 보통 pyproject.toml 이나 package.json 이고, server 이름과 버전, 진입점, 그리고 지원하겠다고 약속한 protocol revision 을 적어둬. Registry 도, package manager 도, Claude Desktop 의 'server 추가' 화면도 전부 이걸 읽어.

Metadata 에는 protocol revision 을 명시적으로 못박아. Changelog 는 짧고 정직하게 — "v1.4.0: refund_order tool 추가, protocol-version 2025-03-26 지원 중단." 나중의 너도, 업그레이드하는 다음 user 도 그 한 줄에 기대게 돼. Versioning track 의 표를 그대로 옮긴 compatibility 절도 같이 넣어두면 좋고.

Python server 는 uvuvx 로 진입점을 열어 ([project.scripts] my-server = "my_server:main"). 그러면 어느 host 든 명령 하나로 (uvx my-server) server 를 띄울 수 있고, user 는 virtualenv 를 걱정할 일이 없어. TypeScript 나 Node server 라면 npx 가 같은 자리에 있고.

Code

pyproject.toml — 진짜 manifest 모양·toml
[project]
name = "my-mcp-server"
version = "1.4.0"
description = "MCP server for orders + refunds"
authors = [{ name = "You", email = "you@example.com" }]
requires-python = ">=3.11"
dependencies = ["mcp>=0.6.0", "httpx>=0.27"]

[project.scripts]
my-mcp-server = "my_mcp_server:main"

[tool.mcp]
# 비-표준 컨벤션이지만 점점 흔해짐
protocol_versions_supported = ["2025-11-25", "2025-06-18"]
clients_tested = ["claude-desktop", "cursor", "vscode-copilot"]
uvx 통한 발견 가능 entry point·bash
# 누구나 — 글로벌 install 없이 — server 돌릴 수 있음
uvx my-mcp-server

# 또는 release pin
uvx my-mcp-server==1.4.0

External links

Exercise

네가 짠 server 에 진짜 pyproject.toml 을 써봐 — 스크립트 진입점, 명시적으로 못박은 protocol version, 시험해본 client 메모까지 넣어서. 배포하거나 그냥 uv build 만 한 다음 로컬에서 uvx 로 돌려봐. 설치 경로가 얼마나 깔끔한지, 그 자체가 이번 실습이야.

Progress

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

댓글 0

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

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