MCP-OpenAPI
OpenAPI 사양의 HTTP 메서드를 도구로 공개하는 모델 컨텍스트 프로토콜 서버입니다.
[!경고] 이것은 개념 증명이며 아직 완전히 테스트되고 문서화되지 않았습니다.
용법
각 MCP-OpenAPI 서버는 단일 OpenAPI 사양의 작업을 노출합니다. 여러 인스턴스를 실행하여 여러 사양을 노출할 수 있습니다.
이 패키지는 PyPI @ [ mcp-openapi ][pypi]에서 사용할 수 있습니다. uvx mcp-openapi --openapi-url https://httpbin.org/spec.json (sse | stdio) 사용하여 서버를 시작할 수 있습니다.
Claude 구성의 예(포트 8000에서 fastapi dev tests/todos.py 실행하는 동안):
지엑스피1
OpenAPI URL은 MCP_OPENAPI_URL 환경 변수로도 전달될 수 있습니다.
SSE로 실행하는 경우 다음을 사용하여 서버를 구성할 수 있습니다.
--fastmcp-sse-host- MCP 서버를 제공할 호스트--fastmcp-sse-port- MCP 서버를 제공할 포트
추가적인 글로벌 옵션은 다음과 같습니다.
--fastmcp-debug- MCP 서버에 대한 디버그 모드를 활성화합니다.--fastmcp-log-level- MCP 서버의 로그 수준
FASTMCP_ 접두사를 사용하는 환경 변수를 통해 구성할 수도 있습니다(예: FASTMCP_LOG_LEVEL=DEBUG .
작동 원리
MCP-OpenAPI 서버는 OpenAPI 사양 URL로 초기화됩니다.
서버는 OpenAPI 사양을 가져와서 구문 분석하고 각 경로 작업을 도구로 등록합니다.
등록된 도구로 FastMCP 서버가 시작됩니다.
클라이언트가 도구를 요청하면 MCP 서버는 API에 HTTP 요청을 하고 응답을 반환합니다.
지원되는 OpenAPI/Swagger 버전
스웨거 2.0 | 오픈API 3.0 | 오픈API 3.1 |
:엑스: | :굵은 체크 표시: | :굵은 체크 표시: |
이 패키지는 JSON 및 YAML 형식의 OpenAPI 3.0 및 3.1 사양을 지원합니다.
우리는 내부적으로 openapi-parser를 사용하고 있는데, 꽤 포괄적인 듯하고 외부 사양에 대한 참조를 해결하는 것을 지원합니다.
향후 구성 옵션
[!INFO] 아직 구현되지 않았습니다.
엔드포인트 제한
기본적으로 모든 엔드포인트는 도구로 노출됩니다. 노출되는 엔드포인트를 제한할 수 있습니다.
경로 패턴으로,
HTTP 방식으로,
노출할 개별 작업을 명시적으로 나열합니다.
OpenAPI 태그를 사용하여 경로를 선택합니다.
API 인증 처리
MCP-OpenAPI는 대상 API에 API 요청을 보냅니다. 이때 글로벌 인증 토큰을 사용할 수 있습니다.
--auth-token- OpenAPI 사양에 따라 사용되는 전달자 토큰 또는 base64 형식의 기본 자격 증명입니다.
다양한 인증 토큰(예: 클라이언트 사용자별)을 사용하여 요청을 할 수 있으면 좋겠지만, LLM이 토큰을 볼 수 없으면 안 됩니다. 아직은 미정입니다.