{"ID":2895859,"CreatedAt":"2026-06-01T04:54:23.091178241Z","UpdatedAt":"2026-06-01T04:54:23.091178241Z","DeletedAt":null,"paper_url":"https://arxiv.org/abs/2507.10593","arxiv_id":"2507.10593","title":"ToolRegistry: A Protocol-Agnostic Tool Management Library for Function-Calling LLMs","abstract":"Every LLM tool call is structurally an RPC -- a function name, JSON arguments, and a serialized result -- yet each protocol (native Python, MCP, OpenAPI, LangChain) is integrated from scratch. We present ToolRegistry, a system that makes this RPC nature explicit: a single Tool object acts as a universal stub regardless of transport, while the registry serves as the RPC client runtime for dispatch, schema generation, and execution. The system ships as three packages -- a core registry, a server exposing tools over MCP and OpenAPI, and a hub of production-ready implementations -- and invokes tools through pluggable thread or process backends. The system now also provides tag-based permission policies, BM25F-powered progressive tool disclosure for large registries, think-augmented function calling, multi-provider schema support (OpenAI, Anthropic, Gemini), declarative JSONC/YAML configuration, and a near-zero-dependency core built on stdlib-only vendored modules. In our benchmarks the library cuts integration code by 60-80%, and choosing the right concurrency mode (thread vs. process) yields up to 3.1x throughput over the alternative for a given workload. ToolRegistry is open-source at https://github.com/Oaklight/ToolRegistry; documentation lives at https://toolregistry.readthedocs.io/.","short_abstract":"Every LLM tool call is structurally an RPC -- a function name, JSON arguments, and a serialized result -- yet each protocol (native Python, MCP, OpenAPI, LangChain) is integrated from scratch. We present ToolRegistry, a system that makes this RPC nature explicit: a single Tool object acts as a universal stub regardless...","url_abs":"https://arxiv.org/abs/2507.10593","url_pdf":"https://arxiv.org/pdf/2507.10593v3","authors":"[\"Peng Ding\",\"Rick Stevens\"]","published":"2025-07-11T20:23:23Z","proceeding":"cs.SE","tasks":"[\"cs.SE\",\"cs.AI\",\"cs.CL\",\"cs.LG\"]","methods":"[\"Large Language Model\"]","project_urls":"[\"https://toolregistry.readthedocs.io/\"]","has_code":false,"code_links":[{"ID":612225,"CreatedAt":"2026-06-01T04:54:23.091178241Z","UpdatedAt":"2026-06-01T04:54:23.091178241Z","DeletedAt":null,"paper_id":2895859,"paper_url":"https://arxiv.org/abs/2507.10593","paper_title":"ToolRegistry: A Protocol-Agnostic Tool Management Library for Function-Calling LLMs","repo_url":"https://github.com/Oaklight/ToolRegistry","is_official":false,"mentioned_in_paper":false,"mentioned_in_github":true,"github_stars":0}]}
