Skip to main content
POST
/
v1
/
flow
/
tools
curl --request POST \
  --url https://flow.seekr.com/v1/flow/tools \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "my file search tool",
  "description": "contains files about ",
  "type": "file_search",
  "config": {
    "file_search_index": "my-document-index",
    "top_k": 10,
    "score_threshold": 0.7
  }
}
'
{
  "id": "<string>",
  "name": "<string>",
  "config": {
    "FILE_SEARCH_INDEX": "<string>",
    "EMBEDDING_MODEL": "<string>",
    "TOP_K": 10,
    "SCORE_THRESHOLD": 0
  },
  "user_id": "<string>",
  "team_id": "<string>",
  "version": 123,
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "description": "<string>",
  "type": "file_search"
}
Create a tool to extend an agent’s capabilities. Supported tool types include file search, web search, code interpreter, custom tools, agent as tool, and MCP connector. For an overview of all tool types and how they work, see Tools.

MCP connector

To create an MCP connector tool, set type to mcp_connector and provide the server URL in config.URL. Optionally include config.CLIENT_ID and config.CLIENT_SECRET if your MCP server requires OAuth without dynamic client registration. If an OAuth flow is required, the tool is created with a status of pending_authorization. Open the AUTHORIZATION_URL from the response in a browser and complete the flow. Once authorized, the tool status changes to active and it can be linked to an agent. If you don’t complete the flow within one hour, the OAuth window expires and the tool moves to failed status. To use it again, delete it and create a new one. For servers that require no authentication, the tool is created with active status and can be linked to an agent immediately. For a full walkthrough including SDK examples, see MCP connector.

Agent as tool

To create an agent-as-tool, set type to agent_as_tool and provide the sub-agent’s ID in config.agent_id. The sub-agent must already exist before creating the tool. Each agent can only have one agent-as-tool. If an agent-as-tool already exists for the provided agent_id, the request returns an error.

Errors

  • "Tool already exists: <tool-name>" — A tool with this name already exists. Tool names must be unique per user.
  • "Tool already exists for given agent: <agent-id>" — An agent-as-tool already exists for this agent. Each agent can only have one.
For a full walkthrough including SDK examples and constraints, see Agent as tool.

Authorizations

Authorization
string
header
required

Seekr API Key without 'Bearer' Prefix

Body

application/json
name
string
required
description
string
required
config
FileSearchConfig · object
required
type
string
default:file_search
Allowed value: "file_search"

Response

Successful Response

id
string
required
name
string
required
config
FileSearchConfig · object
required
user_id
string
required
team_id
string | null
required
status
enum<string>
required
Available options:
Active,
Inactive,
Deprecated,
Pending_authorization,
Failed
version
integer
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
description
string | null
type
string
default:file_search
Allowed value: "file_search"
Last modified on June 18, 2026