Custom Tools
When built-in tools don’t cover your use case, you can create custom tools that call any HTTP endpoint. This lets your agent interact with your own APIs, internal services, or any third-party system.Creating a Custom HTTP Tool
From the Dashboard
- Go to your agent’s Tools section.
- Click Add Tool and select Custom Tool (API).
- Configure the tool:
| Field | Description | Example |
|---|---|---|
| Name | A descriptive name the agent uses to understand the tool | check_inventory |
| Description | What the tool does — the agent reads this to decide when to use it | Check product inventory levels by SKU |
| Endpoint URL | The API endpoint to call | https://api.yourstore.com/inventory |
| HTTP Method | GET, POST, PUT, PATCH, or DELETE | GET |
| Headers | Custom headers (authentication, content type, etc.) | Authorization: Bearer xxx |
| Parameters | Input parameters the agent will fill in | sku (string, required) |
Writing a Good Description
The description is critical — it’s how the agent decides when to use your tool. Be specific:Configuring the Request
URL Parameters
For GET requests, define query parameters:Request Body
For POST/PUT requests, define the JSON body schema:Authentication
Configure authentication in the Headers section:Response Mapping
By default, the agent receives the full JSON response from your API. You can optionally configure response mapping to extract specific fields:| Setting | Description |
|---|---|
| Response Path | JSONPath to extract a specific field (e.g., data.results) |
| Result Description | Help the agent understand what the response contains |
Example: Extracting Nested Data
If your API returns:data.inventory so the agent receives just the inventory object.
Testing Custom Tools
Before deploying, test your custom tool:- In the tool configuration panel, click Test Tool.
- Fill in sample parameter values.
- Click Run Test to see the actual API response.
- Verify the response looks correct.
- Save the tool configuration.
MCP (Model Context Protocol) Integration
MCP lets you connect external tool servers to your agents. An MCP server exposes a set of tools over a standardized protocol, so your agent can discover and use them automatically.What is MCP?
MCP is an open protocol that standardizes how AI agents communicate with tool servers. Instead of configuring each tool individually, you point your agent at an MCP server and it automatically discovers all available tools.Connecting an MCP Server
- Go to your agent’s Tools section.
- Click Add Tool and select MCP Server.
- Enter the MCP server URL:
- Configure authentication if required (API key or bearer token).
- Click Discover Tools — thinnestAI will fetch the list of available tools from the server.
- Select which tools to enable for your agent.
- Save.
Running Your Own MCP Server
You can build an MCP server to expose your internal tools and APIs:MCP Use Cases
- Internal APIs — Expose company-specific tools without building custom integrations for each one.
- Shared tool servers — One MCP server can serve tools to multiple agents.
- Third-party MCP servers — Connect to the growing ecosystem of public MCP servers.
Best Practices
Tool Naming
- Use
snake_casenames:check_inventory,create_order,get_user_info. - Make names action-oriented: the agent should understand what the tool does.
Descriptions
- Describe inputs and outputs clearly.
- Mention edge cases: “Returns null if the user is not found.”
- Include example values when helpful.
Error Handling
- Your API should return meaningful error messages.
- The agent will read error responses and can explain them to the user or retry.
- Use standard HTTP status codes (400 for bad input, 404 for not found, etc.).
Security
- Use HTTPS for all production endpoints.
- Rotate API keys regularly.
- Limit tool permissions to only what the agent needs (read-only if possible).
- Consider rate limiting on your API to prevent excessive calls.
Example: Order Status Checker
Here’s a complete example of a custom tool that checks order status: Tool Configuration:| Field | Value |
|---|---|
| Name | check_order_status |
| Description | Look up the status of a customer order by order ID. Returns the current status, estimated delivery date, and tracking number if available. |
| Endpoint | https://api.yourstore.com/orders/{order_id}/status |
| Method | GET |
| Headers | Authorization: Bearer sk-store-api-key |
| Name | Type | Required | Description |
|---|---|---|---|
| order_id | string | Yes | The order ID (e.g., ORD-12345) |
Next Steps
- CRM & Webhooks — Connect to CRMs and send data to external systems.
- Built-in Tools — Browse all pre-built tools available.

