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​