{
  "protocolVersion": "0.3.0",
  "name": "Zentract Agent Discovery",
  "description": "Public discovery and OAuth-protected workspace operations for Zentract tasks, task creation and updates, projects, clients, time entries, manual time-entry creation, and timers.",
  "url": "https://zentract.io/mcp",
  "preferredTransport": "MCP",
  "additionalInterfaces": [
    {
      "url": "https://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://zentract.io/mcp",
          "mcpServerCard": "https://zentract.io/.well-known/mcp.json"
        }
      }
    ]
  },
  "securitySchemes": {
    "zentractOAuth": {
      "type": "oauth2",
      "description": "Zentract OAuth2 authorization code flow with PKCE for authenticated workspace tools.",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://zentract.io/api/oauth2/authorize",
          "tokenUrl": "https://zentract.io/api/oauth2/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",
            "time-entries:delete": "Delete time entries",
            "invoices:read": "View invoices",
            "invoices:write": "Create and update invoices",
            "invoices:delete": "Delete invoices",
            "proposals:read": "View proposals",
            "proposals:write": "Create and update proposals",
            "proposals:delete": "Delete proposals",
            "quotes:read": "View quotes",
            "quotes:write": "Create and update quotes",
            "quotes:delete": "Delete quotes",
            "tax-profiles:read": "Discover applicable tax profiles for billing documents",
            "reports:read": "View reports",
            "reports:generate": "Create new reports",
            "reports:delete": "Delete reports",
            "teams:read": "View teams and members",
            "teams:write": "Manage teams and members",
            "users:read": "View user information",
            "users:write": "Update user information",
            "organization:read": "View organization details",
            "organization:write": "Update organization settings",
            "notifications:read": "View notifications",
            "notifications:write": "Create and manage notifications",
            "attachments:read": "View and download attachments",
            "attachments:write": "Upload and manage attachments",
            "apps:write": "Configure installed app connection settings"
          }
        }
      }
    }
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "skills": [
    {
      "id": "get-product-overview",
      "name": "Get Product Overview",
      "description": "Summarize what Zentract does and who it is built for.",
      "tags": [
        "zentract",
        "public",
        "mcp",
        "get",
        "product",
        "overview"
      ],
      "examples": [
        "Use Get Product Overview through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "get-pricing-summary",
      "name": "Get Pricing Summary",
      "description": "Return the public pricing summary and free plan details from the homepage.",
      "tags": [
        "zentract",
        "public",
        "mcp",
        "get",
        "pricing",
        "summary"
      ],
      "examples": [
        "Use Get Pricing Summary through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "find-faq-answer",
      "name": "Find FAQ Answer",
      "description": "Search the public FAQ content for the closest answer to a user question.",
      "tags": [
        "zentract",
        "public",
        "mcp",
        "find",
        "faq",
        "answer"
      ],
      "examples": [
        "Use Find FAQ Answer through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "get-api-discovery",
      "name": "Get API Discovery",
      "description": "Return the public API discovery links, OAuth metadata locations, and key supported scopes.",
      "tags": [
        "zentract",
        "public",
        "mcp",
        "get",
        "api",
        "discovery"
      ],
      "examples": [
        "Use Get API Discovery through the Zentract MCP endpoint."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "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": "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"
          ]
        }
      ]
    }
  ],
  "supportsAuthenticatedExtendedCard": false
}