Skip to content

ToolRegistry: A Protocol-Agnostic Tool Management Library for Function-Calling LLMs

Welcome to the official documentation for ToolRegistry, a Python library designed to register, manage, and execute tools (functions) for Agentic AI and large language model applications. This documentation is organized by topic to help you quickly find and learn about different aspects of the library.

Overview

ToolRegistry is a powerful Python library that simplifies the registration, management, and execution of tools (functions). Whether you're building systems integrated with large language models or need structured tool management, ToolRegistry provides a consistent interface supporting both synchronous and asynchronous tool calls.

Key Features

  • Protocol-Agnostic: Works with OpenAI, MCP, OpenAPI, LangChain, and more
  • Multi-Provider Schema: Generate tool schemas for OpenAI, Anthropic, and Gemini via llm-rosetta
  • Unified Interface: Consistent API for sync and async tool execution
  • Permission System: Rule-based authorization with composable policies, built-in tag matching, and handler protocols for interactive approval
  • Enable/Disable Control: Fine-grained tool availability management with reason tracking
  • Tool Metadata & Tags: Classify tools with predefined and custom tags for policy-driven control
  • Namespace Support: Organize tools into logical groups with MRO inheritance
  • Admin Panel: Built-in web-based administration interface with execution logging, REST API, and Anthropic-style minimalist UI
  • Callback Mechanism: Monitor registry changes with event-driven callbacks

This documentation details how to install, configure, and use the library in real projects. Browse the sections in the left menu to find the information you need.

Getting Started

PyPI version CI License: MIT Ask DeepWiki

Quickly start using ToolRegistry by installing it with this command:

pip install toolregistry

Detailed setup instructions →

Ecosystem

ToolRegistry is part of a three-package ecosystem. See the Ecosystem page for details.

Package Role
toolregistry Core tool management library
toolregistry-server OpenAPI & MCP server adapters
toolregistry-hub Ready-to-use utility tools

Documentation Contents

Here are brief introductions and links to each section:

API changes

Since version 0.4.12, the previously deprecated methods ToolRegistry.register_static_tools, ToolRegistry.register_mcp_tools, and ToolRegistry.register_openapi_tools have been REMOVED.

Users must update their implementations to use the new methods: ToolRegistry.register_from_class, ToolRegistry.register_from_mcp, and ToolRegistry.register_from_openapi.

Please ensure your codebase is compatible with this update for uninterrupted functionality.

Citation

If you use ToolRegistry in your research or project, please consider cite it as:

@software{toolregistry2025,
  title={ToolRegistry: A Protocol-Agnostic Tool Management Library for OpenAI-Compatible LLM Applications},
  author={Peng Ding},
  year={2025},
  url={https://github.com/Oaklight/ToolRegistry},
  note={A Python library for unified tool registration, execution, and management across multiple protocols in OpenAI-compatible LLM applications}
}

@article{ding2025toolregistry,
  title={ToolRegistry: A Protocol-Agnostic Tool Management Library for Function-Calling LLMs},
  author={Ding, Peng},
  journal={arXiv preprint arXiv:2507.10593},
  year={2025}
}

License

ToolRegistry is licensed under the MIT License.