Custom Tools
Audience: Developers
Custom Tools (API & MCP)
GL Open DeepResearch provides native support for dynamically extending the agent's capabilities using Custom Tools. Instead of writing Python code, you can register HTTP integrations (API Tools) or Model Context Protocol servers (MCP Tools) directly via the API. Once registered, these tools can be attached to any Profile.
1. Types of Custom Tools
API Tools (api_config)
api_config)API Tools allow the agent to make HTTP queries to external or internal systems (e.g. searching a database, triggering a webhook, or querying a specialized service). The agent is provided with the parameter schema and autonomously decides when and how to call the API.
Key Features:
Support for
GET,POST,PUT,PATCH,DELETE.Dynamic Request Bodies: Use
{{param_name}}templates in therequest_bodypayload to dynamically inject the agent's parameters into nested JSON structures.Response Extraction: Use
extract_fieldsto specify dot-notation JSON paths to isolate the exact data the agent needs, ignoring bloated API responses.Authentication: Built-in secure support for
api-key,bearer-token, andbasicauth.
MCP Tools (mcp_config)
mcp_config)Model Context Protocol (MCP) is an open standard for securely connecting AI models to data sources. Registering an MCP server allows the agent to automatically discover and use all the sub-tools exposed by that server.
Key Features:
Supports both
sse(Server-Sent Events) andstdiotransports.Sub-tool filtering via
allowed_tools.Automatic negotiation of tool schemas directly from the MCP Server.
At runtime, mcp_config in the research request may use UUID keys (registered configs) or custom name keys (inline servers). Inline name keys are honored only if the selected profile has params.allow_inject_mcp_server: true; otherwise the API returns a validation error.
2. Managing Custom Tools
You can govern Custom Tools via the REST API endpoints. See the detailed schemas in the API Contract - Tools.
Example: Creating an API Tool
The response will include the unique id (UUID) for this tool.
3. Attaching Tools to a Profile
To make the tool available to the deep research agent, you must add the tool's UUID to the params.tools list within a Profile.
Whenever a task is launched using the HR_RESEARCHER profile, the agent will have the ability to call the company_directory_search tool dynamically.
4. Runtime Configurations (Overriding Tools per Request)
In many production environments, you may not want to store sensitive authentication tokens (like user-specific OAuth tokens) globally in the database.
GL Open DeepResearch allows you to securely inject or override tool configurations at runtime when creating a Task or Taskgroup. You can pass the api_config or mcp_config maps in the POST /v1/tasks or POST /v1/taskgroups payloads.
The key in the map must match the tool's UUID.
Example: Supplying User-Specific Auth at Runtime
This ensures the agent performs the tool call perfectly scoped to the permissions of the user initiating the task, without ever persisting their token in the system configurations!
Last updated
