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.8a1

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.8a1
File Size Uploaded Provenance
ovos_tool_adapters-0.1.8a1.tar.gz 28.1 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 48.3 kB

Release files / ovos_tool_adapters-0.1.8a1.tar.gz

Download URL ovos_tool_adapters-0.1.8a1.tar.gz
Size 28.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8ae27a7734c73fee7b3323d2c8d31a75c0bf39379e7fea50bb45443ef5f42332
BLAKE2b-256 checksum
How to use checksums
a48edc8b5d03324d3f855c6e1da092fcb1261939154d12cf7d1fe569254236c9
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.8a1-py3-none-any.whl

Download URL ovos_tool_adapters-0.1.8a1-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bff14d5b1acc0276f810081e9fefc3ba9f88942a5dfabab14b18151fb94f332b
BLAKE2b-256 checksum
How to use checksums
1035c27b47395d8efcbb60fa17d5b419a2c87137249793fba9a3a2910ea09164
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.8a1

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