Initial commit: xmcp — OpenAPI-to-MCP server

MCP server generated from an OpenAPI document with FastMCP v4.
Configurable via env vars (spec URL/file, transport stdio/http,
host, port, API token), built with uv, multi-stage Dockerfile
with non-root runtime.
This commit is contained in:
2026-10-19 02:34:04 +00:00
commit d0fc0c1bc4
14 changed files with 1940 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# Copy to .env and adjust. All values are read at container/process start.
# --- OpenAPI document (required) ---------------------------------------------
# http(s) URL of a JSON/YAML OpenAPI document, or a local file path
# (e.g. /spec/openapi.json when the document is mounted into the container).
OPENAPI_SPEC_URL=https://petstore3.swagger.io/api/v3/openapi.json
# Bearer token used only when fetching a remote spec (leave unset for public
# documents).
#OPENAPI_SPEC_TOKEN=
# --- Target API ---------------------------------------------------------------
# Override the base URL taken from the spec's servers[0].url. Required when the
# spec only has a relative server URL and the spec is a local file, or when the
# API lives on a different host than the spec.
#API_BASE_URL=https://api.example.com
# Credential sent to the target API on every tool call.
#API_TOKEN=change-me
#API_AUTH_HEADER=Authorization
# Send the raw token with no scheme prefix by setting this to an empty value:
#API_AUTH_SCHEME=
# --- MCP server ---------------------------------------------------------------
# stdio or http (streamable-http is accepted as an alias); default: stdio
MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8000
#MCP_SERVER_NAME=My API
# Timeout in seconds for fetching the spec and calling the API (default: 30).
#HTTP_TIMEOUT=30
# DEBUG, INFO, WARNING, ERROR, CRITICAL ... (default: INFO)
#LOG_LEVEL=INFO