Building Custom Agents
Learn how to build custom agents using MCPClient and integrate tools with different agent frameworks
Building Custom Agents
MCP-Use provides flexible options for building custom agents that can utilize MCP tools. This guide will show you how to create your own agents by leveraging the existing adapters, particularly focusing on the LangChain adapter.
Overview
MCP-Use allows you to:
- Access powerful tools from MCP through connectors
- Convert those tools to different frameworks using adapters
- Build custom agents that utilize these tools
While MCP-Use provides a built-in MCPAgent
class, you may want to create your own custom agent implementation for more flexibility or to integrate with other frameworks.
Using the LangChain Adapter
The LangChainAdapter
is a powerful component that converts MCP tools to LangChain tools, enabling you to use MCP tools with any LangChain-compatible agent.
Basic Example
Here’s a simple example of creating a custom agent using the LangChain adapter with the simplified API:
Note how the API simplifies tool creation - all you need is to create an adapter instance and call its create_tools
method:
You don’t need to worry about sessions, connectors, or initialization. The adapter handles everything for you.
Contributing New Adapters
MCP-Use welcomes contributions for integrating with different agent frameworks. The adapter architecture is designed to make this process straightforward.
Adapter Architecture
MCP-Use provides a BaseAdapter
abstract class that handles most of the common functionality:
- Managing tool caching
- Loading tools from connectors
- Handling connector initialization
- Iterating through tools from multiple connectors
To create an adapter for a new framework, you only need to implement one required method:
_convert_tool
: Convert a single MCP tool to your framework’s tool format
Creating a New Adapter
Here’s a simple template for creating a new adapter:
Using Your Custom Adapter
Once you’ve implemented your adapter, you can use it with the simplified API:
Tips for Implementing an Adapter
-
Schema Conversion: Most frameworks have their own way of handling argument schemas. You’ll need to convert the MCP tool’s JSON Schema to your framework’s format.
-
Tool Execution: When a tool is called in your framework, you’ll need to pass the call to the connector’s
call_tool
method and handle the result. -
Result Parsing: MCP tools return structured data with types like text, images, or embedded resources. Your adapter should parse these into a format your framework understands.
-
Error Handling: Ensure your adapter handles errors gracefully, both during tool conversion and execution.
Conclusion
Building custom agents with MCP-Use offers tremendous flexibility while leveraging the power of MCP tools. By combining different connectors and adapters, you can create specialized agents tailored to specific tasks or integrate MCP capabilities into existing agent frameworks.
The adapter architecture makes it easy to extend MCP-Use to support new frameworks - you just need to implement the _convert_tool
method to bridge between MCP tools and your framework of choice.
With the simplified API, you can create tools for your framework directly from an MCPClient by instantiating the appropriate adapter and calling its create_tools
method, hiding all the complexity of session and connector management.
We welcome contributions to expand the adapter ecosystem - if you develop an adapter for a new framework, please consider contributing it back to the project!