Skip to main content

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.

The FastAPI proxy (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 the dbv-unreal-python-api knowledge base skill.
All endpoints inject 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 at http://localhost:8000/mcp. What the proxy intercepts:
Intercepted methodProxy action
tools/listReturns 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 nameSplits ToolsetName.ToolName and rewrites the call as call_tool with toolset_name and tool_name arguments.
tools/call for call_tool or describe_toolsetRuns translate_toolset_name() on the toolset_name argument to resolve short names to full Python module paths.
Everything elseForwarded verbatim to http://localhost:8000/mcp.
Query parameters are forwarded to the upstream URL as-is. Response headers from Unreal are preserved, minus 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.
POST http://localhost:5000/mcp
Content-Type: application/json
Mcp-Session-Id: <your-session-id>

{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }
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).
q
string
required
Free-text search query. Examples: "MaterialEditingLibrary", "get all actors of class", "StaticMesh import".
Response
{ "result": "...", "query": "MaterialEditingLibrary" }
result
string
Text describing the matching classes — signatures, property lists, and docstrings — up to approximately 12,000 characters.
query
string
The original query string, echoed back for reference.
Example
GET http://localhost:5000/api/docs/search?q=MaterialEditingLibrary
Error responses
StatusCondition
400 Bad Requestq parameter is missing or empty.
503 Service UnavailableKnowledge 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
{ "status": "ok", "classes": 11600, "version": "5.8" }
status
string
"ok" when the knowledge base is loaded and searchable, or "skill_not_found" when the skill directory is missing.
classes
number
Number of indexed class pages.
version
string
Unreal Engine version the knowledge base was built against.
Example
GET http://localhost:5000/api/docs/status

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).
q
string
required
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".
Response
{ "result": "...", "query": "connect texture material" }
result
string
Relevant excerpts from matching guide pages.
query
string
The original query string, echoed back.
Example
GET http://localhost:5000/api/guides/search?q=connect+texture+material
Error responses
StatusCondition
400 Bad Requestq parameter is missing or empty.
503 Service UnavailableGuides 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
{ "status": "ok", "guides": 3600, "version": "5.8" }
status
string
"ok" when the guides index is available, or "skill_not_found" when the skill directory is missing.
Example
GET http://localhost:5000/api/guides/status

CORS Headers

Every response from the proxy includes these headers:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, OPTIONS
Access-Control-Allow-Headers: *
Access-Control-Expose-Headers: Mcp-Session-Id
The Mcp-Session-Id header is explicitly exposed so that browser JavaScript can read it from fetch() responses via response.headers.get("Mcp-Session-Id").

Build docs developers (and LLMs) love