MCP and UTCP ToolBox plugins for the OVOS agentic loop
Project description
ovos-tool-adapters
Bridges MCP (Model Context Protocol) and UTCP (Universal Tool Calling Protocol) servers into the OVOS agentic loop as standard ToolBox plugins.
Configure an MCP or UTCP server in your persona JSON and the agent loop consumes it like any other toolbox — no protocol awareness required.
Install
pip install ovos-tool-adapters[mcp] # MCP support
pip install ovos-tool-adapters[utcp] # UTCP support
pip install ovos-tool-adapters[mcp,utcp]
Quick start
Add to your persona JSON:
{
"name": "researcher",
"chat_module": "ovos-react-loop",
"toolboxes": ["ovos-mcp-toolbox"],
"ovos-mcp-toolbox": {
"transport": "stdio",
"command": "uvx",
"args": ["mcp-server-fetch"],
"timeout": 30
}
}
The agent now has access to every tool the MCP server exposes, with the real JSON Schema forwarded to the LLM.
Supported transports
MCP (ovos-mcp-toolbox)
| Transport | Config |
|---|---|
| stdio (subprocess) | "transport": "stdio", "command": "uvx", "args": [...] |
| SSE | "transport": "sse", "url": "http://..." |
| Streamable HTTP | "transport": "http", "url": "http://..." |
UTCP (ovos-utcp-toolbox)
Any transport supported by the installed UTCP version (HTTP, SSE, CLI, WebSocket, MCP, …):
{
"toolboxes": ["ovos-utcp-toolbox"],
"ovos-utcp-toolbox": {
"utcp_config": {
"tool_providers": [
{"name": "search", "provider_type": "http", "url": "http://localhost:8000/tools"}
]
}
}
}
How it works
- A daemon-thread asyncio event loop keeps MCP/UTCP sessions alive between calls — no reconnect per tool call.
- Each server's JSON Schema is translated to a Pydantic model at discovery time, so the LLM sees the actual input schema.
- Missing
mcp/utcppackages degrade gracefully: the toolbox returns an empty tool list and logs a warning — the agent loop is not affected.
Full documentation: docs/
Credits
Developed by TigreGótico for OpenVoiceOS.
This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429.
License
Apache 2.0 — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ovos_tool_adapters-0.1.0a2.tar.gz.
File metadata
- Download URL: ovos_tool_adapters-0.1.0a2.tar.gz
- Upload date:
- Size: 14.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0d7bf3a9c4ca4c3ac52bcc67da4a4f9269c025d6f4335b00ba81511be96a0e7
|
|
| MD5 |
25870f0c339eb3ac6a7d4cc26d44a683
|
|
| BLAKE2b-256 |
108b7618d388ae61abfcbfbde5eaa693d496f5c7313ddeeb6bf3b20a70d5b847
|
File details
Details for the file ovos_tool_adapters-0.1.0a2-py3-none-any.whl.
File metadata
- Download URL: ovos_tool_adapters-0.1.0a2-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad5df60349a4f41226a1d5c473270d213cd86bf40f4797647bcea6df9c1583fb
|
|
| MD5 |
e907298072409b0bbc2f31e02c3c3513
|
|
| BLAKE2b-256 |
d23de610ad5b15fb0cfca743c2e694b9490183d33a4611d7362b574fd38e43ba
|