{
  "tools": [
    {
      "name": "connection.profile",
      "title": "Connection Profile",
      "description": "Identify the connected PdfParse account using its stable, opaque account ID.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ],
        "openai/profile": true
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "connection.info",
      "title": "Connection Info",
      "description": "Show the PdfParse account and projects available to this connection.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {}
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string"
          },
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name",
                "slug"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "user_id",
          "projects"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "projects.create",
      "title": "Projects Create",
      "description": "Create an empty project in the connected PdfParse account. Returns its ID and slug for subsequent table and workflow setup.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 100
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "slug": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "slug"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "project"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "inboxes.list",
      "title": "Inboxes List",
      "description": "List existing email inboxes in projects you own, including inbox IDs needed to bind a logical splitter.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "inboxes": {}
        },
        "required": [
          "inboxes"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "workflow.setup",
      "title": "Workflow Setup",
      "description": "Set up a PdfParse workflow in an existing owned project. Supply a structured intent with the project existing_slug, table, routing rule, optional inbox and logical splitter. Never creates a project. Set dry_run to preview. Repeating the same intent resumes saved progress.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "dry_run": {
            "default": false,
            "type": "boolean"
          },
          "goal": {
            "type": "string",
            "minLength": 10,
            "maxLength": 2000
          },
          "project": {
            "type": "object",
            "properties": {
              "existing_slug": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "existing_slug"
            ],
            "additionalProperties": false
          },
          "table": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1
              },
              "columns": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1
                    },
                    "prompt": {
                      "type": "string"
                    },
                    "primaryKey": {
                      "type": "boolean"
                    },
                    "unique": {
                      "type": "boolean"
                    },
                    "autoIncrement": {
                      "type": "boolean"
                    },
                    "nullable": {
                      "type": "boolean"
                    },
                    "reanalyzeExisting": {
                      "type": "boolean"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "text",
                        "number",
                        "date",
                        "boolean",
                        "foreign_key"
                      ]
                    },
                    "referencedTable": {
                      "type": "string"
                    },
                    "referencedColumn": {
                      "type": "string"
                    },
                    "parentTable": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "prompt"
                  ]
                }
              }
            },
            "required": [
              "name",
              "columns"
            ]
          },
          "routing_rule": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 2,
                "maxLength": 100
              },
              "prompt": {
                "type": "string",
                "minLength": 10
              },
              "confidenceThreshold": {
                "type": "integer",
                "minimum": 60,
                "maximum": 100
              },
              "enabled": {
                "type": "boolean"
              }
            },
            "required": [
              "name",
              "prompt"
            ]
          },
          "inbox": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "routing": {
                "default": "classify",
                "type": "string",
                "enum": [
                  "classify",
                  "direct"
                ]
              },
              "sender_allowlist": {
                "maxItems": 100,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "address",
                        "domain"
                      ]
                    },
                    "value": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "type",
                    "value"
                  ]
                }
              }
            },
            "required": [
              "name"
            ]
          },
          "logical_splitter": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "instructions": {
                "type": "string",
                "minLength": 10,
                "maxLength": 4000
              },
              "section_types": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "pattern": "^[a-z][a-z0-9_]{1,63}$"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 120
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ]
                }
              },
              "review_uncertain_boundaries": {
                "default": true,
                "type": "boolean"
              },
              "review_uncertain_destinations": {
                "default": true,
                "type": "boolean"
              }
            },
            "required": [
              "name",
              "instructions",
              "section_types"
            ]
          }
        },
        "required": [
          "goal",
          "project",
          "table",
          "routing_rule"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "preview",
              "active",
              "in_progress"
            ]
          },
          "goal": {
            "type": "string"
          },
          "setup_id": {
            "type": "string"
          }
        },
        "required": [
          "status",
          "goal"
        ],
        "additionalProperties": {}
      }
    },
    {
      "name": "tables.list",
      "title": "Tables List",
      "description": "List tables in a project you own. Supply project_slug if your account has multiple projects.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "tables": {}
        },
        "required": [
          "tables"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "tables.create",
      "title": "Tables Create",
      "description": "Create a table with extraction columns in a project you own. An integer primary key named id is added automatically and generated by the database during extraction; do not include it in extraction columns.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "columns": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1
                },
                "prompt": {
                  "type": "string"
                },
                "primaryKey": {
                  "type": "boolean"
                },
                "unique": {
                  "type": "boolean"
                },
                "autoIncrement": {
                  "type": "boolean"
                },
                "nullable": {
                  "type": "boolean"
                },
                "reanalyzeExisting": {
                  "type": "boolean"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "text",
                    "number",
                    "date",
                    "boolean",
                    "foreign_key"
                  ]
                },
                "referencedTable": {
                  "type": "string"
                },
                "referencedColumn": {
                  "type": "string"
                },
                "parentTable": {
                  "type": "string"
                }
              },
              "required": [
                "name",
                "prompt"
              ]
            }
          }
        },
        "required": [
          "name",
          "columns"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "table": {}
        },
        "required": [
          "table"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "routing_rules.list",
      "title": "Routing Rules List",
      "description": "List document classification rules and their destination tables in a project.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "routing_rules": {}
        },
        "required": [
          "routing_rules"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "routing_rules.create",
      "title": "Routing Rules Create",
      "description": "Create a rule that recognizes a document type and routes it to an extraction table. The table must belong to this project.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 100
          },
          "prompt": {
            "type": "string",
            "minLength": 10
          },
          "confidenceThreshold": {
            "type": "integer",
            "minimum": 60,
            "maximum": 100
          },
          "tableId": {
            "type": "string",
            "minLength": 1
          },
          "enabled": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "prompt",
          "tableId"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "routing_rule": {}
        },
        "required": [
          "routing_rule"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "routing_rules.update",
      "title": "Routing Rules Update",
      "description": "Change a routing rule, including its prompt, destination, confidence threshold, or enabled state.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "rule_id": {
            "type": "string",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 100
          },
          "prompt": {
            "type": "string",
            "minLength": 10
          },
          "confidenceThreshold": {
            "type": "integer",
            "minimum": 60,
            "maximum": 100
          },
          "tableId": {
            "type": "string",
            "minLength": 1
          },
          "enabled": {
            "type": "boolean"
          }
        },
        "required": [
          "rule_id"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "routing_rule": {}
        },
        "required": [
          "routing_rule"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "routing_rules.delete",
      "title": "Routing Rules Delete",
      "description": "Delete a routing rule from a project.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "rule_id": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "rule_id"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "result": {}
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "splitters.list",
      "title": "Splitters List",
      "description": "List page-range and logical splitters, including drafts and published versions, in a project.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "splitters": {}
        },
        "required": [
          "splitters"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "splitters.get",
      "title": "Splitters Get",
      "description": "Inspect a splitter draft and its published versions.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "splitter_id": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "splitter_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "splitter": {}
        },
        "required": [
          "splitter"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "splitters.create_logical",
      "title": "Splitters Create Logical",
      "description": "Create a logical splitter draft for mixed PDF attachments. sourceInboxId binds it to one inbox; null applies to project uploads. Routing uses project routing rules. Publish the draft to activate it.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "config": {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "const": "logical"
              },
              "sourceInboxId": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "instructions": {
                "type": "string",
                "minLength": 10,
                "maxLength": 4000
              },
              "sectionTypes": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "pattern": "^[a-z][a-z0-9_]{1,63}$"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 120
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ]
                }
              },
              "routingMode": {
                "type": "string",
                "const": "project_rules"
              },
              "reviewUncertainBoundaries": {
                "type": "boolean"
              },
              "reviewUncertainDestinations": {
                "type": "boolean"
              },
              "boundaryConfidenceThreshold": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100
              },
              "maxSegments": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              }
            },
            "required": [
              "mode",
              "sourceInboxId",
              "instructions",
              "sectionTypes",
              "routingMode",
              "reviewUncertainBoundaries",
              "reviewUncertainDestinations"
            ]
          }
        },
        "required": [
          "name",
          "config"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "splitter": {}
        },
        "required": [
          "splitter"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "splitters.update_logical",
      "title": "Splitters Update Logical",
      "description": "Update a logical splitter draft using the revision returned by splitters.get.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "splitter_id": {
            "type": "string",
            "minLength": 1
          },
          "expected_draft_revision": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "config": {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "const": "logical"
              },
              "sourceInboxId": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "instructions": {
                "type": "string",
                "minLength": 10,
                "maxLength": 4000
              },
              "sectionTypes": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "pattern": "^[a-z][a-z0-9_]{1,63}$"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 120
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ]
                }
              },
              "routingMode": {
                "type": "string",
                "const": "project_rules"
              },
              "reviewUncertainBoundaries": {
                "type": "boolean"
              },
              "reviewUncertainDestinations": {
                "type": "boolean"
              },
              "boundaryConfidenceThreshold": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100
              },
              "maxSegments": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              }
            },
            "required": [
              "mode",
              "sourceInboxId",
              "instructions",
              "sectionTypes",
              "routingMode",
              "reviewUncertainBoundaries",
              "reviewUncertainDestinations"
            ]
          }
        },
        "required": [
          "splitter_id",
          "expected_draft_revision",
          "name",
          "config"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "splitter": {}
        },
        "required": [
          "splitter"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "splitters.create_page_range",
      "title": "Splitters Create Page Range",
      "description": "Create a splitter draft with fixed page ranges and project-owned destination tables.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 100
          },
          "description": {
            "type": "string",
            "maxLength": 1000
          },
          "config": {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "const": "page_range"
              },
              "overlap_policy": {
                "type": "string",
                "enum": [
                  "exclusive",
                  "allowed"
                ]
              },
              "unassigned_policy": {
                "type": "string",
                "enum": [
                  "review",
                  "ignore",
                  "fallback"
                ]
              },
              "fallback_section_key": {
                "type": "string"
              },
              "max_segments": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "sections": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "section_key": {
                      "type": "string",
                      "pattern": "^[a-z][a-z0-9_]{1,63}$"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1000
                    },
                    "destination_table_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "page_spans": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "start_page": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "end_page": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "start_page",
                          "end_page"
                        ]
                      }
                    }
                  },
                  "required": [
                    "section_key",
                    "name",
                    "destination_table_id",
                    "page_spans"
                  ]
                }
              }
            },
            "required": [
              "sections"
            ]
          }
        },
        "required": [
          "name",
          "config"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "splitter": {}
        },
        "required": [
          "splitter"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "splitters.update_page_range",
      "title": "Splitters Update Page Range",
      "description": "Update a fixed page-range splitter draft using its current draft revision.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "splitter_id": {
            "type": "string",
            "minLength": 1
          },
          "expected_draft_revision": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 100
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1000
              },
              {
                "type": "null"
              }
            ]
          },
          "config": {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "const": "page_range"
              },
              "overlap_policy": {
                "type": "string",
                "enum": [
                  "exclusive",
                  "allowed"
                ]
              },
              "unassigned_policy": {
                "type": "string",
                "enum": [
                  "review",
                  "ignore",
                  "fallback"
                ]
              },
              "fallback_section_key": {
                "type": "string"
              },
              "max_segments": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "sections": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "section_key": {
                      "type": "string",
                      "pattern": "^[a-z][a-z0-9_]{1,63}$"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 1000
                    },
                    "destination_table_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "page_spans": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "start_page": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "end_page": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "start_page",
                          "end_page"
                        ]
                      }
                    }
                  },
                  "required": [
                    "section_key",
                    "name",
                    "destination_table_id",
                    "page_spans"
                  ]
                }
              }
            },
            "required": [
              "sections"
            ]
          }
        },
        "required": [
          "splitter_id",
          "expected_draft_revision"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "splitter": {}
        },
        "required": [
          "splitter"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "splitters.test_page_range",
      "title": "Splitters Test Page Range",
      "description": "Preview page assignments and review flags for a fixed page-range splitter without saving a run.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "splitter_id": {
            "type": "string",
            "minLength": 1
          },
          "page_count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "splitter_id",
          "page_count"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "preview": {}
        },
        "required": [
          "preview"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "splitters.publish",
      "title": "Splitters Publish",
      "description": "Publish a splitter draft. A logical splitter becomes active for its source inbox or project uploads.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "splitter_id": {
            "type": "string",
            "minLength": 1
          },
          "expected_draft_revision": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "splitter_id",
          "expected_draft_revision"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "publication": {}
        },
        "required": [
          "publication"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "splitters.run_page_range",
      "title": "Splitters Run Page Range",
      "description": "Run a published fixed page-range splitter on a document in this project.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "splitter_id": {
            "type": "string",
            "minLength": 1
          },
          "document_id": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "splitter_id",
          "document_id"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "run": {}
        },
        "required": [
          "run"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "splitters.archive",
      "title": "Splitters Archive",
      "description": "Archive a splitter to stop using it for future documents.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "splitter_id": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "splitter_id"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "result": {}
        },
        "required": [
          "result"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "rows.search",
      "title": "Rows Search",
      "description": "Query extracted rows from a table in a project you own.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "table_id": {
            "type": "string",
            "minLength": 1
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "column": {
                  "type": "string",
                  "minLength": 1
                },
                "op": {
                  "type": "string",
                  "enum": [
                    "eq",
                    "ne",
                    "gt",
                    "gte",
                    "lt",
                    "lte",
                    "like",
                    "in"
                  ]
                },
                "value": {}
              },
              "required": [
                "column",
                "op",
                "value"
              ]
            }
          },
          "orderBy": {
            "type": "object",
            "properties": {
              "column": {
                "type": "string"
              },
              "direction": {
                "type": "string",
                "enum": [
                  "asc",
                  "desc"
                ]
              }
            },
            "required": [
              "column",
              "direction"
            ]
          },
          "page": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "pageSize": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 200
          }
        },
        "required": [
          "table_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "rows": {}
        },
        "required": [
          "rows"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.create",
      "title": "Jobs Create",
      "description": "Start extraction for documents already uploaded to a table.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "tableSlug": {
            "type": "string",
            "minLength": 1
          },
          "documentKeys": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "tableSlug",
          "documentKeys"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "job": {}
        },
        "required": [
          "job"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "jobs.get",
      "title": "Jobs Get",
      "description": "Get an extraction job in a project you own.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "job_id": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "job_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "job": {}
        },
        "required": [
          "job"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "documents.upload",
      "title": "Documents Upload",
      "description": "Upload a PDF from base64 file bytes, then save and route it for extraction. Maximum 8 MiB.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "filename": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "data_base64": {
            "type": "string",
            "minLength": 1,
            "maxLength": 11200000
          },
          "tableSlug": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          }
        },
        "required": [
          "filename",
          "data_base64"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": false
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "uploadId": {
            "type": "string"
          },
          "fileId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "uploadId",
          "fileId",
          "status"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "documents.upload_file",
      "title": "Documents Upload File",
      "description": "Upload a user-selected ChatGPT PDF attachment, save it, and route it for extraction. Maximum 8 MiB. Use documents.upload for base64 bytes from Codex.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "file": {
            "type": "object",
            "properties": {
              "download_url": {
                "type": "string",
                "format": "uri"
              },
              "file_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 255
              },
              "mime_type": {
                "type": "string"
              },
              "file_name": {
                "type": "string",
                "maxLength": 255
              }
            },
            "required": [
              "download_url",
              "file_id"
            ],
            "additionalProperties": false
          },
          "tableSlug": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          }
        },
        "required": [
          "file"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:write"
            ]
          }
        ],
        "openai/fileParams": [
          "file"
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "uploadId": {
            "type": "string"
          },
          "fileId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "uploadId",
          "fileId",
          "status"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "analysis.crosscheck",
      "title": "Analysis Crosscheck",
      "description": "Analyze extracted rows for consistency issues and underwriting risk contradictions.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "table_id": {
            "type": "string",
            "minLength": 1
          },
          "job_id": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "column": {
                  "type": "string",
                  "minLength": 1
                },
                "op": {
                  "type": "string",
                  "enum": [
                    "eq",
                    "ne",
                    "gt",
                    "gte",
                    "lt",
                    "lte",
                    "like",
                    "in"
                  ]
                },
                "value": {}
              },
              "required": [
                "column",
                "op",
                "value"
              ]
            }
          }
        },
        "required": [
          "table_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "mismatches": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string"
                },
                "severity": {
                  "type": "string",
                  "enum": [
                    "low",
                    "medium",
                    "high"
                  ]
                },
                "message": {
                  "type": "string"
                },
                "row_refs": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "source_refs": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "code",
                "severity",
                "message",
                "row_refs",
                "source_refs"
              ],
              "additionalProperties": false
            }
          },
          "summary": {
            "type": "string"
          }
        },
        "required": [
          "mismatches",
          "summary"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "analysis.credit_memo",
      "title": "Analysis Credit Memo",
      "description": "Generate a first-pass commercial loan credit memo with citations from extracted data.",
      "inputSchema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "project_slug": {
            "type": "string",
            "minLength": 1
          },
          "table_id": {
            "type": "string",
            "minLength": 1
          },
          "job_id": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "memo_profile": {
            "type": "string",
            "const": "commercial-loan-v1"
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "column": {
                  "type": "string",
                  "minLength": 1
                },
                "op": {
                  "type": "string",
                  "enum": [
                    "eq",
                    "ne",
                    "gt",
                    "gte",
                    "lt",
                    "lte",
                    "like",
                    "in"
                  ]
                },
                "value": {}
              },
              "required": [
                "column",
                "op",
                "value"
              ]
            }
          }
        },
        "required": [
          "table_id",
          "memo_profile"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": true
      },
      "_meta": {
        "securitySchemes": [
          {
            "type": "oauth2",
            "scopes": [
              "mcp:read"
            ]
          }
        ]
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "risk_score": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "sections": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string"
                },
                "content": {
                  "type": "string"
                },
                "citations": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "title",
                "content",
                "citations"
              ],
              "additionalProperties": false
            }
          },
          "assumptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "risk_score",
          "sections",
          "assumptions"
        ],
        "additionalProperties": false
      }
    }
  ]
}
