{
  "protocolVersion": "0.3.0",
  "name": "Zentract Agent Discovery",
  "description": "Workspace operations for Zentract tasks, task creation and updates, projects, clients, time entries, manual time-entry creation, and timers, after signing in with Zentract.",
  "url": "https://mcp.zentract.io/mcp",
  "preferredTransport": "MCP",
  "additionalInterfaces": [
    {
      "url": "https://mcp.zentract.io/mcp",
      "transport": "MCP"
    }
  ],
  "provider": {
    "organization": "Zentract",
    "url": "https://zentract.io"
  },
  "version": "0.1.1",
  "documentationUrl": "https://zentract.io/api-docs",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extensions": [
      {
        "uri": "https://modelcontextprotocol.io/specification",
        "description": "Zentract exposes executable agent tools through MCP Streamable HTTP; use the MCP server card for connection details.",
        "required": true,
        "params": {
          "mcpEndpoint": "https://mcp.zentract.io/mcp",
          "mcpServerCard": "https://zentract.io/.well-known/mcp.json"
        }
      }
    ]
  },
  "securitySchemes": {
    "zentractOAuth": {
      "type": "oauth2",
      "description": "OAuth2 authorization code flow with PKCE through the Zentract MCP bridge; signing in with Zentract is required for every tool.",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://mcp.zentract.io/authorize",
          "tokenUrl": "https://mcp.zentract.io/oauth/token",
          "scopes": {
            "projects:read": "View projects and their details",
            "projects:write": "Create and update projects",
            "projects:delete": "Delete projects",
            "tasks:read": "View tasks and their details",
            "tasks:write": "Create and update tasks",
            "tasks:delete": "Delete tasks",
            "clients:read": "View clients and their details",
            "clients:write": "Create and update clients",
            "clients:delete": "Delete clients",
            "time-entries:read": "View time entries",
            "time-entries:write": "Create and update time entries",
            "proposals:read": "View proposals",
            "proposals:write": "Create and update proposals",
            "proposals:delete": "Delete proposals",
            "quotes:read": "View quotes",
            "quotes:write": "Create and update quotes",
            "intake:read": "View intake forms and submissions through MCP",
            "intake:write": "Create, update, publish and unpublish intake forms through MCP"
          }
        }
      }
    }
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "skills": [
    {
      "id": "get-zentract-task",
      "name": "Get Zentract Task",
      "description": "Read a task’s full description and details in the selected organization. Descriptions may contain sanitized rich-text HTML.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "get",
        "task"
      ],
      "examples": [
        "Use Get Zentract Task through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:read"
          ]
        }
      ]
    },
    {
      "id": "get-current-zentract-context",
      "name": "Get Current Zentract Context",
      "description": "Return the authenticated Zentract user, organization, and role for the active bearer token.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "get",
        "current",
        "context"
      ],
      "examples": [
        "Use Get Current Zentract Context through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": []
        }
      ]
    },
    {
      "id": "list-zentract-tasks",
      "name": "List Zentract Tasks",
      "description": "List tasks in the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "list",
        "tasks"
      ],
      "examples": [
        "Use List Zentract Tasks through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:read"
          ]
        }
      ]
    },
    {
      "id": "show-zentract-tasks",
      "name": "Show Zentract Tasks and Timer",
      "description": "Open an interactive Zentract task list with the authenticated user's current timer. Defaults to tasks assigned to the user; accepts the same filters as list-zentract-tasks. This tool only reads data; timer changes require separate tool calls.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "show",
        "tasks"
      ],
      "examples": [
        "Use Show Zentract Tasks and Timer through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:read",
            "time-entries:read"
          ]
        }
      ]
    },
    {
      "id": "create-zentract-task",
      "name": "Create Zentract Task",
      "description": "Create a task in the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "create",
        "task"
      ],
      "examples": [
        "Use Create Zentract Task through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:write"
          ]
        }
      ]
    },
    {
      "id": "update-zentract-task",
      "name": "Update Zentract Task",
      "description": "Update a task in the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "update",
        "task"
      ],
      "examples": [
        "Use Update Zentract Task through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:write"
          ]
        }
      ]
    },
    {
      "id": "list-zentract-projects",
      "name": "List Zentract Projects",
      "description": "List projects in the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "list",
        "projects"
      ],
      "examples": [
        "Use List Zentract Projects through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "projects:read"
          ]
        }
      ]
    },
    {
      "id": "list-zentract-clients",
      "name": "List Zentract Clients",
      "description": "List clients in the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "list",
        "clients"
      ],
      "examples": [
        "Use List Zentract Clients through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "clients:read"
          ]
        }
      ]
    },
    {
      "id": "list-zentract-time-entries",
      "name": "List Zentract Time Entries",
      "description": "List time entries in the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "list",
        "time",
        "entries"
      ],
      "examples": [
        "Use List Zentract Time Entries through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "time-entries:read"
          ]
        }
      ]
    },
    {
      "id": "create-zentract-manual-time-entry",
      "name": "Create Zentract Manual Time Entry",
      "description": "Create a completed manual time entry for a task in the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "create",
        "manual",
        "time",
        "entry"
      ],
      "examples": [
        "Use Create Zentract Manual Time Entry through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "time-entries:write"
          ]
        }
      ]
    },
    {
      "id": "get-running-zentract-timer",
      "name": "Get Running Zentract Timer",
      "description": "Return the authenticated user's current running timer in the selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "get",
        "running",
        "timer"
      ],
      "examples": [
        "Use Get Running Zentract Timer through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "time-entries:read"
          ]
        }
      ]
    },
    {
      "id": "start-zentract-timer",
      "name": "Start Zentract Timer",
      "description": "Start a running timer for a task in the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "start",
        "timer"
      ],
      "examples": [
        "Use Start Zentract Timer through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "time-entries:write"
          ]
        }
      ]
    },
    {
      "id": "stop-zentract-timer",
      "name": "Stop Zentract Timer",
      "description": "Stop a running timer for the authenticated user. If timeEntryId is omitted, stops the current running timer in the selected organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "stop",
        "timer"
      ],
      "examples": [
        "Use Stop Zentract Timer through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "time-entries:write"
          ]
        }
      ]
    },
    {
      "id": "delete-zentract-task",
      "name": "Delete Zentract Task",
      "description": "Delete a task. Set cascadeSubtasks to true to also delete subtasks; otherwise a task with subtasks is refused. This is destructive. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "delete",
        "task"
      ],
      "examples": [
        "Use Delete Zentract Task through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:delete"
          ]
        }
      ]
    },
    {
      "id": "get-zentract-client",
      "name": "Get Zentract Client",
      "description": "Read client details. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "get",
        "client"
      ],
      "examples": [
        "Use Get Zentract Client through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "clients:read"
          ]
        }
      ]
    },
    {
      "id": "create-zentract-client",
      "name": "Create Zentract Client",
      "description": "Create a client, subject to plan limits. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "create",
        "client"
      ],
      "examples": [
        "Use Create Zentract Client through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "clients:write"
          ]
        }
      ]
    },
    {
      "id": "update-zentract-client",
      "name": "Update Zentract Client",
      "description": "Update supplied client fields; omitted fields are unchanged. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "update",
        "client"
      ],
      "examples": [
        "Use Update Zentract Client through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "clients:write"
          ]
        }
      ]
    },
    {
      "id": "delete-zentract-client",
      "name": "Delete Zentract Client",
      "description": "Delete a client. Requires an admin or manager; domain deletion restrictions apply. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "delete",
        "client"
      ],
      "examples": [
        "Use Delete Zentract Client through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "clients:delete"
          ]
        }
      ]
    },
    {
      "id": "get-zentract-project",
      "name": "Get Zentract Project",
      "description": "Read project details, including its description. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "get",
        "project"
      ],
      "examples": [
        "Use Get Zentract Project through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "projects:read"
          ]
        }
      ]
    },
    {
      "id": "create-zentract-project",
      "name": "Create Zentract Project",
      "description": "Create a project, subject to plan limits and pricing permissions. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "create",
        "project"
      ],
      "examples": [
        "Use Create Zentract Project through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "projects:write"
          ]
        }
      ]
    },
    {
      "id": "update-zentract-project",
      "name": "Update Zentract Project",
      "description": "Update supplied project fields; omitted fields are unchanged. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "update",
        "project"
      ],
      "examples": [
        "Use Update Zentract Project through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "projects:write"
          ]
        }
      ]
    },
    {
      "id": "delete-zentract-project",
      "name": "Delete Zentract Project",
      "description": "Delete a project. Requires an admin or manager; domain deletion restrictions apply. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "delete",
        "project"
      ],
      "examples": [
        "Use Delete Zentract Project through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "projects:delete"
          ]
        }
      ]
    },
    {
      "id": "list-zentract-task-comments",
      "name": "List Zentract Task Comments",
      "description": "List task comments and replies, including service-computed permissions. Attachment visibility requires attachments:read. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "list",
        "task",
        "comments"
      ],
      "examples": [
        "Use List Zentract Task Comments through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:read"
          ]
        }
      ]
    },
    {
      "id": "get-zentract-task-comment",
      "name": "Get Zentract Task Comment",
      "description": "Read one comment and its replies belonging to the specified task. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "get",
        "task",
        "comment"
      ],
      "examples": [
        "Use Get Zentract Task Comment through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:read"
          ]
        }
      ]
    },
    {
      "id": "create-zentract-task-comment",
      "name": "Create Zentract Task Comment",
      "description": "Add an internal text comment or reply to a task. Requires nonempty visible text; empty HTML is rejected at runtime. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "create",
        "task",
        "comment"
      ],
      "examples": [
        "Use Create Zentract Task Comment through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:write"
          ]
        }
      ]
    },
    {
      "id": "update-zentract-task-comment",
      "name": "Update Zentract Task Comment",
      "description": "Replace a task comment's text, subject to comment editing permissions. Requires nonempty visible text; empty HTML is rejected at runtime. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "update",
        "task",
        "comment"
      ],
      "examples": [
        "Use Update Zentract Task Comment through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:write"
          ]
        }
      ]
    },
    {
      "id": "delete-zentract-task-comment",
      "name": "Delete Zentract Task Comment",
      "description": "Delete a task comment, subject to comment deletion permissions. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "delete",
        "task",
        "comment"
      ],
      "examples": [
        "Use Delete Zentract Task Comment through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "tasks:write"
          ]
        }
      ]
    },
    {
      "id": "list-zentract-quotes",
      "name": "List Zentract Quotes",
      "description": "List quotes. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "list",
        "quotes"
      ],
      "examples": [
        "Use List Zentract Quotes through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "quotes:read"
          ]
        }
      ]
    },
    {
      "id": "get-zentract-quote",
      "name": "Get Zentract Quote",
      "description": "Read a quote with line items and tax details. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "get",
        "quote"
      ],
      "examples": [
        "Use Get Zentract Quote through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "quotes:read"
          ]
        }
      ]
    },
    {
      "id": "create-zentract-quote",
      "name": "Create Zentract Quote",
      "description": "Create a draft quote; issueDate must be on or before expiresAt (validated at runtime). Taxes and totals are computed by Zentract. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "create",
        "quote"
      ],
      "examples": [
        "Use Create Zentract Quote through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "quotes:write"
          ]
        }
      ]
    },
    {
      "id": "update-zentract-quote",
      "name": "Update Zentract Quote",
      "description": "Update a draft quote's supplied fields. When both dates are supplied, issueDate must be on or before expiresAt (validated at runtime). Sent or converted quotes cannot be edited. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "update",
        "quote"
      ],
      "examples": [
        "Use Update Zentract Quote through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "quotes:write"
          ]
        }
      ]
    },
    {
      "id": "archive-zentract-quote",
      "name": "Archive Zentract Quote",
      "description": "Archive a quote without deleting its history. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "archive",
        "quote"
      ],
      "examples": [
        "Use Archive Zentract Quote through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "quotes:write"
          ]
        }
      ]
    },
    {
      "id": "list-zentract-proposals",
      "name": "List Zentract Proposals",
      "description": "List proposals. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "list",
        "proposals"
      ],
      "examples": [
        "Use List Zentract Proposals through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "proposals:read"
          ]
        }
      ]
    },
    {
      "id": "get-zentract-proposal",
      "name": "Get Zentract Proposal",
      "description": "Read a proposal with its milestones, tasks and relations. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "get",
        "proposal"
      ],
      "examples": [
        "Use Get Zentract Proposal through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "proposals:read"
          ]
        }
      ]
    },
    {
      "id": "create-zentract-proposal",
      "name": "Create Zentract Proposal",
      "description": "Create a draft proposal with optional wizard inputs. Does not generate AI content or send email. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "create",
        "proposal"
      ],
      "examples": [
        "Use Create Zentract Proposal through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "proposals:write"
          ]
        }
      ]
    },
    {
      "id": "update-zentract-proposal",
      "name": "Update Zentract Proposal",
      "description": "Update proposal fields or wizard inputs. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "update",
        "proposal"
      ],
      "examples": [
        "Use Update Zentract Proposal through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "proposals:write"
          ]
        }
      ]
    },
    {
      "id": "delete-zentract-proposal",
      "name": "Delete Zentract Proposal",
      "description": "Delete a draft, unconverted proposal only. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "delete",
        "proposal"
      ],
      "examples": [
        "Use Delete Zentract Proposal through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "proposals:delete"
          ]
        }
      ]
    },
    {
      "id": "list-zentract-intake-forms",
      "name": "List Zentract Intake Forms",
      "description": "List editable and published intake forms. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "list",
        "intake",
        "forms"
      ],
      "examples": [
        "Use List Zentract Intake Forms through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "intake:read"
          ]
        }
      ]
    },
    {
      "id": "get-zentract-intake-form",
      "name": "Get Zentract Intake Form",
      "description": "Read an intake form's draft and immutable published version. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "get",
        "intake",
        "form"
      ],
      "examples": [
        "Use Get Zentract Intake Form through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "intake:read"
          ]
        }
      ]
    },
    {
      "id": "create-zentract-intake-form",
      "name": "Create Zentract Intake Form",
      "description": "Create an unpublished intake form. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "create",
        "intake",
        "form"
      ],
      "examples": [
        "Use Create Zentract Intake Form through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "intake:write"
          ]
        }
      ]
    },
    {
      "id": "update-zentract-intake-form",
      "name": "Update Zentract Intake Form",
      "description": "Replace the editable definition without changing published versions or submissions. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "update",
        "intake",
        "form"
      ],
      "examples": [
        "Use Update Zentract Intake Form through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "intake:write"
          ]
        }
      ]
    },
    {
      "id": "publish-zentract-intake-form",
      "name": "Publish Zentract Intake Form",
      "description": "Publish an immutable version and authorize private draft preparation under the publishing manager. Supply the saved form's updatedAt to reject stale publication. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "publish",
        "intake",
        "form"
      ],
      "examples": [
        "Use Publish Zentract Intake Form through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "intake:write"
          ]
        }
      ]
    },
    {
      "id": "unpublish-zentract-intake-form",
      "name": "Unpublish Zentract Intake Form",
      "description": "Stop new public submissions while preserving accepted requests and published versions. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "unpublish",
        "intake",
        "form"
      ],
      "examples": [
        "Use Unpublish Zentract Intake Form through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "intake:write"
          ]
        }
      ]
    },
    {
      "id": "list-zentract-intake-submissions",
      "name": "List Zentract Intake Submissions",
      "description": "List intake submissions, optionally filtered by form. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "list",
        "intake",
        "submissions"
      ],
      "examples": [
        "Use List Zentract Intake Submissions through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "intake:read"
          ]
        }
      ]
    },
    {
      "id": "get-zentract-intake-submission",
      "name": "Get Zentract Intake Submission",
      "description": "Read an intake submission's answers, processing state and linked proposal. Requires an admin or manager. In the authenticated user's selected Zentract organization.",
      "tags": [
        "zentract",
        "authenticated",
        "mcp",
        "get",
        "intake",
        "submission"
      ],
      "examples": [
        "Use Get Zentract Intake Submission through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "security": [
        {
          "zentractOAuth": [
            "intake:read"
          ]
        }
      ]
    }
  ],
  "supportsAuthenticatedExtendedCard": false
}