mcp-any-openapi

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 설정에서 구성하세요. 다음은 일반적인 예입니다.

{ "mcpServers": { "mcp-openapi-proxy": { "command": "uvx", "args": ["mcp-openapi-proxy"], "env": { "OPENAPI_SPEC_URL": "${OPENAPI_SPEC_URL}", "API_KEY": "${API_OPENAPI_KEY}" } } } }

특정 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 사양을 검색합니다.

curl https://glama.ai/api/mcp/openapi.json

응답이 유효한 OpenAPI JSON 문서인지 확인하세요.

2. Glama에 대한 mcp-openapi-proxy 구성

MCP 생태계 설정에 다음 구성을 추가하세요.

{ "mcpServers": { "glama": { "command": "uvx", "args": ["mcp-openapi-proxy"], "env": { "OPENAPI_SPEC_URL": "https://glama.ai/api/mcp/openapi.json" } } } }

3. 테스트

서비스를 시작하려면 다음을 사용하세요.

OPENAPI_SPEC_URL="https://glama.ai/api/mcp/openapi.json" uvx mcp-openapi-proxy

그런 다음 리소스와 도구를 나열하는 방법에 대한 지침은 JSON-RPC 테스트 섹션을 참조하세요.

Fly.io 예제

Fly.io는 머신 관리를 위한 간단한 API를 제공하므로 이상적인 시작점입니다. Fly.io 설명서 에서 API 토큰을 받으세요.

1. OpenAPI 사양 확인

Fly.io OpenAPI 사양을 검색합니다.

curl https://raw.githubusercontent.com/abhiaagarwal/peristera/refs/heads/main/fly-machines-gen/fixed_spec.json

응답이 유효한 OpenAPI JSON 문서인지 확인하세요.

2. Fly.io에 대한 mcp-openapi-proxy 구성

MCP 생태계 구성을 업데이트하세요.

{ "mcpServers": { "flyio": { "command": "uvx", "args": ["mcp-openapi-proxy"], "env": { "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/abhiaagarwal/peristera/refs/heads/main/fly-machines-gen/fixed_spec.json", "API_KEY": "<your_flyio_token_here>" } } } }
  • 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 사양을 검색합니다.

curl https://api-docs.render.com/openapi/6140fb3daeae351056086186

응답이 유효한 OpenAPI 문서인지 확인하세요.

2. Render를 위해 mcp-openapi-proxy를 구성합니다.

MCP 생태계 설정에 다음 구성을 추가하세요.

{ "mcpServers": { "render": { "command": "uvx", "args": ["mcp-openapi-proxy"], "env": { "OPENAPI_SPEC_URL": "https://api-docs.render.com/openapi/6140fb3daeae351056086186", "TOOL_WHITELIST": "/services,/maintenance", "API_KEY": "your_render_token_here" } } } }

3. 테스트

렌더 구성으로 프록시를 시작합니다.

OPENAPI_SPEC_URL="https://api-docs.render.com/openapi/6140fb3daeae351056086186" TOOL_WHITELIST="/services,/maintenance" API_KEY="your_render_token_here" uvx mcp-openapi-proxy

그런 다음 리소스와 도구를 나열하는 방법에 대한 지침은 JSON-RPC 테스트 섹션을 참조하세요.

슬랙 예시

Slack API는 JMESPath를 사용하여 불필요한 토큰 페이로드를 제거하는 방법을 보여줍니다. Slack API 문서 에서 봇 토큰을 받으세요.

1. OpenAPI 사양 확인

Slack OpenAPI 사양을 검색합니다.

curl https://raw.githubusercontent.com/slackapi/slack-api-specs/master/web-api/slack_web_openapi_v2.json

유효한 OpenAPI JSON 문서인지 확인하세요.

2. Slack에 대한 mcp-openapi-proxy 구성

구성을 업데이트하세요:

{ "mcpServers": { "slack": { "command": "uvx", "args": ["mcp-openapi-proxy"], "env": { "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/slackapi/slack-api-specs/master/web-api/slack_web_openapi_v2.json", "TOOL_WHITELIST": "/chat,/bots,/conversations,/reminders,/files,/users", "API_KEY": "<your_slack_bot_token, starts with xoxb>", "STRIP_PARAM": "token", "TOOL_NAME_PREFIX": "slack_" } } } }
  • 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 사양을 검색합니다.

