Releases: dongju93/dependency-compat-mcp
Releases · dongju93/dependency-compat-mcp
Release list
v0.2.1
Release Notes
v0.2.1
주요 내용
get_compatibility_context가 런타임 릴리스의 생애주기(릴리스 날짜와 해당 라인의 지원 종료일)를 함께 보고하도록 확장해, 라인 단위 질문에 대한 답변 품질을 높였습니다.- 상한이 열려 있던 범위에서
unknown으로 내려가던 판정을 원인별로 분리하고, SemVer 정확 핀은 상한이 닫힌 범위로 취급해 불필요한unknown을 줄였습니다. - Node.js 런타임에도 라인 표기(
22,22.11) 입력을 거절하는 규칙을 적용해, 두 런타임에서 동일한 실수가 동일하게 안내되도록 일관화했습니다.
추가
get_compatibility_context응답에lifecycle필드를 추가했습니다. 런타임 대상의 릴리스 날짜와 지원 종료 정보를 담으며, 지원 종료는 공식 일정에 날짜가 공개된 경우(published), 공개된 날짜가 없는 경우(unpublished), 일정을 읽지 못한 경우(unavailable)로 구분해 보고합니다. 패키지 대상에는 해당 정보가 없음을 나타내는null이 됩니다.- 존재하지 않는 런타임 릴리스에 대한
release_not_found응답에 해당 릴리스 라인의 존재 여부(line_exists) 상세를 추가했습니다. 잘못 입력된 패치 구성요소(3.13.99)와 존재하지 않는 라인(3.99.0)을 구분할 수 있습니다. open_upper_bound판정 원인에 다음 행동(next_actions) 안내를 제공해, 호출자가 어떤 질문으로 판정을 좁힐 수 있는지 알 수 있습니다.
변경
- 만족한 상한 열린 범위에서
unknown으로 내려가는 판정 원인을 둘로 분리했습니다. 상대 릴리스가 선언 이후에 출시된 것을 확인한 경우open_upper_bound, 공개 순서를 확인할 수 없는 경우release_order_unavailable을 보고합니다. 두 상태는 다음 행동이 다르므로 하나의 원인으로 묶지 않습니다. - SemVer 정확 핀(예:
1.2.3)은 상한이 닫힌 범위로 취급해, 더 이상open_upper_bound원인으로unknown을 만들지 않습니다. - 런타임 라인 표기 입력 거절 시 오류 메시지가 라인 단위 질문은
get_compatibility_context로 확인하도록 안내하도록 개선했습니다.
버그 수정
- 선택적인 지원 종료 일정 조회가 실패하거나 시간 초과되면, 이미 확인한 런타임 릴리스 인덱스까지 버리고 전체가
lookup_failed로 보고되던 문제를 수정했습니다. 이제 확인된 릴리스 정보는 유지되고, 일정 조회 실패는source_unavailable한계로 보고됩니다. - Node.js 런타임에
22나22.11같은 라인 표기를 입력하면 range, wildcard 또는 union 오류로 잘못 안내되던 문제를 수정했습니다. 이제 Python과 동일하게runtime_patch_required입력 오류로 안내합니다.
호환성 및 주요 변경
runtime:node대상의version은 이제 major.minor.patch 세 자리를 모두 포함해야 합니다.22.11같은 라인 표기는 입력 오류로 거절되며, 오류 메시지는 올바른 표기(22.11.0) 예시와 라인 질문을 위한 도구 안내를 함께 제공합니다. Python 런타임은 기존과 같습니다.- MCP 출력 계약에 새 판정 원인(
release_order_unavailable)과lifecycle필드가 추가되었습니다. 도구 설명문도 이를 반영해 갱신되었습니다.
보안
- 외부 공개된 보안 취약점 수정은 없습니다.
알려진 문제
- MCP
2026-07-28프로토콜을 지원하지 않는 클라이언트에서는 서버에 연결할 수 없습니다. 현재 Codex에서는 이 서버의 도구 목록 조회와 도구 호출을 지원하지 않습니다.
v0.2.0
Release Notes
v0.2.0
주요 내용
- npm 패키지 조회를 전체 packument가 아닌 정확한 버전의 매니페스트 문서 단위로 전환하여, 대형 패키지에서도 조회가 안정적으로 성공하도록 개선했습니다.
- Python 런타임 버전을 패치 구성요소까지 포함한 정확한 릴리스로 강제하고, 근거 없이
supported로 내려가던 경로를 차단해 판정의 보수성을 강화했습니다. - MCP SDK 의존성을
<2.1로 고정해 서버가 검증한 프로토콜 계약이 설치 시점에 우회되지 않도록 했습니다.
추가
- PyPI 게시 워크플로에
--check-url옵션을 추가했습니다. 내용이 동일한 재업로드는 실패 대신 건너뛰므로, 문서만 변경된 병합도 릴리스 작업을 통과합니다.
변경
- npm 어댑터가 packument 전체가 아닌 버전별 매니페스트를 조회하도록 변경했습니다.
react,typescript같은 대형 패키지에서 응답 본문 상한(5 MiB) 초과로lookup_failed / response_too_large가 나오던 문제가 해소되며, 문서가 작아져 조회 속도와 캐시 효율도 함께 좋아집니다. requires_python의 상한이 열려 있고 해당 Python 라인의 지원 종료 정보를 공식 게시처에서 확보할 수 없는 경우, 더 이상supported로 내려가지 않고unknown / insufficient_evidence(lifecycle_unavailable)를 반환하도록 판정 절차를 변경했습니다. 근거 없는 긍정 판정을 원천적으로 차단합니다.- README의 설치 및 실행 안내를 보강했습니다.
uvx를 통한 stdio 실행, HTTP 호스팅, Docker를 이용한 공개 배포 절차를 명확히 정리했습니다. - Docker 이미지의 Python 베이스를 3.14.7로 올리고, Cloud Run에서의 바인드 주소 결정 동작을 Dockerfile 주석으로 명시했습니다.
버그 수정
- Python 런타임 대상에 마이너 버전만 입력된 경우(
3.13) 릴리스 인덱스 조회 끝에서release_not_found로 돌아오던 문제를 수정했습니다. 이제 입력 경계에서runtime_patch_required입력 오류로 안내하며, 오류 메시지는 올바른 표기(3.13.7) 예시를 함께 제공합니다. - npm 매니페스트 문서가 예상한 형태와 일치하지 않으면 조회 실패가 아닌
invalid_document로 처리하도록 수정했습니다. 잘못된 문서가 빈 결과처럼 보이지 않습니다.
호환성 및 주요 변경
runtime:python대상의version은 이제 major.minor.patch 세 자리를 모두 포함해야 합니다.3.13같은 마이너 라인 표기는 입력 오류로 거절됩니다. Node.js 런타임은 기존과 같이 정확한 SemVer 릴리스를 요구합니다.mcp의존성을<2.1로 제한했습니다. 서버는 SDK의 프로토콜 버전 상수에 대한 생성 시점 검증(_pin_protocol_version())에 의존하는데, 이 상한이 없으면 설치 관리자가 사용자 대신 넓어진 SDK를 채택해 계약을 깨뜨릴 수 있습니다.
보안
- 외부 공개된 보안 취약점 수정은 없습니다.
알려진 문제
- MCP
2026-07-28프로토콜을 지원하지 않는 클라이언트에서는 서버에 연결할 수 없습니다. 현재 Codex에서는 이 서버의 도구 목록 조회와 도구 호출을 지원하지 않습니다.
v0.1.1
Release Notes
v0.1.1
주요 내용
- 두 패키지 또는 패키지와 런타임의 정확한 버전 조합을 공식 배포 정보에 근거해
supported,unsupported,unknown으로 판정합니다. - 호환성 자료를 저장소에 내장하지 않고 PyPI, npm, Python, Node.js의 공식
게시처에서 요청 시점에 직접 조회합니다. - 판정 결과에 직접 근거와 조회 내역을 함께 제공하며, 요청 처리 중 언어 모델을
사용하지 않습니다.
추가
- 두 릴리스의 호환성을 판정하는
check_compatibility도구를 추가했습니다. - 한 릴리스가 선언한 제약과 근거를 조회하는
get_compatibility_context도구를
추가했습니다. - 다음 네 가지 직접 관계를 지원합니다.
- PyPI 패키지와 Python 런타임의
requires_python - PyPI 패키지 사이의
requires_dist - npm 패키지와 Node.js 런타임의
engines.node - npm 패키지 사이의
dependencies및peerDependencies
- PyPI 패키지와 Python 런타임의
- PyPI, npm, Python, Node.js의 공식 게시처에서 패키지 메타데이터, 런타임 릴리스
목록, 지원 종료 일정을 조회하는 어댑터를 추가했습니다. - 판정 근거, 조회 출처, 제한사항, 공지, 결론을 막은 원인을 기계가 읽을 수 있는
구조로 제공합니다. 모든supported및unsupported판정은
verdict_evidence_ids를 통해 직접 근거와 연결됩니다. - stdio와 상태를 저장하지 않는 Streamable HTTP 전송(
/mcp)을 추가했습니다. - 로컬 실행과 Cloud Run 배포를 위한 CLI 및 비루트 Docker 이미지를 추가했습니다.
- PyPI Trusted Publishing, 배포 아티팩트 검증, 패키지 메타데이터 검증을 포함한
릴리스 자동화 흐름을 추가했습니다.
변경
- 런타임 릴리스와 지원 종료 정보를 저장소의 정적 데이터가 아닌 공식 게시처에서
요청 시점에 조회하도록 변경했습니다. 새 Python 및 Node.js 릴리스를 저장소
업데이트 없이 확인할 수 있습니다. - 패키지 버전과 MCP 서버 버전이 달라지지 않도록 서버 버전을 설치된 배포판
메타데이터에서 가져오도록 변경했습니다. - 근거 부족, 근거 상충, 공식 출처 조회 실패를 임의의 결론으로 바꾸지 않고
구조화된 원인이 포함된unknown으로 반환하도록 판정 절차를 강화했습니다.
버그 수정
tools/list입력 스키마에서 도구 인수의 자료형과 역할 설명이$ref뒤에
감춰지던 문제를 수정했습니다.$ref를 해석하지 않는 MCP 클라이언트도 각 인수의
객체 스키마와 설명을 직접 확인할 수 있습니다.- 출력 스키마의 루트 판별자와
oneOf가$ref뒤에 감춰지던 문제를 수정하여,
전송된 스키마만으로 결과 변형을 식별할 수 있게 했습니다.
호환성 및 주요 변경
- 서버 실행에는 Python 3.14 이상이 필요합니다.
- MCP 클라이언트는
2026-07-28프로토콜 개정판을 지원해야 합니다. 이전
개정판으로 자동 전환하지 않습니다. - 입력은 정확한 릴리스 버전만 허용합니다. 버전 범위,
v접두사, 임의 URL,
저장소 경로, lockfile은 입력으로 받을 수 없습니다. - 지원하는 관계와 입력 형식 안에서 이전 공개 릴리스와 호환되지 않는 변경은
없습니다.
지원 중단 예정
해당 없음.
제거
- 저장소에 포함하던 호환성 자료, 런타임 릴리스 스냅샷, 생성 스크립트를
제거했습니다. 공식 게시처에서 요청 시점에 자료를 가져오는 방식으로
대체했습니다. - 구현하지 않는 MCP prompts 및 resources 기능을 공개 capability에서 제거했습니다.
보안
- MCP
2026-07-28만 허용하고 이전 프로토콜로의 자동 전환을 거부합니다. - 정의되지 않은 최상위 및 중첩 입력 필드를 모두 거부하고, 공개 입력 스키마에도
additionalProperties: false를 적용했습니다. - 외부 요청 대상을 공식 게시처 여섯 곳으로 제한하고 모든 리다이렉트 대상도 같은
기준으로 다시 검증합니다. - 외부 요청의 시간과 응답 크기에 상한을 두고 HTTP 요청 본문을 4 MiB로
제한했습니다. - HTTP 전송에 Host/Origin 검증과 엄격한 HTTPS 공개 기준 주소 검증을 적용했습니다.
- 공개된 보안 취약점 수정은 없습니다.
알려진 문제
- MCP
2026-07-28을 지원하지 않는 클라이언트에서는 서버에 연결할 수 없습니다.
현재 Codex에서는 이 서버의 도구 목록 조회와 도구 호출을 지원하지 않습니다.