Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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. The agent loop then consumes it like any other toolbox, with 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)

The utcp extra installs the UTCP 1.x client and its HTTP plugin (utcp-http). Each entry in manual_call_templates points at a UTCP manual. This example loads the manual of a local ovos-translate-server:

{
  "toolboxes": ["ovos-utcp-toolbox"],
  "ovos-utcp-toolbox": {
    "utcp_config": {
      "manual_call_templates": [
        {
          "name": "ovos_translate",
          "call_template_type": "http",
          "url": "http://localhost:9686/utcp",
          "http_method": "GET"
        }
      ]
    }
  }
}

The agent then gets tools such as ovos_translate_translate_with_source: the UTCP name ovos_translate.translate_with_source with the dot replaced, because function-calling providers reject a dot in a tool name. Other call template types (CLI, SSE, WebSocket, MCP) need their own UTCP plugin package, for example utcp-cli.

How it works

  • A daemon-thread asyncio event loop keeps MCP/UTCP sessions alive between calls, so there is 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, and the agent loop is not affected.
  • A config with a tool_providers or providers key loads no tools. These keys are not UTCP 1.x keys. The toolbox logs an error that names manual_call_templates and links docs/utcp.md.

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.

Metadata

Release files for ovos-tool-adapters 0.1.9a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovos-tool-adapters 0.1.9a1
File Size Uploaded Provenance
ovos_tool_adapters-0.1.9a1.tar.gz 33.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ovos-tool-adapters 0.1.9a1
File Interpreter ABI Platform
ovos_tool_adapters-0.1.9a1-py3-none-any.whl Python 3 none any Details

Total release size: 55.3 kB

Release files / ovos_tool_adapters-0.1.9a1.tar.gz

Download URL ovos_tool_adapters-0.1.9a1.tar.gz
Size 33.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3d04ec9364e07dacf5e1a96f19c693e537137566cdcdd0fd71d6689d69af1e72
BLAKE2b-256 checksum
How to use checksums
17eee107e16a40faf1dfb29e407232e37e0a71ed7ea8bb90d2f2f143beb4c80a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / ovos_tool_adapters-0.1.9a1-py3-none-any.whl

Download URL ovos_tool_adapters-0.1.9a1-py3-none-any.whl
Size 22.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca19b28fc2bd28c68f43d6e082b2935c5c78ceb3180cf6361da1872044026af6
BLAKE2b-256 checksum
How to use checksums
2b4c7297755e731f888e2a50dd2920a291d87d68f37a86f2284f4261a5104cca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for ovos-tool-adapters 0.1.9a1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page