curl https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/refs/heads/main/examples/getzep.swagger.json

유효한 OpenAPI JSON 문서인지 확인하세요. 또는 직접 사양을 생성하고 file:// URL을 사용하여 로컬 파일을 참조할 수도 있습니다.

2. GetZep에 대한 mcp-openapi-proxy 구성

구성을 업데이트하세요:

{ "mcpServers": { "getzep": { "command": "uvx", "args": ["mcp-openapi-proxy"], "env": { "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/refs/heads/main/examples/getzep.swagger.json", "TOOL_WHITELIST": "/sessions", "API_KEY": "<your_getzep_api_key>", "API_AUTH_TYPE": "Api-Key", "TOOL_NAME_PREFIX": "zep_" } } } }
  • 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 사양을 검색합니다.

curl https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/refs/heads/main/examples/virustotal.openapi.yml

응답이 유효한 OpenAPI YAML 문서인지 확인하세요.

2. Virustotal에 대한 mcp-openapi-proxy 구성

MCP 생태계 설정에 다음 구성을 추가하세요.

{ "mcpServers": { "virustotal": { "command": "uvx", "args": ["mcp-openapi-proxy"], "env": { "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/refs/heads/main/examples/virustotal.openapi.yml", "EXTRA_HEADERS": "x-apikey: ${VIRUSTOTAL_API_KEY}", "OPENAPI_SPEC_FORMAT": "yaml" } } } }

주요 구성 포인트:

  • 기본적으로 프록시는 JSON 사양을 기대하고 Bearer 접두사와 함께 API 키를 보냅니다.
  • YAML OpenAPI 사양을 사용하려면 OPENAPI_SPEC_FORMAT="yaml" 포함하세요.
  • 참고: VirusTotal에는 특별한 인증 헤더가 필요합니다. EXTRA_HEADERS는 API 키를 "x-apikey: ${VIRUSTOTAL_API_KEY}"로 전송하는 데 사용됩니다.

3. 테스트

Virustotal 구성으로 프록시를 시작합니다.

OPENAPI_SPEC_URL="https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/refs/heads/main/examples/virustotal.openapi.yml" API_KEY="your_virustotal_api_key" API_AUTH_HEADER="x-apikey" API_AUTH_TYPE="" OPENAPI_SPEC_FORMAT="yaml" uvx mcp-openapi-proxy

서비스를 시작한 후 리소스와 도구를 나열하는 방법에 대한 지침은 JSON-RPC 테스트 섹션을 참조하세요.

개념 예제

Notion API는 HTTP 헤더를 통해 특정 버전을 지정해야 합니다. 이 예제에서는 EXTRA_HEADERS 환경 변수를 사용하여 필요한 헤더를 포함하고 OpenAPI 사양을 확인하는 데 중점을 둡니다.

1. OpenAPI 사양 확인

Notion OpenAPI 사양을 검색합니다.

curl https://storage.googleapis.com/versori-assets/public-specs/20240214/NotionAPI.yml

응답이 유효한 YAML 문서인지 확인하세요.

2. Notion에 대한 mcp-openapi-proxy 구성

MCP 생태계 설정에 다음 구성을 추가하세요.

{ "mcpServers": { "notion": { "command": "uvx", "args": [ "mcp-openapi-proxy" ], "env": { "API_KEY": "ntn_<your_key>", "OPENAPI_SPEC_URL": "https://storage.googleapis.com/versori-assets/public-specs/20240214/NotionAPI.yml", "SERVER_URL_OVERRIDE": "https://api.notion.com", "EXTRA_HEADERS": "Notion-Version: 2022-06-28" } } } }

3. 테스트

Notion 구성으로 프록시를 시작합니다.

OPENAPI_SPEC_URL="https://storage.googleapis.com/versori-assets/public-specs/20240214/NotionAPI.yml" SERVER_URL_OVERRIDE="https://api.notion.com" EXTRA_HEADERS="Notion-Version: 2022-06-28" API_KEY="ntn_<your_key>" uvx mcp-openapi-proxy

서비스를 시작한 후 리소스와 도구를 나열하는 방법에 대한 지침은 JSON-RPC 테스트 섹션을 참조하세요.

아사나 예시

