45 lines
4.7 KiB
Markdown
45 lines
4.7 KiB
Markdown
---
|
|
title: MCP 2026-07-28 신규 스펙 검토 — 자체 운영 서버 3종 영향 평가
|
|
updated: 2026-07-28
|
|
tags: [history, mcp, dev]
|
|
---
|
|
|
|
## 배경
|
|
|
|
MCP(Model Context Protocol) 사상 최대 개정판 `2026-07-28` 리비전 진행 중. **2026-07-28 시점 확인 결과 아직 Release Candidate 단계** — RC는 2026-05-21 lock, GitHub 릴리즈 태그 `2026-07-28-RC`(2026-05-29 게시)도 RC로 명시. 공식 블로그는 "정식 스펙은 2026-07-28에 발표 예정(ships on)"이라고만 되어 있고, 조사 시점 기준 정식(final/stable) 태그로 전환됐다는 근거는 확인 안 됨 — SDK도 전부 beta 라벨 유지. ⚠️ 정식 전환 여부는 추후 재확인 필요.
|
|
|
|
핵심 변경(RC 기준): stateful → **stateless 프로토콜 코어** 전환, Extensions 프레임워크 신설, Tasks가 실험 코어 기능에서 Extension으로 이관, MCP Apps(서버 렌더링 UI) 추가, Authorization 강화(RFC 9207 `iss` 검증 등), **Roots/Sampling/Logging 3개 기능 deprecated**(annotation-only, 1년간 동작 유지). 공식 발표: [Model Context Protocol Blog — 2026-07-28 Release Candidate](https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/), [GitHub Releases](https://github.com/modelcontextprotocol/modelcontextprotocol/releases)
|
|
|
|
## 조사 대상: 자체 운영 MCP 서버 3종
|
|
|
|
| 서버 | 소유 | 소스 | Transport | SDK | Deprecated 기능(Sampling/Roots/Logging) 사용 |
|
|
|------|------|------|-----------|-----|------|
|
|
| **incus-mcp** (`@ironclads/incus-mcp`) | 직접 작성·npm 퍼블리시 (kappa.andromeda) | (npm 패키지, gitea `kaffa/incus-mcp`) | stdio (로컬 프로세스) | `@modelcontextprotocol/sdk ^1.30.0` (2026-07-28 v0.1.8로 업그레이드 완료, ~~^0.6.0~~) | 미사용 |
|
|
| **bunnycdn-mcp** | 직접 작성 (Python FastMCP) | `gitea.inouter.com/kaffa/bunnycdn-mcp` | streamable-http | `mcp[cli]>=1.0.0` | 미사용 |
|
|
| **vault-mcp-server** (jp1 `/usr/local/bin/vault-mcp-server`) | **제3자 Go 바이너리** — kaffa gitea에 소스 없음 | 불명(외부 프로젝트, 다운로드 설치분으로 추정) | streamable-http | 불명 | 확인 불가 |
|
|
|
|
## 판단 (2026-07-28 시점)
|
|
|
|
- 신규 스펙은 아직 RC 단계(정식 전환 여부 미확인)이고 SDK가 전부 베타 → **즉시 업그레이드 불필요**, RC→final 전환 및 SDK GA 확인 후 재검토.
|
|
- 자체 작성한 incus-mcp·bunnycdn-mcp 모두 deprecated 기능(Sampling/Roots/Logging) 미사용 → deprecation 자체로는 영향 없음.
|
|
- incus-mcp는 stdio 전용이라 이번 개정 핵심(stateless HTTP 전환)과 애초에 무관. SDK 0.6.0이 오래된 건 별개 이슈(신규 스펙과 무관하게 언젠가 1.x로 갱신 권장, 급하지 않음).
|
|
- bunnycdn-mcp가 셋 중 유일하게 stateless 전환의 실질 대상(자체 소스 보유 + streamable-http). SDK v2 GA 이후 `FastMCP → MCPServer` 임포트 경로 변경 정도로 마이그레이션 부담 작을 것으로 예상.
|
|
- vault-mcp-server는 소스 미보유 → 직접 수정 불가, 업스트림 릴리스 여부 추적 필요.
|
|
|
|
## Next Action
|
|
|
|
- [ ] MCP 스펙 RC → final 전환 여부 재확인 (blog.modelcontextprotocol.io, GitHub releases)
|
|
- [ ] MCP 공식 SDK GA(정식) 릴리스 공지 확인 후 bunnycdn-mcp 마이그레이션 재검토
|
|
- [ ] vault-mcp-server 업스트림 프로젝트/저장소 출처 확인 (현재 불명 — 재설치 시 참고용으로 파악 필요)
|
|
- [x] incus-mcp SDK 0.6.0 → 1.30.0 갱신 (2026-07-28 완료, 신규 스펙과 무관한 별도 유지보수 항목)
|
|
|
|
## 2026-07-28 후속: incus-mcp SDK 업그레이드 실행
|
|
|
|
`@modelcontextprotocol/sdk` `^0.6.0` → `^1.30.0`, `zod` `^3.23.8` → `^3.25.76`로 업그레이드(zod 4.x는 아직 채택 안 함 — peer dep `^3.25 || ^4.0` 충족하면서 3.x 라인 유지로 마이그레이션 리스크 최소화). 기존 저수준 `Server`/`StdioServerTransport`/`types.js` API 시그니처가 신버전에서도 동일해 코드 변경 없이 호환.
|
|
|
|
- 검증: `npm run build` 성공, `test/simple-test.js`·`test/resource-test.js` 실제 incus 데몬(로컬 19개 인스턴스, remotes 9개) 대상 전체 통과, `npx @ironclads/incus-mcp@latest` 스모크 테스트 정상 기동
|
|
- gitea `kaffa/incus-mcp` 커밋 `1e67069` 푸시 완료
|
|
- npm `@ironclads/incus-mcp@0.1.8` 배포 완료 (`dist-tags.latest`)
|
|
- **npm 배포 토큰을 Vault `secret/apps/npm` (`api_token`)에 신규 저장** — 이전에는 Vault에 npm 토큰이 없어 `~/.npmrc`의 만료 토큰으로 401 발생, 이번에 정식 등록. 배포 시 웹 기반 OTP 승인 필요(계정 2FA).
|
|
- `.mcp.json`의 `incus` 서버는 `npx -y @ironclads/incus-mcp@latest` 방식이라 별도 설정 변경 불필요, 다음 세션부터 자동으로 0.1.8 사용
|