{
  "package": {
    "name": "@teamgrid/mcp-server",
    "sourceCommit": "b0e4b3dfa4afd74822a73b8b5e8b647236f273ce",
    "sourceRepository": "TeamGrid/developer-platform",
    "version": "1.2.2"
  },
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "contract": {
    "domain": "integrations-write",
    "concurrency": "read",
    "idempotency": false,
    "coreCas": false
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "data": {
        "$ref": "#/$defs/WebhookDelivery"
      },
      "meta": {
        "additionalProperties": false,
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Unique identifier assigned to the API request for tracing and support."
          },
          "privateResource": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "uri",
              "maxBytes",
              "readMethod"
            ],
            "properties": {
              "uri": {
                "type": "string",
                "pattern": "^teamgrid://(?:files|exports)/[A-Za-z0-9_.:%-]+$"
              },
              "maxBytes": {
                "const": 1048576
              },
              "readMethod": {
                "const": "resources/read"
              }
            }
          },
          "etag": {
            "type": "string",
            "pattern": "^\"[\\x21\\x23-\\x7e]{1,256}\"$"
          },
          "resume": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "tool",
              "arguments"
            ],
            "properties": {
              "tool": {
                "enum": [
                  "teamgrid_project_lifecycle_operation_get",
                  "teamgrid_planned_work_operation_get",
                  "teamgrid_task_recurrence_operation_get",
                  "teamgrid_export_get"
                ]
              },
              "arguments": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                }
              }
            }
          },
          "outcome": {
            "enum": [
              "completed",
              "accepted",
              "partial",
              "unknown",
              "failed"
            ]
          },
          "omittedFields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "contentReadTool": {
            "const": "teamgrid_document_get"
          },
          "contentPage": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "unit": {
                "const": "utf16"
              },
              "offset": {
                "type": "integer",
                "minimum": 0
              },
              "nextOffset": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "totalLength": {
                "type": "integer",
                "minimum": 0
              },
              "complete": {
                "type": "boolean"
              },
              "revision": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "unit",
              "offset",
              "nextOffset",
              "totalLength",
              "complete",
              "revision"
            ]
          },
          "search": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "complete": {
                "const": false
              },
              "indexed": {
                "const": true
              },
              "returned": {
                "type": "integer",
                "minimum": 0
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 50
              },
              "continuation": {
                "const": "narrow-query-or-list"
              },
              "verification": {
                "const": "read-by-id"
              }
            },
            "required": [
              "complete",
              "indexed",
              "returned",
              "limit",
              "continuation",
              "verification"
            ]
          }
        },
        "required": [
          "requestId"
        ],
        "type": "object",
        "description": "Public API representation of meta."
      }
    },
    "required": [
      "data",
      "meta"
    ],
    "additionalProperties": false,
    "$defs": {
      "WebhookDelivery": {
        "additionalProperties": false,
        "description": "Credential-owned webhook delivery metadata. Destination URLs, request and response payloads, headers, bodies, secrets, tenant routing, and retention fields are never exposed.",
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "attemptCount": {
                "maximum": 32,
                "minimum": 1,
                "type": "integer",
                "description": "Number of attempt records represented by this webhook delivery attributes."
              },
              "attempts": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "attempt": {
                      "maximum": 32,
                      "minimum": 1,
                      "type": "integer",
                      "description": "The attempt associated with this webhook delivery attributes attempts."
                    },
                    "errorCode": {
                      "enum": [
                        "http_error",
                        "transport_error",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Canonical error code value for this webhook delivery attributes attempts."
                    },
                    "finishedAt": {
                      "format": "date-time",
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "ISO 8601 timestamp for finished at."
                    },
                    "startedAt": {
                      "format": "date-time",
                      "type": "string",
                      "description": "ISO 8601 timestamp for started at."
                    },
                    "state": {
                      "enum": [
                        "delivering",
                        "failed",
                        "retrying",
                        "skipped",
                        "succeeded"
                      ],
                      "type": "string",
                      "description": "Canonical lifecycle state of the resource or operation."
                    },
                    "statusCode": {
                      "maximum": 599,
                      "minimum": 100,
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "HTTP status code represented by this legacy response envelope."
                    },
                    "transportCode": {
                      "maxLength": 64,
                      "pattern": "^[A-Za-z0-9_.:-]+$",
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The transport code associated with this webhook delivery attributes attempts."
                    }
                  },
                  "required": [
                    "attempt",
                    "errorCode",
                    "finishedAt",
                    "startedAt",
                    "state",
                    "statusCode",
                    "transportCode"
                  ],
                  "type": "object"
                },
                "maxItems": 32,
                "minItems": 1,
                "type": "array",
                "description": "The attempts associated with this webhook delivery attributes."
              },
              "collection": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "The collection associated with this webhook delivery attributes."
              },
              "completedAt": {
                "format": "date-time",
                "type": [
                  "string",
                  "null"
                ],
                "description": "Timestamp at which the work item was completed."
              },
              "createdAt": {
                "format": "date-time",
                "type": "string",
                "description": "Timestamp at which the resource was created."
              },
              "deliveryId": {
                "maxLength": 256,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_-]+$",
                "type": "string",
                "description": "The delivery id associated with this webhook delivery attributes."
              },
              "event": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "Canonical TeamGrid event name."
              },
              "resourceId": {
                "maxLength": 256,
                "pattern": "^[A-Za-z0-9_-]+$",
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifier of the resource represented by this record."
              },
              "state": {
                "enum": [
                  "delivering",
                  "failed",
                  "retrying",
                  "skipped",
                  "succeeded"
                ],
                "type": "string",
                "description": "Canonical lifecycle state of the resource or operation."
              },
              "updatedAt": {
                "format": "date-time",
                "type": "string",
                "description": "Timestamp of the most recent successful update."
              },
              "webhookId": {
                "maxLength": 256,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_-]+$",
                "type": "string",
                "description": "Identifier of the webhook associated with this delivery."
              }
            },
            "required": [
              "attemptCount",
              "attempts",
              "collection",
              "completedAt",
              "createdAt",
              "deliveryId",
              "event",
              "resourceId",
              "state",
              "updatedAt",
              "webhookId"
            ],
            "type": "object",
            "description": "The attributes associated with this webhook delivery."
          },
          "id": {
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_-]+$",
            "type": "string",
            "description": "Stable TeamGrid identifier for this resource."
          },
          "type": {
            "const": "webhookDelivery",
            "type": "string",
            "description": "Canonical type discriminator for this resource."
          }
        },
        "required": [
          "attributes",
          "id",
          "type"
        ],
        "type": "object"
      }
    }
  },
  "profileOutputSchemas": {},
  "exposure": "read",
  "apiOperations": [
    {
      "href": "/api/v1/reference/operations/getwebhookdelivery/",
      "method": "GET",
      "operationId": "getWebhookDelivery",
      "path": "/webhook-deliveries/{id}"
    }
  ],
  "availableIn": [
    "full",
    "integrations-write"
  ],
  "baseProfile": "full",
  "description": "Get webhook delivery metadata",
  "inputSchema": {
    "type": "object",
    "properties": {
      "id": {
        "maxLength": 256,
        "minLength": 1,
        "pattern": "^[A-Za-z0-9_-]+$",
        "type": "string"
      }
    },
    "required": [
      "id"
    ],
    "additionalProperties": false
  },
  "profileInputSchemas": {},
  "name": "teamgrid_webhook_delivery_get",
  "scopes": {
    "optional": [],
    "conditional": [],
    "required": [
      "webhooks:read"
    ]
  },
  "security": {
    "classification": "security-configuration",
    "summary": "Webhook configuration is security-sensitive. Read responses do not expose the signing secret."
  },
  "output": {
    "format": "The bounded API result is returned as MCP structured content and equivalent JSON text.",
    "kind": "single-resource",
    "maxSerializedBytes": 262144,
    "pagination": null,
    "redactions": [],
    "searchLimit": null
  },
  "examplePrompt": "Read the TeamGrid webhook delivery with ID `<id>` and summarize only the fields returned by TeamGrid.",
  "typicalErrors": [
    {
      "condition": "The selected tool profile or allow/deny filter excludes `teamgrid_webhook_delivery_get`.",
      "result": "The tool is not advertised to the host. Select the narrowest profile that contains it and restart the host."
    },
    {
      "condition": "`id` is missing or violates this tool’s exact input schema, including any pattern or length restriction.",
      "result": "MCP input validation rejects the call before an API request is made."
    },
    {
      "condition": "The credential lacks `webhooks:read` or cannot access the requested resource.",
      "result": "The tool preserves a safe API error code such as `insufficient_scope`, with redacted detail and available status/request metadata."
    },
    {
      "condition": "A read exceeds the 256 KiB tool result limit.",
      "result": "Use a bounded section, smaller supported read, private resource or authorized App/CLI transfer."
    },
    {
      "condition": "An unknown input property is supplied.",
      "result": "The strict input schema rejects the call before an API request is made."
    }
  ]
}
