{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/scale-ai/json-schema/scale-ai-mcp-tool-schema.json",
  "title": "McpTool",
  "description": "Subset of ``AllowedTool`` values that represent MCP servers.\n\nSingle source of truth for which tool names route to MCPs (Linear,\nNotion, ...) vs harness-provided tools (Read, Bash, ...). Values must\nstay aligned with the matching ``AllowedTool`` members.\n\nThe frontend reads this enum's members via the generated SDK\n(``components['schemas']['McpTool']``). Its own ``MCP_TOOLS`` list in\n``egp-annotation/.../beta/build/custom/_api/constants.ts`` is asserted at\ncompile time to be a SUBSET of this enum, so renaming or removing a member\nhere fails the frontend typecheck. The reverse is deliberately not enforced:\na name can exist here while the UI still hides it, which is how a server is\nstaged before its OAuth flow is ready.\n\nLike ``AllowedTool``, this list is permissive by design. Presence here only\nmeans the API accepts the name; the golden agent's catalog decides whether it\nresolves, and ``MCP_TOOLS`` decides whether it is offered.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/scale-ai-agent-configs-api-openapi.yml#/components/schemas/McpTool",
  "type": "string",
  "enum": [
    "Slack",
    "Linear",
    "GitHub",
    "Confluence",
    "Notion",
    "Datadog",
    "PagerDuty",
    "Salesforce",
    "Figma",
    "Granola",
    "Jira",
    "Gmail",
    "GoogleCalendar",
    "GoogleDrive",
    "GoogleDocs",
    "GoogleSheets",
    "GoogleSlides",
    "Snowflake",
    "Redash",
    "Tableau",
    "Metabase",
    "Gong",
    "ZoomInfo",
    "Clay"
  ]
}