The FastAPI proxy (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/davidbuenov/dbv-mcp-server/llms.txt
Use this file to discover all available pages before exploring further.
server.py) runs at http://localhost:5000 and exposes two
categories of endpoints:
/mcp— a transparent (but intercepting) proxy to the Unreal Engine MCP server./api/docs/*and/api/guides/*— search endpoints backed by thedbv-unreal-python-apiknowledge base skill.
Access-Control-Allow-Origin: * and other CORS headers so that
browser pages served from any localhost port can call them directly.
POST /mcp
Transparent proxy to the Unreal Engine MCP server athttp://localhost:8000/mcp.
What the proxy intercepts:
| Intercepted method | Proxy action |
|---|---|
tools/list | Returns a flattened tool list combining the 3 native tools + all toolset tools. Results are cached in memory and on disk (.mcp_tools_cache.json). |
tools/call with a dotted name | Splits ToolsetName.ToolName and rewrites the call as call_tool with toolset_name and tool_name arguments. |
tools/call for call_tool or describe_toolset | Runs translate_toolset_name() on the toolset_name argument to resolve short names to full Python module paths. |
| Everything else | Forwarded verbatim to http://localhost:8000/mcp. |
content-length and
transfer-encoding (which are recomputed), plus the injected CORS headers.
Streaming — SSE responses (Content-Type: text/event-stream) are streamed chunk-by-chunk
through the proxy without buffering, using FastAPI StreamingResponse and HTTPX async
streaming.
Always target
http://localhost:5000/mcp from browsers. Direct calls to
http://localhost:8000/mcp from a browser page are blocked by the Unreal server’s
origin validation unless the page is served from localhost itself.GET /api/docs/search
Searches the local Unreal Engine 5.8 Python API knowledge base (~11,600 indexed classes).Free-text search query. Examples:
"MaterialEditingLibrary",
"get all actors of class", "StaticMesh import".Text describing the matching classes — signatures, property lists, and docstrings —
up to approximately 12,000 characters.
The original query string, echoed back for reference.
| Status | Condition |
|---|---|
400 Bad Request | q parameter is missing or empty. |
503 Service Unavailable | Knowledge base not available. Run python skills/dbv-unreal-python-api/scripts/scrape_ue_api.py to build the index. |
GET /api/docs/status
Returns the current status of the Python API knowledge base. No parameters. Response"ok" when the knowledge base is loaded and searchable, or "skill_not_found" when the
skill directory is missing.Number of indexed class pages.
Unreal Engine version the knowledge base was built against.
GET /api/guides/search
Searches the local Unreal Engine 5.8 conceptual guides knowledge base (~3,600 indexed pages covering PCG, Materials, Blueprints, Editor workflows, and more).Free-text search query describing the concept or workflow you want to look up.
Examples:
"connect texture material", "PCG graph spawn actor",
"blueprint interface event".Relevant excerpts from matching guide pages.
The original query string, echoed back.
| Status | Condition |
|---|---|
400 Bad Request | q parameter is missing or empty. |
503 Service Unavailable | Guides knowledge base not available. Run python skills/dbv-unreal-python-api/scripts/scrape_ue_guides.py to build the index. |
The guides scraper uses Playwright (Chromium headless) to bypass Cloudflare Bot Management
on
dev.epicgames.com. You must have Playwright installed and its browsers downloaded
before running scrape_ue_guides.py.GET /api/guides/status
Returns the current status of the conceptual guides knowledge base. No parameters. Response"ok" when the guides index is available, or "skill_not_found" when the skill directory
is missing.CORS Headers
Every response from the proxy includes these headers:Mcp-Session-Id header is explicitly exposed so that browser JavaScript can read it
from fetch() responses via response.headers.get("Mcp-Session-Id").