Creating Custom Tools
Learn how to create, configure, and manage custom tools in Reeva.
What Are Custom Tools?
Custom Tools are your personalized configurations of Reeva's base tools. They allow you to:
- Set default parameters - Pre-fill common values to simplify usage
- Link credentials - Connect your service accounts once and reuse
- Name descriptively - Use meaningful names that describe their purpose
- Reuse across servers - Create once, use in multiple servers
- Maintain consistency - Ensure the same configuration across projects
Base Tools vs Custom Tools
Base Tools are the 70+ integrations built and maintained by Reeva:
- Generic, unconfigured
- Available to all users
- Cannot be modified
- Examples:
google_search,firecrawl_scrape,notion_create_page
Custom Tools are your instances of base tools:
- Personalized configuration
- Owned by your account
- Can be edited or deleted
- Examples: "My Blog Scraper", "Company Notion Search", "Dev Jira Tickets"
Example
Base Tool: firecrawl_scrape
{
"name": "firecrawl_scrape",
"parameters": {
"url": "required",
"formats": "optional",
"onlyMainContent": "optional"
}
}
Custom Tool: "Blog Content Scraper"
{
"name": "Blog Content Scraper",
"base_tool": "firecrawl_scrape",
"param_overrides": {
"formats": ["markdown"],
"onlyMainContent": true
},
"credential_id": "my_firecrawl_account"
}
Now when AI uses "Blog Content Scraper", it only needs to provide the url - the other parameters are pre-configured.
Creating Custom Tools
- On the side nav select the Tools option
- Select the Browse Tools tab
- Find the tool you wish to use on your server
- Click Add on the tool you wish to use. This will effectically make a clone of the Reeva base tool for you to customize or just use out-of-the-box. This new tool will now show up in the My Tools Tab.
- Navigate the My Tools tab and click on the tool you just added.
- You will now be given the opportunity to edit and configure the tool.
Parameter Overrides and Input Schemas
Each tool defines an input schema, which AI agents use to understand what is required when invoking the tool. You can modify the descriptions of certain fields within that schema, allowing you to guide agents on how your tool should be used.
Beyond customizing descriptions, you can also override fields that you don’t want agents to populate dynamically. For example, if you want to scrape a specific subreddit, you can take a generic scraping tool and hard-code the URL parameter to that subreddit. This ensures the agent never supplies an incorrect URL when using your tool.
When you provide an override, an AI agent may still try to populate that field when calling the tool. However, the tool will not execute with the agent provided value, but rather the override you specified.
Example: Web Search Configuration
Base Tool Parameters:
{
"query": "required",
"num_results": "optional, default: 10",
"safe_search": "optional, default: moderate"
}
Custom Tool Overrides:
{
"param_overrides": {
"num_results": 20,
"safe_search": "strict"
}
}
Runtime Call:
{
"query": "MCP protocol"
}
Actual Execution:
{
"query": "MCP protocol",
"num_results": 20,
"safe_search": "strict"
}
When to Use Overrides
✅ Good Use Cases:
- Setting consistent output formats (
formats: ["markdown"]) - Defining result limits (
num_results: 5) - Configuring behavior (
onlyMainContent: true) - Setting default models (
model: "sonar-pro")
❌ Avoid:
- Overriding values that should vary per call (like search queries)
- Setting very restrictive constraints
- Duplicating required parameters
Credential Linking
Many tools require authentication to external services. You link credentials when creating custom tools.
Linking Process
-
Create Account First
- Dashboard → Accounts → Add Account
- Select service and authenticate
- Save credentials
-
Link to Custom Tool
- When creating custom tool
- Select the credential from dropdown
- Save
-
Automatic Injection
- When the tool executes, credentials are automatically injected
- You never expose credentials in tool calls
Some tools require credentials, while others accept optional credentials. If you don’t provide credentials for a tool that supports optional ones, the platform (Reeva) credentials will be used automatically.
If you do provide your own optional credentials, we’ll use them at execution time. However, if those credentials fail, we will NOT fall back to the platform credentials—the tool call will return an error.
Example: Notion Custom Tool
{
"name": "My Company Notion",
"base_tool_id": "notion_search_pages",
"credential_id": "account_abc123",
"param_overrides": {
"page_size": 10
}
}
When this tool runs:
- Your Notion token is automatically injected
- AI can search Notion without knowing your credentials
- You can update the token without changing the custom tool
Deleting Tools
Warning: Deleting a custom tool removes it from all servers using it.
Via Dashboard:
- Click on custom tool → Delete → Confirm
Using Custom Tools in Servers
Once created, custom tools can be added to one or more of your servers.
Reusing Tools
Custom tools can be used in multiple servers:
Custom Tool: "My Firecrawl Scraper"
├── Server 1: "Research Server"
├── Server 2: "Content Aggregator"
└── Server 3: "Documentation Builder"
Benefits:
- Consistent configuration across projects
- Update once, applies everywhere
- Easier to manage credentials
IMPORTANT NOTE — a server cannot have two tools with the same name. If we allowed this, AI Agents would have a nearly impossible time selecting the correct one. You can have two tools with the same base tool, they just need to have a different name. For example, you can have the same Firecrawl Scraper tool on a server multiple times as long as you have give unique names to each tool.
Best Practices
- Be descriptive. Be descriptive. Be descriptive. AI Agents love to guess at an answer when it's even a little bit ambiguous. The best think you can do to make your tools usable by AI Agents is to make sure they have:
- Clear and descriptive names
- Overly verbose descriptions
- Verbose descriptions for EACH parameter in the input schema.
- Use parameter overrides for any fields you do not want the LLM to fill out.
Security Best Practices
-
Credential Hygiene:
- Use separate credentials for dev/staging/prod
- Rotate credentials every 90 days
- Revoke unused credentials immediately
-
Audit Trail:
- Check usage logs regularly
- Review credit consumption by tool
- Investigate unexpected usage patterns