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.
View JSON Schema on GitHub

JSON Schema

composio-tool-schema.json Raw ↑
{
  "$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'."
        }
      }
    }
  }
}