remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Allows managing Fly.io machines through API integration, enabling operations like machine creation and management through MCP tools
Provides API integration for Render's hosting infrastructure, allowing management of services and maintenance operations
Enables interaction with Slack's API to perform operations like posting messages, retrieving user information, and listing conversations
mcp-openapi-proxy
mcp-openapi-proxy는 OpenAPI 사양에 정의된 REST API를 MCP 도구로 동적으로 노출하도록 설계된 MCP(Model Context Protocol) 서버를 구현하는 Python 패키지입니다. 이를 통해 OpenAPI 기반 API를 MCP 기반 워크플로에 원활하게 통합할 수 있습니다.
목차
개요
이 패키지는 두 가지 작동 모드를 제공합니다.
- 저수준 모드(기본값): OpenAPI 문서에 지정된 모든 유효한 API 엔드포인트에 해당하는 도구를 동적으로 등록합니다(예:
/chat/completions``chat_completions()
가 됨). - FastMCP 모드(간단 모드): 정적 구성을 기반으로 미리 정의된 도구 세트(예:
list_functions()
및call_function()
)를 노출하여 간소화된 접근 방식을 제공합니다.
특징
- 동적 도구 생성: OpenAPI 엔드포인트 정의에서 자동으로 MCP 도구를 생성합니다.
- 간단 모드 옵션: FastMCP 모드를 통해 정적 구성 대안을 제공합니다.
- OpenAPI 사양 지원: OpenAPI v3와 호환되며 v2도 지원할 수 있습니다.
- 유연한 필터링: 경로 또는 기타 기준에 따른 허용 목록을 통해 엔드포인트 필터링을 허용합니다.
- 페이로드 인증: JMESPath 표현식을 통한 사용자 정의 인증을 지원합니다(예: HTTP 헤더가 아닌 페이로드에서 토큰을 기대하는 Slack과 같은 API).
- 헤더 인증:
API_KEY
에 대해 기본적으로Bearer
Authorization 헤더에 사용하며, Fly.io와 같이Api-Key
필요한 API에 대해 사용자 정의가 가능합니다. - MCP 통합: REST API를 도구로 호출하기 위해 MCP 생태계와 원활하게 통합됩니다.
설치
다음 명령을 사용하여 PyPI에서 직접 패키지를 설치하세요.
지엑스피1
MCP 생태계 통합
mcp-openapi-proxy를 MCP 생태계에 통합하려면 mcpServers
설정에서 구성하세요. 다음은 일반적인 예입니다.
특정 API에 맞춰진 실제 구성은 아래의 예제 섹션을 참조하세요.
작동 모드
FastMCP 모드(간단 모드)
- 활성화: 환경 변수
OPENAPI_SIMPLE_MODE=true
설정합니다. - 설명: 코드에 정의된 특정 OpenAPI 엔드포인트에서 파생된 고정된 도구 세트를 노출합니다.
- 구성: 환경 변수를 사용하여 도구 동작을 지정합니다.
저수준 모드(기본값)
- 설명: 제공된 OpenAPI 사양에서 모든 유효한 API 엔드포인트를 개별 도구로 자동 등록합니다.
- 도구 명명: 정규화된 OpenAPI 경로와 메서드에서 도구 이름을 파생합니다.
- 동작: OpenAPI 작업 요약 및 설명에서 도구 설명을 생성합니다.
환경 변수
OPENAPI_SPEC_URL
: (필수) OpenAPI 사양 JSON 파일의 URL(예:https://example.com/spec.json
또는file:///path/to/local/spec.json
)입니다.OPENAPI_LOGFILE_PATH
: (선택 사항) 로그 파일 경로를 지정합니다.OPENAPI_SIMPLE_MODE
: (선택 사항) FastMCP 모드를 활성화하려면true
로 설정합니다.TOOL_WHITELIST
: (선택 사항) 도구로 노출할 엔드포인트 경로의 쉼표로 구분된 목록입니다.TOOL_NAME_PREFIX
: (선택 사항) 모든 도구 이름에 붙일 접두사입니다.API_KEY
: (선택 사항) 기본적으로 Authorization 헤더에Bearer <API_KEY>
로 전송되는 API에 대한 인증 토큰입니다.API_AUTH_TYPE
: (선택 사항) 기본Bearer
Authorization 헤더 유형(예: GetZep의Api-Key
)을 재정의합니다.STRIP_PARAM
: (선택 사항) 원치 않는 매개변수(예: Slack의token
)를 제거하기 위한 JMESPath 표현식입니다.DEBUG
: (선택 사항) "true", "1" 또는 "yes"로 설정하면 자세한 디버그 로깅을 활성화합니다.EXTRA_HEADERS
: (선택 사항) 나가는 API 요청에 첨부할 "헤더: 값" 형식의 추가 HTTP 헤더(한 줄에 하나씩).SERVER_URL_OVERRIDE
: (선택 사항) 설정된 경우 OpenAPI 사양의 기본 URL을 재정의하며 사용자 정의 배포에 유용합니다.TOOL_NAME_MAX_LENGTH
: (선택 사항) 도구 이름을 최대 길이로 자릅니다.- 추가 변수:
OPENAPI_SPEC_URL_<hash>
– 테스트별 고유한 구성에 대한 변형(OPENAPI_SPEC_URL
로 대체). IGNORE_SSL_SPEC
: (선택 사항) OpenAPI 사양을 가져올 때 SSL 인증서 검증을 비활성화하려면true
로 설정합니다.IGNORE_SSL_TOOLS
: (선택 사항) 도구에서 만든 API 요청에 대한 SSL 인증서 검증을 비활성화하려면true
로 설정합니다.
예시
테스트를 위해 예시에서 보여준 것처럼 uvx 명령을 실행한 다음 JSON-RPC 메시지를 통해 MCP 서버와 상호 작용하여 도구와 리소스를 나열할 수 있습니다. 아래 "JSON-RPC 테스트" 섹션을 참조하세요.
Glama 예시
Glama는 OPENAPI_SPEC_URL
환경 변수만 필요로 하는 mcp-openapi-proxy에 대한 최소 구성을 제공합니다. 이러한 단순성은 빠른 테스트에 이상적입니다.
1. OpenAPI 사양 확인
Glama OpenAPI 사양을 검색합니다.
응답이 유효한 OpenAPI JSON 문서인지 확인하세요.
2. Glama에 대한 mcp-openapi-proxy 구성
MCP 생태계 설정에 다음 구성을 추가하세요.
3. 테스트
서비스를 시작하려면 다음을 사용하세요.
그런 다음 리소스와 도구를 나열하는 방법에 대한 지침은 JSON-RPC 테스트 섹션을 참조하세요.
Fly.io 예제
Fly.io는 머신 관리를 위한 간단한 API를 제공하므로 이상적인 시작점입니다. Fly.io 설명서 에서 API 토큰을 받으세요.
1. OpenAPI 사양 확인
Fly.io OpenAPI 사양을 검색합니다.
응답이 유효한 OpenAPI JSON 문서인지 확인하세요.
2. Fly.io에 대한 mcp-openapi-proxy 구성
MCP 생태계 구성을 업데이트하세요.
- OPENAPI_SPEC_URL : Fly.io OpenAPI 사양을 가리킵니다.
- API_KEY : Fly.io API 토큰(
<your_flyio_token_here>
를 대체). - API_AUTH_TYPE : Fly.io의 헤더 기반 인증을 위한
Api-Key
로 설정합니다(기본Bearer
재정의함).
3. 테스트
서비스를 시작한 후 JSON-RPC 테스트 섹션을 참조하여 리소스와 도구를 나열하는 방법에 대한 지침을 확인하세요.
렌더링 예제
Render는 API를 통해 관리할 수 있는 인프라 호스팅을 제공합니다. 제공된 구성 파일 examples/render-claude_desktop_config.json
은 최소한의 설정으로 MCP 생태계를 빠르게 설정하는 방법을 보여줍니다.
1. OpenAPI 사양 확인
Render OpenAPI 사양을 검색합니다.
응답이 유효한 OpenAPI 문서인지 확인하세요.
2. Render를 위해 mcp-openapi-proxy를 구성합니다.
MCP 생태계 설정에 다음 구성을 추가하세요.
3. 테스트
렌더 구성으로 프록시를 시작합니다.
그런 다음 리소스와 도구를 나열하는 방법에 대한 지침은 JSON-RPC 테스트 섹션을 참조하세요.
슬랙 예시
Slack API는 JMESPath를 사용하여 불필요한 토큰 페이로드를 제거하는 방법을 보여줍니다. Slack API 문서 에서 봇 토큰을 받으세요.
1. OpenAPI 사양 확인
Slack OpenAPI 사양을 검색합니다.
유효한 OpenAPI JSON 문서인지 확인하세요.
2. Slack에 대한 mcp-openapi-proxy 구성
구성을 업데이트하세요:
- OPENAPI_SPEC_URL : Slack의 OpenAPI 사양 URL입니다.
- TOOL_WHITELIST : 도구를 유용한 엔드포인트 그룹(예: 채팅, 대화, 사용자)으로 제한합니다.
- API_KEY : Slack 봇 토큰(예:
xoxb-...
,<your_slack_bot_token>
대체). - STRIP_PARAM : 요청 페이로드에서 토큰 필드를 제거합니다.
- TOOL_NAME_PREFIX : 도구 이름 앞에
slack_
붙입니다.
3. 테스트
서비스를 시작한 후 JSON-RPC 테스트 섹션을 참조하여 리소스와 도구를 나열하는 방법에 대한 지침을 확인하세요.
GetZep 예제
GetZep은 자세한 엔드포인트를 제공하는 메모리 관리용 무료 클라우드 API를 제공합니다. GetZep은 공식 OpenAPI 사양을 제공하지 않았기 때문에, 이 프로젝트에는 편의를 위해 GitHub에 생성된 사양이 포함되어 있습니다. 사용자는 마찬가지로 모든 REST API에 대한 OpenAPI 사양을 생성하여 로컬에서 참조할 수 있습니다(예: file:///path/to/spec.json
). GetZep 설명서 에서 API 키를 받으세요.
1. OpenAPI 사양 확인
프로젝트에서 제공한 GetZep OpenAPI 사양을 검색합니다.
유효한 OpenAPI JSON 문서인지 확인하세요. 또는 직접 사양을 생성하고 file://
URL을 사용하여 로컬 파일을 참조할 수도 있습니다.
2. GetZep에 대한 mcp-openapi-proxy 구성
구성을 업데이트하세요:
- OPENAPI_SPEC_URL : 프로젝트에서 제공하는 GetZep Swagger 사양을 가리킵니다(또는 로컬 파일의 경우
file:///path/to/your/spec.json
사용). - TOOL_WHITELIST :
/sessions
엔드포인트에 대한 제한입니다. - API_KEY : GetZep API 키.
- API_AUTH_TYPE : 헤더 기반 인증을 위해
Api-Key
사용합니다. - TOOL_NAME_PREFIX : 도구 이름 앞에
zep_
붙입니다.
3. 테스트
서비스를 시작한 후 JSON-RPC 테스트 섹션을 참조하여 리소스와 도구를 나열하는 방법에 대한 지침을 확인하세요.
Virustotal 예시
이 예제에서는 다음 사항을 보여줍니다.
- YAML OpenAPI 사양 파일 사용
- 사용자 정의 HTTP 인증 헤더 "x-apikey" 사용
1. OpenAPI 사양 확인
Virustotal OpenAPI 사양을 검색합니다.
응답이 유효한 OpenAPI YAML 문서인지 확인하세요.
2. Virustotal에 대한 mcp-openapi-proxy 구성
MCP 생태계 설정에 다음 구성을 추가하세요.
주요 구성 포인트:
- 기본적으로 프록시는 JSON 사양을 기대하고 Bearer 접두사와 함께 API 키를 보냅니다.
- YAML OpenAPI 사양을 사용하려면
OPENAPI_SPEC_FORMAT="yaml"
포함하세요. - 참고: VirusTotal에는 특별한 인증 헤더가 필요합니다. EXTRA_HEADERS는 API 키를 "x-apikey: ${VIRUSTOTAL_API_KEY}"로 전송하는 데 사용됩니다.
3. 테스트
Virustotal 구성으로 프록시를 시작합니다.
서비스를 시작한 후 리소스와 도구를 나열하는 방법에 대한 지침은 JSON-RPC 테스트 섹션을 참조하세요.
개념 예제
Notion API는 HTTP 헤더를 통해 특정 버전을 지정해야 합니다. 이 예제에서는 EXTRA_HEADERS
환경 변수를 사용하여 필요한 헤더를 포함하고 OpenAPI 사양을 확인하는 데 중점을 둡니다.
1. OpenAPI 사양 확인
Notion OpenAPI 사양을 검색합니다.
응답이 유효한 YAML 문서인지 확인하세요.
2. Notion에 대한 mcp-openapi-proxy 구성
MCP 생태계 설정에 다음 구성을 추가하세요.
3. 테스트
Notion 구성으로 프록시를 시작합니다.
서비스를 시작한 후 리소스와 도구를 나열하는 방법에 대한 지침은 JSON-RPC 테스트 섹션을 참조하세요.
아사나 예시
Asana는 작업 공간, 작업, 프로젝트 및 사용자 관리를 위한 다양한 엔드포인트를 제공합니다. 통합 테스트는 GET /workspaces
, GET /tasks
, GET /projects
와 같은 엔드포인트의 사용법을 보여줍니다.
1. OpenAPI 사양 확인
Asana OpenAPI 사양을 검색합니다.
응답이 유효한 YAML(또는 JSON) 문서인지 확인하세요.
2. Asana에 대한 mcp-openapi-proxy 구성
MCP 생태계 설정에 다음 구성을 추가하세요.
참고: 대부분의 Asana API 엔드포인트에는 인증이 필요합니다. 환경 파일이나 .env
파일에 유효한 토큰을 사용하여 ASANA_API_KEY
설정하세요.
3. 테스트
서비스를 시작하려면 다음을 사용하세요.
그런 다음 MCP 생태계를 사용하여 /dcim/devices/
및 /ipam/ip-addresses/
와 같은 엔드포인트에 대한 도구를 나열하고 호출할 수 있습니다.
APIs.guru 예제
APIs.guru는 수천 개의 공개 API에 대한 OpenAPI 정의 디렉터리를 제공합니다. 이 예제에서는 mcp-openapi-proxy를 사용하여 APIs.guru 디렉터리를 MCP 도구로 노출하는 방법을 보여줍니다.
1. OpenAPI 사양 확인
APIs.guru OpenAPI 사양을 검색합니다.
응답이 유효한 OpenAPI YAML 문서인지 확인하세요.
2. APIs.guru에 대한 mcp-openapi-proxy 구성
MCP 생태계 설정에 다음 구성을 추가하세요.
3. 테스트
서비스를 시작하려면 다음을 사용하세요.
그런 다음 MCP 생태계를 사용하여 APIs.guru 디렉토리에 정의된 listAPIs
, getMetrics
, getProviders
와 같은 도구를 나열하고 호출할 수 있습니다.
NetBox 예시
NetBox는 오픈소스 IP 주소 관리(IPAM) 및 데이터 센터 인프라 관리(DCIM) 도구입니다. 이 예제에서는 mcp-openapi-proxy를 사용하여 NetBox API를 MCP 도구로 노출하는 방법을 보여줍니다.
1. OpenAPI 사양 확인
NetBox OpenAPI 사양을 검색합니다.
응답이 유효한 OpenAPI YAML 문서인지 확인하세요.
2. NetBox에 대한 mcp-openapi-proxy 구성
MCP 생태계 설정에 다음 구성을 추가하세요.
참고: 대부분의 NetBox API 엔드포인트에는 인증이 필요합니다. 환경 파일이나 .env
파일에 유효한 토큰을 사용하여 NETBOX_API_KEY
설정하세요.
3. 테스트
서비스를 시작하려면 다음을 사용하세요.
그런 다음 MCP 생태계를 사용하여 /dcim/devices/
및 /ipam/ip-addresses/
와 같은 엔드포인트에 대한 도구를 나열하고 호출할 수 있습니다.
Box API 예제
자체 개발자 토큰을 사용하여 Box 플랫폼 API를 통합하면 Box 계정에 대한 인증된 액세스를 얻을 수 있습니다. 이 예시에서는 Box API 엔드포인트를 MCP 도구로 노출하는 방법을 보여줍니다.
구성 예시: examples/box-claude_desktop_config.json
.env
에서 Box 개발자 토큰을 환경 변수로 설정합니다.Copy- 또는 한 줄로 프록시를 실행합니다.Copy
이제 MCP 에코시스템을 사용하여 Box API 도구를 나열하고 호출할 수 있습니다. 통합 테스트는 tests/integration/test_box_integration.py
참조하세요.
WolframAlpha API 예제
인증된 액세스를 위해 자체 앱 ID를 사용하여 WolframAlpha API를 통합할 수 있습니다. 이 예제는 WolframAlpha API 엔드포인트를 MCP 도구로 노출하는 방법을 보여줍니다.
구성 예시: examples/wolframalpha-claude_desktop_config.json
.env
에서 WolframAlpha 앱 ID를 환경 변수로 설정합니다.Copy- 또는 한 줄로 프록시를 실행합니다.Copy
이제 MCP 생태계를 사용하여 WolframAlpha API 도구를 나열하고 호출할 수 있습니다. 통합 테스트는 tests/integration/test_wolframalpha_integration.py
참조하세요.
문제 해결
JSON-RPC 테스트
다른 테스트 방법으로는 JSON-RPC를 통해 MCP 서버와 상호 작용할 수 있습니다. 서버를 시작한 후 다음 초기화 메시지를 붙여넣으세요.
예상 응답:
그런 다음 다음의 후속 메시지를 붙여넣습니다.
- OPENAPI_SPEC_URL이 누락되었습니다. 유효한 OpenAPI JSON URL이나 로컬 파일 경로로 설정되어 있는지 확인하세요.
- 잘못된 사양: OpenAPI 문서가 표준을 준수하는지 확인하세요.
- 도구 필터링 문제:
TOOL_WHITELIST
원하는 엔드포인트와 일치하는지 확인합니다. - 인증 오류:
API_KEY
와API_AUTH_TYPE
이 올바른지 확인하세요. - 로깅: 자세한 출력을 stderr에 표시하려면
DEBUG=true
설정합니다. - 테스트 서버: 직접 실행:
특허
This server cannot be installed
OpenAPI에서 설명하는 REST API를 MCP 워크플로에 통합하여 API 엔드포인트를 MCP 도구로 동적으로 노출할 수 있는 Python 기반 MCP 서버입니다.
- Table of Contents
- Overview
- Features
- Installation
- Modes of Operation
- Environment Variables
- Examples
- Troubleshooting
- License
Related Resources
Appeared in Searches
- How to handle REST APIs
- Making API documentation usable for LLMs
- Troubleshooting 'fetch 中stdio启用失败' Error
- Developing AI-Powered Mobile and Web Applications by Combining and Transferring Knowledge from Open Source AI Models
- A team of expert data scientists with Python, Pandas, and SQL skills for implementation guidance