Remove mcp-gateway/QUICK_OPENUI_FIX.txt
This commit is contained in:
parent
f1506dc81f
commit
2a5b3a07cd
1 changed files with 0 additions and 113 deletions
|
|
@ -1,113 +0,0 @@
|
||||||
QUICK IMPLEMENTATION GUIDE
|
|
||||||
============================
|
|
||||||
|
|
||||||
ISSUE: OpenUI cannot discover any tools from MCP Gateway
|
|
||||||
|
|
||||||
ROOT CAUSE:
|
|
||||||
1. Missing /v1/tools endpoint
|
|
||||||
2. Tool schemas have complex JSON that OpenUI doesn't support
|
|
||||||
3. Need schema normalization layer
|
|
||||||
|
|
||||||
|
|
||||||
STEP 1: Add the Fixed Routes Handler
|
|
||||||
====================================
|
|
||||||
The file openai_routes_fixed.py is ready to use.
|
|
||||||
It's already in: gateway-proxy/openai_routes_fixed.py
|
|
||||||
|
|
||||||
|
|
||||||
STEP 2: Update gateway_proxy.py
|
|
||||||
================================
|
|
||||||
|
|
||||||
Find line ~27 (near other imports) and add:
|
|
||||||
|
|
||||||
from .openai_routes_fixed import convert_mcp_tool_to_openai, list_models, tools, chat_completions
|
|
||||||
|
|
||||||
|
|
||||||
Then find the routes list (around line 795) and add these routes BEFORE the closing bracket:
|
|
||||||
|
|
||||||
# OpenAI-compatible API endpoints (for Open-UI)
|
|
||||||
Route("/v1/models", list_models, methods=["GET"]),
|
|
||||||
Route("/v1/tools", lambda r: tools(r, TOOL_DEFINITIONS), methods=["GET"]),
|
|
||||||
Route("/v1/chat/completions", lambda r: chat_completions(r, TOOL_DEFINITIONS), methods=["POST"]),
|
|
||||||
|
|
||||||
|
|
||||||
STEP 3: Restart Gateway
|
|
||||||
========================
|
|
||||||
|
|
||||||
docker-compose restart gateway-proxy
|
|
||||||
|
|
||||||
|
|
||||||
STEP 4: Verify
|
|
||||||
==============
|
|
||||||
|
|
||||||
Check that tools load:
|
|
||||||
curl http://localhost:8000/v1/tools | jq '.data | length'
|
|
||||||
|
|
||||||
Should return a number like 45 (total number of tools)
|
|
||||||
|
|
||||||
|
|
||||||
STEP 5: Test in OpenUI
|
|
||||||
=======================
|
|
||||||
|
|
||||||
1. Open OpenUI
|
|
||||||
2. Add new model endpoint: http://mcp.wilddragon.net:8000
|
|
||||||
3. Select model "mcp-gateway"
|
|
||||||
4. Search for tools - they should now appear!
|
|
||||||
|
|
||||||
|
|
||||||
KEY CHANGES EXPLAINED:
|
|
||||||
=======================
|
|
||||||
|
|
||||||
_simplify_schema():
|
|
||||||
- Converts type arrays ["string", "null"] → "string"
|
|
||||||
- Flattens anyOf/oneOf to single schema
|
|
||||||
- Removes unsupported JSON schema keywords
|
|
||||||
- Makes schemas OpenAI-compatible
|
|
||||||
|
|
||||||
convert_mcp_tool_to_openai():
|
|
||||||
- Takes MCP tool definition
|
|
||||||
- Converts inputSchema to OpenAI parameters format
|
|
||||||
- Wraps in function schema structure
|
|
||||||
|
|
||||||
/v1/tools endpoint:
|
|
||||||
- Returns all tools in OpenAI format
|
|
||||||
- Called by OpenUI for tool discovery
|
|
||||||
- Lists all backends' tools (ERPNext, Wave, TrueNAS, Home Assistant)
|
|
||||||
|
|
||||||
|
|
||||||
TESTING RESPONSES:
|
|
||||||
===================
|
|
||||||
|
|
||||||
Good /v1/tools response looks like:
|
|
||||||
{
|
|
||||||
"object": "list",
|
|
||||||
"data": [
|
|
||||||
{
|
|
||||||
"type": "function",
|
|
||||||
"function": {
|
|
||||||
"name": "erpnext_get_document",
|
|
||||||
"description": "Retrieve a single document",
|
|
||||||
"parameters": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"doctype": {"type": "string", "description": "..."},
|
|
||||||
"name": {"type": "string", "description": "..."}
|
|
||||||
},
|
|
||||||
"required": ["doctype", "name"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
...more tools...
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
If you see truncated tool names or "string not found" errors,
|
|
||||||
the schema conversion isn't working - check imports and routes.
|
|
||||||
|
|
||||||
|
|
||||||
FILES READY TO USE:
|
|
||||||
====================
|
|
||||||
|
|
||||||
✅ gateway-proxy/openai_routes_fixed.py (ready - no changes needed)
|
|
||||||
✅ OPENUI_SCHEMA_FIX.md (detailed explanation)
|
|
||||||
⏳ gateway-proxy/gateway_proxy.py (needs 2 edits: import + routes)
|
|
||||||
Loading…
Reference in a new issue