MCP-testing
by cycloarcane
This repository explores integrating MCP tools (premade and custom) via `mcpo` with OpenWebUI. The current goal is to successfully call a premade MCP tool using `mcpo`'s config-based proxy and OpenWebUI.
View on GitHub
Last updated: N/A
MCP-testing: OpenWebUI + mcpo Integration
This repo is for experimenting with running MCP tools (premade and custom) via mcpo
and integrating them cleanly with OpenWebUI.
✨ Current Goal
Set up and successfully call one premade MCP tool (mcp-server-time
) using mcpo
's config-based proxy and OpenWebUI.
🔧 Run the Proxy
Use this command to launch mcpo
with your tool config:
uvx mcpo --port 8000 --api-key dev123 --config ./config.json
This will serve your tools on http://127.0.0.1:8000
, with each tool mounted under its key (e.g. /time
).
📊 Config File Example (single tool)
config.json
:
{
"mcpServers": {
"time": {
"command": "uvx",
"args": ["mcp-server-time", "--local-timezone=America/New_York"]
}
}
}
🌐 OpenWebUI Setup
Correct Endpoint:
Base URL:
http://127.0.0.1:8000/time
OpenAPI URL:
/openapi.json
❌ Don't do this:
http://127.0.0.1:8000
as base URL (this fails)/time/openapi.json
as OpenAPI URL (this fails)
🏁 Tool Call Checklist
- mcpo launched successfully with config
- Tool appears under available tools in OpenWebUI
- Chat tool toggle is enabled (right sidebar or on bottom left of chat input)
- Chat model supports function calling (e.g. GPT-4, Mistral-7B-func, Qwen3)
- Tool is invoked using correct path:
/time/get_current_time
🔄 Troubleshooting
- 401 Unauthorized: Ensure you use
Authorization: Bearer dev123
header or input the key into OpenWebUI's API key field. - 404 Not Found: Double check tool mount path. Tool functions are under
/tool-name/function-name
in config mode. - Tool doesn't respond: Wrong Base URL in OpenWebUI (likely still pointing at root).
📓 Development Roadmap
- [x] Single premade tool using config
- [ ] Multiple premade tools using config
- [ ] Single custom tool using config
- [ ] Mix of custom and premade tools using config
Happy hacking ✨