PdfParse Docs
MCP server

MCP action reference

Every PdfParse MCP action, its OAuth scope, parameters, and input and output schemas.

The server exposes 28 actions. This reference is generated from its actual MCP tools/list response.

See Connect to MCP and Usage examples. Download the machine-readable catalog.

All actions

ActionOAuth scopeBehavior
connection.profilemcp:readRead
connection.infomcp:readRead
projects.createmcp:writeCreates or runs
inboxes.listmcp:readRead
workflow.setupmcp:writeCreates or runs
tables.listmcp:readRead
tables.createmcp:writeCreates or runs
routing_rules.listmcp:readRead
routing_rules.createmcp:writeCreates or runs
routing_rules.updatemcp:writeChanges existing configuration
routing_rules.deletemcp:writeChanges existing configuration
splitters.listmcp:readRead
splitters.getmcp:readRead
splitters.create_logicalmcp:writeCreates or runs
splitters.update_logicalmcp:writeChanges existing configuration
splitters.create_page_rangemcp:writeCreates or runs
splitters.update_page_rangemcp:writeChanges existing configuration
splitters.test_page_rangemcp:readRead
splitters.publishmcp:writeChanges existing configuration
splitters.run_page_rangemcp:writeCreates or runs
splitters.archivemcp:writeChanges existing configuration
rows.searchmcp:readRead
jobs.createmcp:writeCreates or runs
jobs.getmcp:readRead
documents.uploadmcp:writeCreates or runs
documents.upload_filemcp:writeCreates or runs
analysis.crosscheckmcp:readRead
analysis.credit_memomcp:readRead

connection profile

Action: connection.profile

Identify the connected PdfParse account using its stable, opaque account ID.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
None——

Input schema

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {},
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

connection info

Action: connection.info

Show the PdfParse account and projects available to this connection.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
None——

Input schema

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}

Output schema

{
  "$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
}

projects create

Action: projects.create

Create an empty project in the connected PdfParse account. Returns its ID and slug for subsequent table and workflow setup.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
nameYesstring

Input schema

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false
}

Output schema

{
  "$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
}

inboxes list

Action: inboxes.list

List existing email inboxes in projects you own, including inbox IDs needed to bind a logical splitter.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
project_slugNostring

Input schema

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "project_slug": {
      "type": "string",
      "minLength": 1
    }
  }
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "inboxes": {}
  },
  "required": [
    "inboxes"
  ],
  "additionalProperties": false
}

workflow setup

Action: workflow.setup

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.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
dry_runNoboolean
goalYesstring
projectYesobject
tableYesobject
routing_ruleYesobject
inboxNoobject
logical_splitterNoobject

Input schema

{
  "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"
  ]
}

Output schema

{
  "$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": {}
}

tables list

Action: tables.list

List tables in a project you own. Supply project_slug if your account has multiple projects.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
project_slugNostring

Input schema

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "project_slug": {
      "type": "string",
      "minLength": 1
    }
  }
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "tables": {}
  },
  "required": [
    "tables"
  ],
  "additionalProperties": false
}

tables create

Action: tables.create

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.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
nameYesstring
columnsYesarray

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "table": {}
  },
  "required": [
    "table"
  ],
  "additionalProperties": false
}

routing_rules list

Action: routing_rules.list

List document classification rules and their destination tables in a project.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
project_slugNostring

Input schema

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "project_slug": {
      "type": "string",
      "minLength": 1
    }
  }
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "routing_rules": {}
  },
  "required": [
    "routing_rules"
  ],
  "additionalProperties": false
}

routing_rules create

Action: routing_rules.create

Create a rule that recognizes a document type and routes it to an extraction table. The table must belong to this project.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
nameYesstring
promptYesstring
confidenceThresholdNointeger
tableIdYesstring
enabledNoboolean

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "routing_rule": {}
  },
  "required": [
    "routing_rule"
  ],
  "additionalProperties": false
}

routing_rules update

Action: routing_rules.update

Change a routing rule, including its prompt, destination, confidence threshold, or enabled state.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
rule_idYesstring
nameNostring
promptNostring
confidenceThresholdNointeger
tableIdNostring
enabledNoboolean

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "routing_rule": {}
  },
  "required": [
    "routing_rule"
  ],
  "additionalProperties": false
}

routing_rules delete

Action: routing_rules.delete

Delete a routing rule from a project.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
rule_idYesstring

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}

splitters list

Action: splitters.list

List page-range and logical splitters, including drafts and published versions, in a project.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
project_slugNostring

