Skip to main content

MCP Tools

Create custom tools using the Model Context Protocol (MCP).

What You'll Learn

Overview

MCP (Model Context Protocol) lets you create custom tools that extend AI capabilities. Connect your APIs, databases, and services to AI.

Why Create Custom Tools?

BenefitDescription
Custom Integrations - Connect to your APIs
Business Logic - Implement domain-specific actions
Data Access - Query your databases
Workflows - Automate complex processes
External Services - Integrate with third-party systems

MCP Architecture

┌─────────────┐
│ AI Agent │
└──────┬──────┘

├────────────┐
│ MCP │
└────────────┘

├────────────┬────────────┬────────────┐
│ │ │ │
┌────▼────┐ ┌───▼────┐ ┌───▼────┐ ┌───▼────┐
│ API A │ │ API B │ │ DB │ │ Service │
└──────────┘ └──────────┘ └──────────┘ └──────────┘

Use Cases

Use CaseExample
Order Management - Check order status, create orders
Weather Data - Get current weather and forecasts
CRM Integration - Access customer data
Inventory - Check product availability
Payment - Process payments and refunds
Analytics - Query business metrics

Quick Example

# Configure MCP server
# In .env file
MCP_ORDER_API_URL=https://order-api.example.com
MCP_ORDER_API_KEY=your-api-key

# Create agent with MCP tool
response = requests.post(
"http://localhost/api/v1/agent/configs",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"name": "order_agent",
"system_prompt": "Help users with their orders using order API.",
"model": "gpt-4",
"mcp_servers": ["ORDER_API"],
"tool_choice": "auto",
"max_iterations": 5
}
)

agent_id = response.json()["id"]

# Chat with agent
chat_response = requests.post(
"http://localhost/api/v1/agent/chat",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"agent_id": agent_id,
"message": "What's the status of order #12345?"
}
)

print(f"Response: {chat_response.json()['response']}")

MCP Servers

MCP servers provide tools through a standardized API. You can:

  • Configure existing MCP servers - Connect to pre-built integrations
  • Create custom MCP servers - Build your own tools
  • Use multiple servers - Combine tools from different sources

Configuration

MCP servers are configured using environment variables:

# In .env file
MCP_SERVER_NAME_URL=https://api.example.com
MCP_SERVER_NAME_KEY=api-key
MCP_SERVER_NAME_TIMEOUT=30

Tool Schema

MCP tools follow a standard schema:

{
"name": "get_order_status",
"description": "Get the status of an order",
"parameters": {
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "Order ID",
"required": true
}
}
}
}

Best Practices

  1. Security - Use API keys and authentication
  2. Error handling - Handle failures gracefully
  3. Rate limiting - Respect API limits
  4. Documentation - Document tool parameters
  5. Testing - Test tools before production
  6. Monitoring - Track tool usage and performance

Next Steps