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 --pre ovos-tool-adapters[mcp]    # MCP support
pip install --pre ovos-tool-adapters[utcp]   # UTCP support
pip install --pre 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 then 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.10a2

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.10a2
File Size Uploaded Provenance
ovos_tool_adapters-0.1.10a2.tar.gz 33.2 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 55.3 kB

Release files / ovos_tool_adapters-0.1.10a2.tar.gz

Download URL ovos_tool_adapters-0.1.10a2.tar.gz
Size 33.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2b4d210bf9537762363f53c3b0fa1f5f21f044ce110aed781cedfadeddfbdbaa
BLAKE2b-256 checksum
How to use checksums
cff4f31d0255716e64f99a5c5cb6a41d1f8f45f2c51c7240d1ea56fc4bbb5d91
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.10a2-py3-none-any.whl

Download URL ovos_tool_adapters-0.1.10a2-py3-none-any.whl
Size 22.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08b668bb538ffc740e965791fe2700a8c2c156fcec6674b86afb6931ac4d51fa
BLAKE2b-256 checksum
How to use checksums
e95e15634067c5a1290653354da97379a87d8bbfedb8a4f639052850c25f7511
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.10a2

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