Input schema

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "project_slug": {
      "type": "string",
      "minLength": 1
    }
  }
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "splitters": {}
  },
  "required": [
    "splitters"
  ],
  "additionalProperties": false
}

splitters get

Action: splitters.get

Inspect a splitter draft and its published versions.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
project_slugNostring
splitter_idYesstring

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "splitter": {}
  },
  "required": [
    "splitter"
  ],
  "additionalProperties": false
}

splitters create_logical

Action: splitters.create_logical

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.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
nameYesstring
descriptionNounion
configYesobject

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "splitter": {}
  },
  "required": [
    "splitter"
  ],
  "additionalProperties": false
}

splitters update_logical

Action: splitters.update_logical

Update a logical splitter draft using the revision returned by splitters.get.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
splitter_idYesstring
expected_draft_revisionYesinteger
nameYesstring
descriptionNounion
configYesobject

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "splitter": {}
  },
  "required": [
    "splitter"
  ],
  "additionalProperties": false
}

splitters create_page_range

Action: splitters.create_page_range

Create a splitter draft with fixed page ranges and project-owned destination tables.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
nameYesstring
descriptionNostring
configYesobject

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "splitter": {}
  },
  "required": [
    "splitter"
  ],
  "additionalProperties": false
}

splitters update_page_range

Action: splitters.update_page_range

Update a fixed page-range splitter draft using its current draft revision.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
splitter_idYesstring
expected_draft_revisionYesinteger
nameNostring
descriptionNounion
configNoobject

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "splitter": {}
  },
  "required": [
    "splitter"
  ],
  "additionalProperties": false
}

splitters test_page_range

Action: splitters.test_page_range

Preview page assignments and review flags for a fixed page-range splitter without saving a run.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
project_slugNostring
splitter_idYesstring
page_countYesinteger
versionNointeger

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "preview": {}
  },
  "required": [
    "preview"
  ],
  "additionalProperties": false
}

splitters publish

Action: splitters.publish

Publish a splitter draft. A logical splitter becomes active for its source inbox or project uploads.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
splitter_idYesstring
expected_draft_revisionYesinteger

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "publication": {}
  },
  "required": [
    "publication"
  ],
  "additionalProperties": false
}

splitters run_page_range

Action: splitters.run_page_range

Run a published fixed page-range splitter on a document in this project.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
splitter_idYesstring
document_idYesinteger
versionNointeger

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "run": {}
  },
  "required": [
    "run"
  ],
  "additionalProperties": false
}

splitters archive

Action: splitters.archive

Archive a splitter to stop using it for future documents.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
splitter_idYesstring

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}

Action: rows.search

Query extracted rows from a table in a project you own.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
project_slugNostring
table_idYesstring
filtersNoarray
orderByNoobject
pageNointeger
pageSizeNointeger

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "rows": {}
  },
  "required": [
    "rows"
  ],
  "additionalProperties": false
}

jobs create

Action: jobs.create

Start extraction for documents already uploaded to a table.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
tableSlugYesstring
documentKeysYesarray

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "job": {}
  },
  "required": [
    "job"
  ],
  "additionalProperties": false
}

jobs get

Action: jobs.get

Get an extraction job in a project you own.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
project_slugNostring
job_idYesinteger

Input schema

{
  "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"
  ]
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "job": {}
  },
  "required": [
    "job"
  ],
  "additionalProperties": false
}

documents upload

Action: documents.upload

Upload a PDF from base64 file bytes, then save and route it for extraction. Maximum 8 MiB.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
filenameYesstring
data_base64Yesstring
tableSlugNostring

Input schema

{
  "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"
  ]
}

Output schema

{
  "$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
}

documents upload_file

Action: documents.upload_file

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.

OAuth scope: mcp:write.

Parameters

ParameterRequiredType
project_slugNostring
fileYesobject
tableSlugNostring

Input schema

{
  "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"
  ]
}

Output schema

{
  "$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
}

analysis crosscheck

Action: analysis.crosscheck

Analyze extracted rows for consistency issues and underwriting risk contradictions.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
project_slugNostring
table_idYesstring
job_idNointeger
filtersNoarray

Input schema

{
  "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"
  ]
}

Output schema

{
  "$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
}

analysis credit_memo

Action: analysis.credit_memo

Generate a first-pass commercial loan credit memo with citations from extracted data.

OAuth scope: mcp:read.

Parameters

ParameterRequiredType
project_slugNostring
table_idYesstring
job_idNointeger
memo_profileYesstring
filtersNoarray

Input schema

{
  "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"
  ]
}

Output schema

{
  "$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
}