Asana는 작업 공간, 작업, 프로젝트 및 사용자 관리를 위한 다양한 엔드포인트를 제공합니다. 통합 테스트는 GET /workspaces , GET /tasks , GET /projects 와 같은 엔드포인트의 사용법을 보여줍니다.

1. OpenAPI 사양 확인

Asana OpenAPI 사양을 검색합니다.

curl https://raw.githubusercontent.com/Asana/openapi/refs/heads/master/defs/asana_oas.yaml

응답이 유효한 YAML(또는 JSON) 문서인지 확인하세요.

2. Asana에 대한 mcp-openapi-proxy 구성

MCP 생태계 설정에 다음 구성을 추가하세요.

{ "mcpServers": { "asana": { "command": "uvx", "args": [ "mcp-openapi-proxy" ], "env": { "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/Asana/openapi/refs/heads/master/defs/asana_oas.yaml", "SERVER_URL_OVERRIDE": "https://app.asana.com/api/1.0", "TOOL_WHITELIST": "/workspaces,/tasks,/projects,/users", "API_KEY": "${ASANA_API_KEY}" } } } }

참고: 대부분의 Asana API 엔드포인트에는 인증이 필요합니다. 환경 파일이나 .env 파일에 유효한 토큰을 사용하여 ASANA_API_KEY 설정하세요.

3. 테스트

서비스를 시작하려면 다음을 사용하세요.

ASANA_API_KEY="<your_asana_api_key>" OPENAPI_SPEC_URL="https://raw.githubusercontent.com/Asana/openapi/refs/heads/master/defs/asana_oas.yaml" SERVER_URL_OVERRIDE="https://app.asana.com/api/1.0" TOOL_WHITELIST="/workspaces,/tasks,/projects,/users" uvx mcp-openapi-proxy

그런 다음 MCP 생태계를 사용하여 /dcim/devices//ipam/ip-addresses/ 와 같은 엔드포인트에 대한 도구를 나열하고 호출할 수 있습니다.

APIs.guru 예제

APIs.guru는 수천 개의 공개 API에 대한 OpenAPI 정의 디렉터리를 제공합니다. 이 예제에서는 mcp-openapi-proxy를 사용하여 APIs.guru 디렉터리를 MCP 도구로 노출하는 방법을 보여줍니다.

1. OpenAPI 사양 확인

APIs.guru OpenAPI 사양을 검색합니다.

curl https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/apis.guru/2.2.0/openapi.yaml

응답이 유효한 OpenAPI YAML 문서인지 확인하세요.

2. APIs.guru에 대한 mcp-openapi-proxy 구성

MCP 생태계 설정에 다음 구성을 추가하세요.

{ "mcpServers": { "apisguru": { "command": "uvx", "args": ["mcp-openapi-proxy"], "env": { "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/apis.guru/2.2.0/openapi.yaml" } } } }

3. 테스트

서비스를 시작하려면 다음을 사용하세요.

OPENAPI_SPEC_URL="https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/apis.guru/2.2.0/openapi.yaml" uvx mcp-openapi-proxy

그런 다음 MCP 생태계를 사용하여 APIs.guru 디렉토리에 정의된 listAPIs , getMetrics , getProviders 와 같은 도구를 나열하고 호출할 수 있습니다.

NetBox 예시

NetBox는 오픈소스 IP 주소 관리(IPAM) 및 데이터 센터 인프라 관리(DCIM) 도구입니다. 이 예제에서는 mcp-openapi-proxy를 사용하여 NetBox API를 MCP 도구로 노출하는 방법을 보여줍니다.

1. OpenAPI 사양 확인

NetBox OpenAPI 사양을 검색합니다.

curl https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/netbox.dev/3.4/openapi.yaml

응답이 유효한 OpenAPI YAML 문서인지 확인하세요.

2. NetBox에 대한 mcp-openapi-proxy 구성

MCP 생태계 설정에 다음 구성을 추가하세요.

{ "mcpServers": { "netbox": { "command": "uvx", "args": ["mcp-openapi-proxy"], "env": { "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/netbox.dev/3.4/openapi.yaml", "API_KEY": "${NETBOX_API_KEY}" } } } }

참고: 대부분의 NetBox API 엔드포인트에는 인증이 필요합니다. 환경 파일이나 .env 파일에 유효한 토큰을 사용하여 NETBOX_API_KEY 설정하세요.

3. 테스트

서비스를 시작하려면 다음을 사용하세요.

