Skip to main content

MCP and UTCP ToolBox plugins for the OVOS agentic loop

Project description

ovos-tool-adapters

PyPI License Tests

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/utcp packages 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.

NGI0 Commons Fund

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ovos_tool_adapters-0.1.0a2.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ovos_tool_adapters-0.1.0a2-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

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

Hashes for ovos_tool_adapters-0.1.0a2.tar.gz
Algorithm Hash digest
SHA256 c0d7bf3a9c4ca4c3ac52bcc67da4a4f9269c025d6f4335b00ba81511be96a0e7
MD5 25870f0c339eb3ac6a7d4cc26d44a683
BLAKE2b-256 108b7618d388ae61abfcbfbde5eaa693d496f5c7313ddeeb6bf3b20a70d5b847

See more details on using hashes here.

File details

Details for the file ovos_tool_adapters-0.1.0a2-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_tool_adapters-0.1.0a2-py3-none-any.whl
Algorithm Hash digest
SHA256 ad5df60349a4f41226a1d5c473270d213cd86bf40f4797647bcea6df9c1583fb
MD5 e907298072409b0bbc2f31e02c3c3513
BLAKE2b-256 d23de610ad5b15fb0cfca743c2e694b9490183d33a4611d7362b574fd38e43ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page