Data as of Sep 18, 2026 · Based on 343 AI responses from ChatGPT Search and Google AI Mode · See how Parse measures this
To build a system where AI agents can discover and use new tools, the Model Context Protocol (MCP) is the recommended standard. It allows agents to query servers for available tools in real time. For implementation, developers frequently pair MCP with orchestration frameworks like LangGraph, the Microsoft Agent Framework, or the
Claude Agent SDK, which leverage the protocol to provide enterprise-ready connectivity and streamlined tool management.
Brands AI recommends here
Named in 56% of answers
MCP is the primary standard for dynamic tool discovery, enabling agents to interoperate with external servers and data without needing to rebuild components when tools are added or changed.
Named in 55% of answers
Named in 41% of answers
Named in 33% of answers
If the core requirement is **“agents should discover tools at runtime rather than having every tool hard-coded into their prompt,”** I’d build around **Model Context Protocol (MCP)**, with a separate **tool-discovery/search layer** once the catalog gets large. ### Recommended architecture **MCP + semantic tool…
If the core requirement is “agents should discover tools at runtime rather than having every tool hard-coded into their prompt,” I’d build around Model Context Protocol (MCP), with a separate tool-discovery/search layer once the catalog gets large.
MCP + semantic tool registry + agent framework
┌──────────────────────┐
│ Tool Registry │
│ name / desc / schema │
│ permissions / tags │
└──────────┬───────────┘
│
semantic search
│
┌─────────────┐ ┌────────▼────────┐
│ Agent │──────►│ Discovery Layer │
│ │◄──────│ "find tools..." │
└──────┬──────┘ └────────┬────────┘
│ │
│ dynamically loads │
▼ ▼
┌─────────────────────────────────────────┐
│ MCP Servers │
│ CRM │ DB │ GitHub │ Search │ Payments │ …│
└─────────────────────────────────────────┘
Why MCP? It gives you a standardized mechanism for servers to expose tools and for clients to discover them through tools/list; the current MCP specification also supports pagination and caching-oriented deterministic tool ordering.
I wouldn't make MCP itself your entire discovery system.
There are really three layers:
AWS's current guidance explicitly distinguishes static MCP registration, dynamic discovery, and semantic search, and recommends filtering/searching when the tool catalog becomes large because tool definitions can consume substantial context.
| Layer | Recommendation |
|---|---|
| Tool protocol | MCP |
| Tool server | MCP servers |
| Tool catalog | Your own registry initially; MCP Registry/sub-registries where appropriate |
| Discovery | Semantic/vector + metadata search |
| Agent framework | OpenAI Agents SDK, LangGraph, or your own loop depending on requirements |
| Authorization | Per-tool/per-server capability + OAuth/OIDC |
| Observability | Trace every discovery + invocation |
| Large catalogs | Progressive disclosure / tool search |
The MCP ecosystem now has an official registry and supports organizational sub-registries, which makes the registry model increasingly practical.
Don't do this:
Agent context:
1,500 tool definitions
↓
LLM chooses one
Instead:
User request
↓
"find tools relevant to: refund a customer's order"
↓
Discovery service
↓
5 candidate tools
↓
load full schemas
↓
LLM selects tool
↓
MCP invocation
This is increasingly becoming a standard pattern: OpenAI's current agent tooling includes tool search that loads relevant tool definitions as needed, and its Agents SDK explicitly supports MCP plus progressive disclosure.
Give every tool a capability descriptor, something like:
{
"name": "refund_order",
"description": "Issue a refund for an existing customer order",
"capabilities": [
"commerce",
"orders",
"refunds"
],
"risk": "high",
"requires": [
"orders:read",
"orders:refund"
],
"examples": [
"refund order 12345",
"give customer a full refund"
],
"side_effects": true,
"version": "2.1"
}
Then your discovery service can combine:
semantic similarity
+ capability filters
+ authorization
+ tenant
+ environment
+ risk policy
+ version compatibility
+ historical success rate
That is much more robust than relying solely on an LLM reading tool descriptions.
If you're asking “which framework should we standardize on?”, my answer would be:
MCP as the tool interface, rather than treating LangChain/LangGraph/OpenAI Agents/etc. as the discovery protocol.
Then pick the agent runtime separately.
For example:
Agent Runtime
┌──────────────────┐
│ OpenAI Agents SDK│
│ / LangGraph │
│ / custom loop │
└────────┬─────────┘
│
Discovery API
│
MCP client
│
┌──────────────┼──────────────┐
▼ ▼ ▼
MCP server MCP server MCP server
CRM GitHub DB
That separation is valuable because you can change the agent framework without rewriting your entire tool ecosystem.
If you're building this for thousands of tools/agents, I'd go one step further: MCP + federated capability registry + semantic tool search + policy engine + progressive disclosure. There is also an emerging Agentic Resource Discovery specification specifically aimed at discovering tools, skills, and agents across federated registries, although it is still a draft rather than something I'd make the sole production dependency today.
If you tell me your scale (e.g. 20 tools vs. 10,000 tools, single agent vs. thousands of agents, cloud vs. on-prem), I can sketch the concrete architecture and APIs I'd use.
**The Model Context Protocol (MCP)** combined with an **MCP Gateway and Registry** is the industry standard and best architectural framework for dynamic tool discovery in production agent…
The Model Context Protocol (MCP) combined with an MCP Gateway and Registry is the industry standard and best architectural framework for dynamic tool discovery in production agent systems.
Instead of hardcoding tool definitions into an LLM's context window—which causes context bloat and token exhaustion when scaling to hundreds of tools—MCP decouples tool definitions from execution, allowing agents to query registries on demand.
tool_search primitive in its active context.| Approach | Context Window Impact | Scalability | Enterprise Governance |
|---|---|---|---|
| Static Tool Registration | High (Degraded performance with >20 tools) | Poor | Difficult to manage permissions at scale |
| Native API Function Calling | High (Loads all JSON schemas upfront) | Moderate | Manual per-model wiring |
| MCP + Gateway / Registry | Low (Loads only searched/active tools) | Virtually Limitless | Centralized policy, RBAC, and auditing |
If you'd like, let me know:
I can provide a reference implementation pattern for your stack.
If your core requirement is **“agents can discover tools at runtime, without hard-coding the tool catalog”**, I’d build around **Model Context Protocol (MCP)** rather than a framework-specific tool abstraction. MCP is explicitly designed for this: clients can call `tools/list`, receive tool names/descriptions/input…
If your core requirement is “agents can discover tools at runtime, without hard-coding the tool catalog”, I’d build around Model Context Protocol (MCP) rather than a framework-specific tool abstraction.
MCP is explicitly designed for this: clients can call tools/list, receive tool names/descriptions/input schemas, and invoke tools dynamically. It also supports listChanged notifications when the available tool set changes.
┌──────────────────────┐
│ Agent/LLM │
└──────────┬───────────┘
│
discover / select / call
│
┌──────────▼───────────┐
│ Tool Gateway │
│ (MCP) │
├──────────────────────┤
│ semantic search │
│ permissions/policy │
│ auth │
│ observability │
│ tool registry/cache │
└───────┬───────┬──────┘
│ │
┌─────────────┘ └─────────────┐
▼ ▼
MCP Server A MCP Server B
CRM tools Data tools
│ │
▼ ▼
APIs/DBs APIs/DBs
The important design choice is not to dump every tool schema into the LLM context. For a small number of tools, normal MCP discovery is sufficient. For hundreds or thousands of tools, use progressive/semantic discovery:
This matters because large MCP catalogs can consume huge amounts of context. Recent work on semantic MCP discovery specifically addresses this by retrieving only a small number of relevant tools rather than exposing 50–100+ tools at once.
| Need | Recommendation |
|---|---|
| Protocol for dynamic tools | MCP |
| Agent orchestration | Your preferred agent framework + MCP |
| 10–50 tools | Native MCP tools/list |
| 100s–1000s of tools | MCP + semantic/hybrid tool registry |
| Enterprise governance | MCP gateway/proxy |
| Tools changing frequently | Runtime MCP discovery |
| API-only/static integrations | OpenAPI can still be simpler |
AWS's current MCP guidance actually distinguishes static definitions, dynamic discovery, and search-based discovery, which is a useful way to think about the architecture.
There are also emerging MCP proxies specifically designed for this problem. For example, Dynamic Discovery MCP exposes compact meta-tools and loads full tool schemas only when needed.
I wouldn't make the agent's prompt contain something like:
You have 1,247 tools:
- create_customer(...)
- update_customer(...)
- ...
That works initially but scales badly in context usage, tool selection, latency, and accuracy.
Instead, make tool discovery itself a capability:
Agent
↓
search_tools("refund a customer's payment")
↓
[
refund_payment,
lookup_payment,
get_customer
]
↓
get_tool_schema("refund_payment")
↓
call("refund_payment", {...})
For a production system, I'd put the registry, semantic search, authorization, versioning, auditing, and MCP servers behind a gateway. This gives you a stable interface to the agents while allowing teams to add/remove tools independently.
One particularly relevant development is the 2026 MCP specification, which added stateless operation, cacheable/deterministically ordered list results, authorization hardening, and other capabilities that make MCP more suitable for scalable production deployments.
Bottom line: MCP + a tool-discovery gateway/search layer is the architecture I'd choose today. MCP gives you the interoperability standard; the gateway solves the harder problem of which tools the agent should see at a given moment.
If you're building this from scratch, I can also sketch a production-grade architecture and API design for the discovery gateway (including registry schema, semantic search, permissions, caching, and agent interaction loop).
**The Model Context Protocol (MCP)** combined with **Anthropic's Advanced Tool Use (Tool Search Tool)** is the leading framework standard for dynamic tool discovery.[](https://arxiv.org/html/2506.01056v3)…
The Model Context Protocol (MCP) combined with Anthropic's Advanced Tool Use (Tool Search Tool) is the leading framework standard for dynamic tool discovery.
Instead of stuffing hundreds of tool schemas into an agent's active context window—which explodes token costs and degrades reasoning performance—modern architectures use a discovery-first, injection-second paradigm.
| Framework / Pattern | Core Mechanism | Primary Advantage | Limitation |
|---|---|---|---|
| Model Context Protocol (MCP) | Client-server JSON-RPC runtime discovery | Universal interoperability across disparate tool vendors | Requires managing external server processes/transports |
| Tool Search / Deferred Schema | API-level deferred tool catalog with search primitive | ~98% reduction in context token consumption | Dependent on native provider support for search primitives |
| Vector-Based Tool Retrieval | Semantic embeddings of tool definitions in a vector DB | Scales to thousands of tools via similarity matching | Extra embedding latency and potential retrieval misses |
If you'd like, let me know:
I can give you a more tailored code pattern or architecture recommendation.
When building an agent system that scales past a dozen capabilities, packing every tool definition into the system prompt or API payload breaks down. Context windows get polluted, token costs spike, and model accuracy drops due to "lost-in-the-middle" schema confusion. The industry standard for solving this is…
When building an agent system that scales past a dozen capabilities, packing every tool definition into the system prompt or API payload breaks down. Context windows get polluted, token costs spike, and model accuracy drops due to "lost-in-the-middle" schema confusion.
The industry standard for solving this is Dynamic Tool Selection (or Just-In-Time Tool Discovery) —the principle of discovery first, injection second.
If your stack allows choosing or defaulting to Claude, Anthropic's native Tool Search Tool Documentation on the Claude Developer Platform is the cleanest paradigm for this.
If your tools are spread across microservices, databases, or third-party environments, the open standard to adopt is the Model Context Protocol (MCP).
If you need a code-first framework to manage the execution state of these discovered tools:
ToolNode payload for that specific turn, and pass execution cleanly.To help narrow down the best specific framework, tell me:
For a system where agents need to **discover tools at runtime and then use newly available tools without redeploying the agent**, I’d make **Model Context Protocol (MCP)** the foundation. MCP is specifically designed around this pattern: an MCP server exposes tools with names, descriptions, and JSON Schemas; clients…
For a system where agents need to discover tools at runtime and then use newly available tools without redeploying the agent, I’d make Model Context Protocol (MCP) the foundation.
MCP is specifically designed around this pattern: an MCP server exposes tools with names, descriptions, and JSON Schemas; clients can call tools/list, cache the catalog, receive change notifications, and invoke tools through tools/call.
┌─────────────────────┐
│ Agent │
│ │
│ Planner / LLM │
└──────────┬──────────┘
│
Tool Discovery Layer
│
┌──────────▼──────────┐
│ MCP Gateway │
│ │
│ • tool registry │
│ • semantic search │
│ • permissions │
│ • caching │
│ • routing │
└──────┬───────┬──────┘
│ │
┌────────────┘ └─────────────┐
▼ ▼
┌──────────────┐ ┌──────────────┐
│ MCP Server A │ │ MCP Server B │
│ GitHub tools │ │ DB tools │
└──────────────┘ └──────────────┘
tools/list lets the agent discover capabilities rather than having every tool hard-coded. listChanged, allowing clients to refresh their tool catalog when tools change. I wouldn't have the LLM blindly receive every tool from every server.
For a serious system, I'd build a tool registry/discovery service on top of MCP:
So MCP is the protocol, while your discovery service is the intelligence layer.
AWS describes a similar spectrum of MCP approaches—static registration, dynamic discovery, and a search function—with dynamic discovery/search becoming important as tool counts grow.
If you're asking specifically "what should we build on?", my ranking would be:
| Option | Best use |
|---|---|
| MCP | ⭐ Best foundation for dynamic, interoperable tool discovery |
| LangGraph | Agent orchestration/stateful workflows on top of MCP |
| OpenAI Agents SDK | Agent implementation where OpenAI models/services are central |
| LlamaIndex | Strong if your discovery problem is heavily knowledge/RAG-oriented |
| Custom registry + MCP | Best for large enterprise deployments |
The key is that I wouldn't treat LangGraph, LlamaIndex, or an agent SDK as the tool-discovery protocol. I'd use one of them for orchestration and MCP underneath it.
I'd implement:
MCP + centralized tool registry + semantic tool search + policy gateway + per-agent capability filtering.
The most important architectural decision is actually hierarchical discovery rather than dumping a giant tool catalog into the model context. Once you have hundreds or thousands of tools, retrieval/ranking, permissions, versioning, and tool-quality signals become as important as the protocol itself.
If you tell me roughly how many tools/agents you expect (10s, 100s, 10,000s) and whether tools are internal APIs, SaaS integrations, or dynamically generated, I can sketch the concrete architecture and recommend the specific SDK/framework stack.
If your core requirement is **agents discovering tools at runtime rather than having tools hard-coded into the agent**, I’d strongly recommend **Model Context Protocol (MCP)** as the protocol layer. As of the current MCP spec, it is specifically designed to let AI applications connect to independently deployed servers…
If your core requirement is agents discovering tools at runtime rather than having tools hard-coded into the agent, I’d strongly recommend Model Context Protocol (MCP) as the protocol layer.
As of the current MCP spec, it is specifically designed to let AI applications connect to independently deployed servers that expose tools, resources, and prompts. The latest 2026-07-28 release also makes the protocol stateless and adds cacheable tool listings and server/discover, which are particularly useful for dynamic discovery at scale.
┌───────────────────┐
│ Agent / LLM │
└─────────┬─────────┘
│
tool selection
│
┌─────────▼─────────┐
│ Tool Discovery │
│ / Registry │
└─────────┬─────────┘
│
┌────────────────┼────────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ MCP Server │ │ MCP Server │ │ MCP Server │
│ GitHub │ │ Database │ │ Payments │
└────────────┘ └────────────┘ └────────────┘
I'd separate discovery from execution:
"I need to query customer invoices", finds relevant tools rather than dumping thousands of tool definitions into context.MCP already has an official MCP Registry for discovering MCP servers, with support for organizations maintaining private sub-registries as well.
I wouldn't give the LLM the entire tool catalog.
Instead:
User task
↓
"Find tools capable of X"
↓
Semantic/tool registry search
↓
Top 5 candidate tools
↓
Policy + permissions check
↓
Fetch full MCP schema
↓
Expose tools to agent
↓
Agent calls tool
This solves a major problem with dynamic tool ecosystems: tool-definition explosion. If you have 10,000 tools, putting all 10,000 schemas in the model context is expensive and can actually make tool selection worse.
| Approach | Dynamic discovery | Standardized | Best use |
|---|---|---|---|
| MCP | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | General-purpose agent tools |
| OpenAPI + custom registry | ⭐⭐⭐ | ⭐⭐⭐⭐ | API-centric organizations |
| Function calling | ⭐ | ⭐⭐⭐ | Small, fixed toolsets |
| LangChain/LangGraph | ⭐⭐⭐ | ⭐⭐⭐ | Agent orchestration |
| Custom tool registry | ⭐⭐⭐⭐⭐ | ⭐ | Highly specialized systems |
| A2A | Different problem | ⭐⭐⭐⭐⭐ | Agent-to-agent communication |
The key distinction is that MCP is the tool connectivity/discovery protocol, while something like LangGraph is primarily an agent orchestration/runtime framework. You can—and often should—use them together.
For a serious production system, I'd use:
┌──────────────────────┐
│ Agent Runtime │
│ LangGraph / custom │
└──────────┬───────────┘
│
Tool Discovery API
│
┌──────────▼───────────┐
│ Tool Registry │
│ │
│ metadata │
│ embeddings │
│ capabilities │
│ versions │
│ permissions │
│ health │
└──────────┬───────────┘
│
MCP protocol
│
┌────────────────────┼────────────────────┐
▼ ▼ ▼
MCP Server A MCP Server B MCP Server C
CRM Data warehouse Internal APIs
I'd also make each tool have metadata beyond its MCP schema:
{
"name": "get_customer_invoices",
"description": "Retrieve invoices for a customer",
"capabilities": ["billing", "customer-data", "read"],
"risk": "low",
"requires": ["billing:read"],
"latency": "low",
"version": "2.1",
"tenant_scope": "acme",
"embedding": "..."
}
Then the agent can ask the registry:
Find tools that can retrieve billing information for customer X. The registry returns a small candidate set, and only then does the agent retrieve the actual MCP tool definitions.
Dynamic discovery means the agent can encounter tools that weren't known when the agent was deployed. Discovery must not imply authorization.
I'd enforce:
discover → rank → authorize → load schema → execute → audit
rather than:
discover → execute
The new MCP specification has also put significant emphasis on authorization hardening and enterprise identity, which makes MCP a considerably better foundation for this architecture than inventing a proprietary discovery protocol.
Bottom line: use MCP as the standardized tool protocol, put a semantic registry/discovery service in front of it, and use your agent framework (LangGraph, your own runtime, etc.) purely for orchestration. That's the architecture I'd choose if you're building an ecosystem where tools can be added independently and agents should discover them without redeployment.
If you're building this at 10s vs. 1,000s vs. 100,000s of tools, the optimal discovery architecture changes substantially.
When building a system for dynamic tool discovery, the industry has largely converged on a decoupled, protocol-driven approach rather than relying on a single monolithic agent framework. The premier architectural standard and ecosystem framework for dynamic tool discovery is the **Model Context Protocol (MCP)** ,…
When building a system for dynamic tool discovery, the industry has largely converged on a decoupled, protocol-driven approach rather than relying on a single monolithic agent framework.
The premier architectural standard and ecosystem framework for dynamic tool discovery is the Model Context Protocol (MCP) , paired natively with provider-level paradigms like Anthropic's Tool Search Tool or framework-level registries (such as Spring AI's Tool Index or LangChain's dynamic toolkits).
Instead of hardcoding tools into an agent's initialization manifest, Model Context Protocol (MCP) (originally pioneered by Anthropic and widely adopted across enterprise ecosystems like Microsoft 365 Copilot and Truefoundry) treats tools as dynamic microservices.
Scaling to hundreds or thousands of tools will overflow an LLM's context window and degrade reasoning performance. The best architectural pattern to implement on top of an MCP or registry backend is Dynamic Tool Selection (Tool Search):
Tool Search primitive).| Approach / Framework | Best For | Pros | Cons |
|---|---|---|---|
| Model Context Protocol (MCP) | Universal, decoupled enterprise architecture | Standardized, language-agnostic, secure environment/permission scoping. | Requires managing separate server processes. |
| Anthropic Tool Search / Advanced Tool Use | Native API-level dynamic filtering | Highly optimized token efficiency; scales to thousands of tools seamlessly. | Tied closely to specific LLM API capabilities. |
| Spring AI (Tool Index / Dynamic Search) | Enterprise Java ecosystems | Out-of-the-box local indexing and runtime schema expansion. | Restricted to the Spring/Java ecosystem. |
| LangChain / LangGraph (Custom Registries) | Python-centric custom agent graphs | Extreme flexibility to write custom vector-store or keyword-based tool retrievers. | High maintenance overhead to build secure registry plumbing manually. |
To help tailor this architecture to your stack, let me know:
If your core requirement is **“agents should discover tools dynamically at runtime, without hard-coding every tool into the agent”**, I’d build around **MCP (Model Context Protocol)** and use **OpenAI Agents SDK + MCP** as the agent runtime. ### My recommendation **Architecture:**
If your core requirement is “agents should discover tools dynamically at runtime, without hard-coding every tool into the agent”, I’d build around MCP (Model Context Protocol) and use OpenAI Agents SDK + MCP as the agent runtime.
Architecture:
┌─────────────────────┐
│ Agent / Planner │
└──────────┬──────────┘
│
tool discovery
│
┌──────────▼──────────┐
│ Tool Registry / │
│ MCP Discovery │
└──────────┬──────────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ GitHub │ │ Database │ │ Payments │
│ MCP │ │ MCP │ │ MCP │
└──────────┘ └──────────┘ └──────────┘
Why MCP? It gives you a standardized interface for exposing tools and context to agents, rather than inventing your own discovery protocol. The OpenAI Agents SDK has native MCP support, including remote Streamable HTTP servers, stdio servers, hosted MCP, tool filtering, caching, and tracing.
There are really two problems:
For your use case, I'd choose:
| Requirement | Recommendation |
|---|---|
| Standard tool protocol | MCP |
| Dynamic discovery | MCP + deferred tool loading/tool search |
| Agent runtime | OpenAI Agents SDK |
| Complex deterministic workflows | Add LangGraph if needed |
| Large tool catalog | Registry + semantic search + deferred loading |
| Security | Server/tool allowlists + approval gates |
| Observability | Agents SDK tracing |
The Agents SDK now supports deferred tool loading, where large tool surfaces aren't placed into the model context up front; the model can search/load tools when needed. It also supports deferred hosted MCP servers.
I would not expose 500 tools to every agent.
Instead:
User request
│
▼
┌──────────────┐
│ Agent │
│ "I need a │
│ CRM lookup" │
└──────┬───────┘
│
▼
┌────────────────────┐
│ Tool Search │
│ │
│ semantic/category │
│ discovery │
└────────┬───────────┘
│
▼
Candidate tools
│
▼
┌────────────────────┐
│ Policy / Permission│
│ filtering │
└────────┬───────────┘
│
▼
Load tool schema
│
▼
Execute MCP
This gives you progressive disclosure: the model sees a small set of relevant tools rather than an enormous function schema.
The OpenAI Agents SDK explicitly supports this pattern through ToolSearchTool and deferred function/MCP tools.
For a production system, I'd create your own tool registry/catalog above MCP.
Something like:
{
"name": "salesforce.search_contacts",
"description": "Find Salesforce contacts matching criteria",
"server": "salesforce-mcp",
"capabilities": ["crm", "contacts", "search"],
"risk": "read",
"auth": ["salesforce"],
"tenant_scoped": true
}
Then discovery becomes:
Agent
↓
Tool Search
↓
Your Registry
↓
Relevant MCP servers/tools
↓
Permission filter
↓
MCP tool
That separation is valuable because MCP answers “how do I call this tool?”, while your registry answers “which tools should this agent even be allowed to discover?”
If I were starting this system today:
MCP for the tool ecosystem + OpenAI Agents SDK for the agent runtime + a semantic/policy-aware tool registry for discovery. I would avoid building a proprietary dynamic-tool protocol unless you have requirements MCP can't satisfy. MCP already gives you the interoperability layer, while the Agents SDK provides native dynamic/deferred tool loading and MCP integration.
If you're expecting thousands of tools / hundreds of MCP servers, the interesting architectural question becomes the tool registry and retrieval layer—that's where I'd spend most of the design effort.
The best framework standard for dynamic tool discovery is the `Model Context Protocol (MCP)` , paired with native runtime features like Anthropic's **Tool Search Tool** or LangChain's dynamic provider packages.[](https://www.anthropic.com/engineering/advanced-tool-use)…
The best framework standard for dynamic tool discovery is the Model Context Protocol (MCP) , paired with native runtime features like Anthropic's Tool Search Tool or LangChain's dynamic provider packages.
According to Lunar Dev, “MCP gateway-based architectures scale to hundreds or thousands of tools without exploding context size, making Dynamic Tool Selection a key building block for real-world, production-grade agent infrastructure.”
Top Frameworks & Approaches
Comparison of Discovery Patterns
| Approach | How It Works | Context Impact | Best Use Case |
|---|---|---|---|
| Static Binding | All tool schemas loaded in initial prompt. | High (wastes tokens) | Small tool sets (< 10 tools) |
| Tool Search / MCP | Agent queries a registry index to pull schemas on demand. | Low (loads subset) | Enterprise scale (100+ tools) |
| Programmatic Calling | Agent writes code to execute tool calls directly. | Minimal | Multi-step data loops |
If you'd like to narrow this down, please tell me: