Composio · Schema
Composio Tool
Represents an individual tool action within a Composio toolkit, including its metadata, input parameters, and the toolkit it belongs to.
AI AgentsAuthenticationIntegrationsMCPOAuthSandboxToolsTriggersUnified_APIWebhooks
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier for the tool. |
| name | string | Human-readable name of the tool. |
| description | string | Description of the tool's functionality and what it does. |
| toolkit | string | The toolkit (application) this tool belongs to, such as 'github', 'gmail', or 'slack'. |
| parameters | object | JSON Schema describing the required and optional input parameters for the tool. |
| tags | array | Categorization tags for the tool. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://composio.dev/schemas/composio/tool.json",
"title": "Composio Tool",
"description": "Represents an individual tool action within a Composio toolkit, including its metadata, input parameters, and the toolkit it belongs to.",
"type": "object",
"required": ["id", "name", "toolkit"],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the tool.",
"minLength": 1
},
"name": {
"type": "string",
"description": "Human-readable name of the tool.",
"minLength": 1
},
"description": {
"type": "string",
"description": "Description of the tool's functionality and what it does."
},
"toolkit": {
"type": "string",
"description": "The toolkit (application) this tool belongs to, such as 'github', 'gmail', or 'slack'.",
"minLength": 1
},
"parameters": {
"$ref": "#/$defs/ParameterSchema",
"description": "JSON Schema describing the required and optional input parameters for the tool."
},
"tags": {
"type": "array",
"description": "Categorization tags for the tool.",
"items": {
"type": "string"
}
}
},
"$defs": {
"ParameterSchema": {
"type": "object",
"description": "Schema describing the input parameters for a tool.",
"properties": {
"type": {
"type": "string",
"const": "object"
},
"required": {
"type": "array",
"description": "List of required input parameter names.",
"items": {
"type": "string"
}
},
"properties": {
"type": "object",
"description": "Map of parameter names to their type definitions.",
"additionalProperties": {
"$ref": "#/$defs/ParameterDefinition"
}
}
}
},
"ParameterDefinition": {
"type": "object",
"description": "Definition of a single input parameter for a tool.",
"properties": {
"type": {
"type": "string",
"description": "The data type of the parameter.",
"enum": ["string", "integer", "number", "boolean", "array", "object"]
},
"description": {
"type": "string",
"description": "Human-readable description of the parameter."
},
"enum": {
"type": "array",
"description": "Allowed values for the parameter."
},
"default": {
"description": "Default value for the parameter when not provided."
},
"format": {
"type": "string",
"description": "Format hint for the parameter value, such as 'email', 'uri', or 'date-time'."
}
}
}
}
}