flexorch-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FLEXORCH_API_KEY | Yes | Your FlexOrch API key. Get it from https://app.flexorch.com/settings |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| document.processA | Submit a document for processing — this is always the first step (Step 1 of 5). Downloads the file from file_url, then submits it to FlexOrch for automatic classification, structured field extraction, PII detection/masking, and quality scoring. Processing is asynchronous — this tool returns immediately with a job_id. You MUST call job.status(job_id) every 3–5 seconds until status='completed' before calling job.result. Args: file_url: Publicly accessible URL of the document (http/https only, max 50 MB). Supported: PDF, DOCX, TXT, XLSX, HTML, XML, EML, JPG, PNG, TIFF. mask_pii: Replace detected PII (names, IDs, emails, phone numbers) with [MASKED_TYPE] placeholders in all output. Default: true. document_type: Optional classification hint — FlexOrch auto-detects if omitted. Values: invoice, expense_report, purchase_order, sales_proposal, bank_statement, payroll. |
| job.statusA | Poll a job until it finishes — call this after document.process or dataset.build (Step 2). Call repeatedly every 3–5 seconds until status is 'completed' or 'failed'. For data_process jobs: the completed response includes execution_id — pass it to job.result. For dataset_build jobs: the completed response includes dataset_id — pass it to dataset.export. Args: job_id: Job ID returned by document.process or dataset.build. |
| job.resultA | Read structured fields extracted from a completed document (Step 3). Use the execution_id from a completed data_process job (job.status response). Returns document type, detected language, quality grade (A–D), PII summary, column list, and extracted field values. If no dataset has been built yet, the response includes a fields_hint guiding you to call dataset.build next. To retrieve all rows as a file, proceed to dataset.build → dataset.export. Note: Masked fields appear as [MASKED_TYPE] placeholders — raw PII is never returned. Note: execution_id comes from data_process jobs only; dataset_build jobs use dataset_id. Args: execution_id: Execution ID from the job.status completed response. |
| dataset.buildA | Package extracted records into a dataset for export (Step 4). Triggers an async dataset build from a completed execution. Returns a job_id immediately — poll with job.status until status='completed'. The completed response includes dataset_id, which you pass to dataset.export to retrieve all records as text. This step is required before calling dataset.export. Args: execution_id: Execution ID from a completed data_process job (from job.status or job.result). name: Dataset name. Auto-generated from the source filename if omitted. description: Optional description for this dataset. |
| dataset.searchA | Search across all indexed FlexOrch datasets by keyword or meaning. Use this to find specific documents or records without processing a new file. Requires at least one dataset to exist. Structured search works on all plans. Semantic and hybrid modes require a Pro plan — a clear upgrade message is returned if the plan is insufficient. mode='auto' picks structured on free plans, hybrid on Pro+. Args: query: Search query — natural language or keyword. Max 1000 characters. top_k: Number of results to return. Default: 5, max: 50. mode: Search strategy — auto (default), structured, semantic, hybrid. semantic and hybrid require Pro plan. document_type: Filter to a specific document type, e.g. invoice (optional). language: Filter by document language, ISO 639-1 code, e.g. en, de, tr (optional). quality_grade: Filter by quality grade: A, B, C, or D (optional). |
| dataset.exportA | Download all records from a built dataset as text (Step 5 — final step). Returns the complete dataset content as a UTF-8 string directly in the response — no file download or separate URL needed. Call get_job_status after build_dataset and wait for status='completed' before calling this tool. Use the dataset_id from that completed response. Format guide: jsonl = LLM fine-tuning, rag = LangChain/LlamaIndex chunks, csv = spreadsheets, md = human-readable, xml = structured interchange. Binary formats (parquet, hf) cannot be returned via MCP — export them from the FlexOrch dashboard directly. Args: dataset_id: Dataset ID from the get_job_status completed build response. format: Text export format — jsonl, csv, json, md, xml, rag. Default: jsonl. |
| dataset.indexA | Trigger semantic indexing for a dataset — required before using dataset.chunks (Pro+ plan). Starts an async indexing job that splits the dataset into RAG-ready text chunks, generates embeddings, and stores them for semantic search. Indexing is idempotent: calling it again on an already-indexed dataset re-indexes with fresh embeddings. Indexing typically completes in 10–60 seconds depending on dataset size. After indexing, use dataset.chunks(dataset_id) to retrieve the text chunks. Args: dataset_id: ID of the built dataset to index (from job.status after dataset.build). |
| dataset.chunksA | Retrieve LangChain/LlamaIndex-ready text chunks from an indexed dataset (Pro+ plan). Returns paginated RAG chunks. Each chunk includes text, token count, and metadata (quality grade, PII masking status, document type, language). Use FlexOrchRetriever or FlexOrchReader from the flexorch-sdk for automatic pagination. The dataset must be indexed first via dataset.index(dataset_id). Args: dataset_id: ID of the indexed dataset. min_quality: Minimum quality grade to include: A, B, C, or D. Default: B. Chunks with grade at or above this threshold are returned. Example: "B" returns grade A and B chunks. pii_masked_only: When true, return only chunks where PII was masked. Default: false. page: Page number, 1-indexed. Default: 1. page_size: Chunks per page, max 100. Default: 20. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/flexorch/flexorch-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server