OPENAPI_SPEC_URL="https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/netbox.dev/3.4/openapi.yaml" API_KEY="$NETBOX_API_KEY" uvx mcp-openapi-proxy

그런 다음 MCP 생태계를 사용하여 /dcim/devices//ipam/ip-addresses/ 와 같은 엔드포인트에 대한 도구를 나열하고 호출할 수 있습니다.

Box API 예제

자체 개발자 토큰을 사용하여 Box 플랫폼 API를 통합하면 Box 계정에 대한 인증된 액세스를 얻을 수 있습니다. 이 예시에서는 Box API 엔드포인트를 MCP 도구로 노출하는 방법을 보여줍니다.

구성 예시: examples/box-claude_desktop_config.json

{ "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/box.com/2.0.0/openapi.yaml", "API_KEY": "${BOX_API_KEY}" }
  • .env 에서 Box 개발자 토큰을 환경 변수로 설정합니다.
    BOX_API_KEY=your_box_developer_token
  • 또는 한 줄로 프록시를 실행합니다.
    OPENAPI_SPEC_URL="https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/box.com/2.0.0/openapi.yaml" API_KEY="$BOX_API_KEY" uvx mcp-openapi-proxy

이제 MCP 에코시스템을 사용하여 Box API 도구를 나열하고 호출할 수 있습니다. 통합 테스트는 tests/integration/test_box_integration.py 참조하세요.

WolframAlpha API 예제

인증된 액세스를 위해 자체 앱 ID를 사용하여 WolframAlpha API를 통합할 수 있습니다. 이 예제는 WolframAlpha API 엔드포인트를 MCP 도구로 노출하는 방법을 보여줍니다.

구성 예시: examples/wolframalpha-claude_desktop_config.json

{ "mcpServers": { "wolframalpha": { "command": "uvx", "args": [ "mcp-openapi-proxy" ], "env": { "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/wolframalpha.com/v0.1/openapi.yaml", "API_KEY": "${WOLFRAM_LLM_APP_ID}" } } } }
  • .env 에서 WolframAlpha 앱 ID를 환경 변수로 설정합니다.
    WOLFRAM_LLM_APP_ID=your_wolfram_app_id
  • 또는 한 줄로 프록시를 실행합니다.
    OPENAPI_SPEC_URL="https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/wolframalpha.com/v0.1/openapi.yaml" API_KEY="$WOLFRAM_LLM_APP_ID" uvx mcp-openapi-proxy

이제 MCP 생태계를 사용하여 WolframAlpha API 도구를 나열하고 호출할 수 있습니다. 통합 테스트는 tests/integration/test_wolframalpha_integration.py 참조하세요.

문제 해결

JSON-RPC 테스트

다른 테스트 방법으로는 JSON-RPC를 통해 MCP 서버와 상호 작용할 수 있습니다. 서버를 시작한 후 다음 초기화 메시지를 붙여넣으세요.

{"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0}

예상 응답:

{"jsonrpc":"2.0","id":0,"result":{"protocolVersion":"2024-11-05","capabilities":{"experimental":{},"prompts":{"listChanged":false},"resources":{"subscribe":false,"listChanged":false},"tools":{"listChanged":false}},"serverInfo":{"name":"sqlite","version":"0.1.0"}}}

그런 다음 다음의 후속 메시지를 붙여넣습니다.

{"method":"notifications/initialized","jsonrpc":"2.0"} {"method":"resources/list","params":{},"jsonrpc":"2.0","id":1} {"method":"tools/list","params":{},"jsonrpc":"2.0","id":2}
  • OPENAPI_SPEC_URL이 누락되었습니다. 유효한 OpenAPI JSON URL이나 로컬 파일 경로로 설정되어 있는지 확인하세요.
  • 잘못된 사양: OpenAPI 문서가 표준을 준수하는지 확인하세요.
  • 도구 필터링 문제: TOOL_WHITELIST 원하는 엔드포인트와 일치하는지 확인합니다.
  • 인증 오류: API_KEYAPI_AUTH_TYPE 이 올바른지 확인하세요.
  • 로깅: 자세한 출력을 stderr에 표시하려면 DEBUG=true 설정합니다.
  • 테스트 서버: 직접 실행:
uvx mcp-openapi-proxy

특허

MIT 라이센스

ID: uxugly3ixf