Toolkits

Upsert a custom toolkit

Changed on

Experimental: custom toolkits are in pilot and this contract may change. Creates a custom toolkit for the project with the provided slug, or updates its display metadata (name, API key field copy) when the project already owns a toolkit with that slug. A toolkit created here is shared with every user in the project; an existing toolkit keeps its access. app_url and auth_schemes cannot be changed on an existing toolkit: re-sending them unchanged is a no-op, changing them returns 409 (delete and re-register the toolkit instead, which revokes its connections).

post/api/v3.1/custom/toolkits/upsert

Request

  • Base URL
    https://backend.composio.dev
  • URL
    https://backend.composio.dev/api/v3.1/custom/toolkits/upsert
  • Auth
    • API key in header x-api-key
    • or API key in header x-user-api-key

Request body

slugstring required

Unique slug identifier for the toolkit. Your slug will be prefixed with CUSTOM_ to avoid collision with composio managed toolkits. Spaces will be converted to underscores.

Example request

{
  "slug": "MY_TOOLKIT",
  "toolkit_config": {
    "auth_schemes": [
      {
        "discovery_url": "https://mcp.example.com/.well-known/oauth-authorization-server"
      }
    ]
  }
}

Response

Successfully upserted toolkit

slugstring required

Slug to be used with composio

Example response

{
  "slug": "CUSTOM_MY_TOOLKIT"
}

Changes