Skip to main content
Glama

Server Details

Unstructured document processing for LLM pipelines. Upload as PDF/DOCX/TXT any supported files, extract structured data (PII-redacted), build LLM-ready datasets, and search/export results — all via MCP tools (document.process, job.status, job.result, dataset.build, dataset.search, dataset.export).

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

9 tools
dataset.buildBuild DatasetAInspect

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
descriptionNo
execution_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
job_idNo
statusNo
isErrorNo
poll_hintNo

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the key behavioral trait that annotations do not: the operation is asynchronous. It states that it returns a job_id immediately, that job.status must be polled until 'completed', and that the completed response contains dataset_id. It also notes the prerequisite of a completed execution, adding meaningful behavioral context beyond the sparse annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct yet information-dense. The one-line purpose is followed by a compact workflow sentence and a clear Arg list. Every sentence adds necessary context, and the most important usage constraint is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the async lifecycle, required inputs, optional parameters, dependency on prior execution, and downstream use with dataset.export. Since an output schema exists, the description does not need to enumerate return fields, and it provides the necessary integration details to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates. It explains execution_id as coming from a completed data_process job via job.status or job.result, name as auto-generated from the source filename when omitted, and description as optional. This gives an agent semantic understanding the schema alone lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-plus-resource statement: 'Package extracted records into a dataset for export (Step 4).' It clearly identifies the tool's role in the pipeline and distinguishes it from siblings like dataset.export and dataset.search by positioning it as the build step required before export.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains exactly when to use the tool: after a completed execution, before dataset.export. It also provides the full workflow: triggers async build, returns job_id, poll job.status until completed, then pass dataset_id to dataset.export. This is explicit usage guidance with sequential context, leaving little ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataset.chunksList RAG ChunksA
Read-onlyIdempotent
Inspect

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
page_sizeNo
dataset_idYes
min_qualityNoB
pii_masked_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
errorNo
totalNo
chunksNo
isErrorNo
has_moreNo
page_sizeNo
dataset_idNo
chunk_countNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true, but the description adds useful behavioral context: pagination behavior, the requirement that the dataset must be indexed first, and the quality threshold semantics. It discloses what the returned chunks include (text, token count, metadata fields) and the Pro+ plan limitation. It doesn't describe pagination limits beyond page_size max, but overall it goes beyond annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a short overview paragraph, a prerequisite note, and a clear Args list. Every sentence adds value: the return payload summary, the SDK pagination pointer, and the indexing prerequisite are all useful. It is slightly long but the density of relevant information justifies its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, paginated listing tool, the description covers the key operational details: prerequisite (indexing), pagination behavior, response contents, and parameter semantics. It has an output schema available to explain return values, so the description need not detail them. Missing minor details like error cases or auth requirements, but these are largely covered by the overall context and the tool's read-only nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden of explaining parameters. It explains min_quality threshold semantics with a concrete example ('B' returns A and B), clarifies pii_masked_only meaning, notes page is 1-indexed, and specifies page_size max is 100. Only dataset_id is minimally described ('ID of the indexed dataset'), but the description compensates for the schema's total lack of description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Retrieve'), a resource ('text chunks from an indexed dataset'), and an application context ('LangChain/LlamaIndex-ready'). It clearly distinguishes from siblings like dataset.search by focusing on paginated chunk retrieval rather than search or indexing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: after the dataset has been indexed via dataset.index(dataset_id), and it mentions using FlexOrchRetriever/FlexOrchReader from the flexorch-sdk for automatic pagination. It gives clear context for the indexed-dataset prerequisite, which distinguishes it from dataset.index and dataset.build.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataset.exportExport DatasetA
Read-onlyIdempotent
Inspect

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
formatNojsonl
dataset_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
formatNo
contentNo
isErrorNo
filenameNo
byte_countNo
dataset_idNo

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior. The description adds valuable context beyond this: the response is a UTF-8 string returned directly in the response, no file download or separate URL is involved, and binary formats cannot be returned via MCP.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose. Sections for return behavior, usage sequence, format guide, and parameters all add value without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with an output schema, the description is fully complete: it covers prerequisites, workflow order, format selection, return type, and known limitations. An agent has everything needed to invoke the tool correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden for parameter meaning. It explains dataset_id as coming from a completed get_job_status response and enumerates the text formats with their intended use cases, which is far more useful than the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool downloads all records from a built dataset as text and identifies it as Step 5, the final step. This distinguishes it from siblings like dataset.build, dataset.chunks, and dataset.search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly describes the required sequence: call get_job_status after build_dataset, wait for status='completed', then use the returned dataset_id. It also explains which format to choose per use case and directs users to the dashboard for binary formats that MCP cannot return.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataset.indexIndex Dataset for RAGA
Idempotent
Inspect

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).
ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
statusNo
isErrorNo
messageNo
dataset_idNo
index_hintNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description substantially exceeds the annotations by disclosing that indexing is asynchronous, splits data into RAG-ready chunks, generates embeddings, stores them, is idempotent but re-indexes with fresh embeddings, and typically completes in 10–60 seconds. It also notes the Pro+ plan requirement and the correct retrieval method afterward. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary action and requirement, then provides concise behavioral details, timing expectations, and parameter guidance. Every sentence adds value, and the Args section cleanly closes the description without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter async indexing tool, the description covers the full workflow: prerequisite (dataset.build), downstream use (dataset.chunks), behavior (chunking, embeddings, storage), idempotency, timing, and plan requirement. An output schema exists, so not detailing return values is acceptable. The context is complete for safe and correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining dataset_id as 'ID of the built dataset to index' and gives provenance: 'from job.status after dataset.build'. This tells the agent where to obtain the value, which is more useful than the schema's bare integer type and title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Trigger semantic indexing for a dataset'. It clearly distinguishes this from siblings by stating it is 'required before using dataset.chunks' and that indexing prepares a dataset for semantic search. The scope—indexing a built dataset for RAG—is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear workflow context: index 'required before using dataset.chunks' and the dataset_id comes 'from job.status after dataset.build'. It does not explicitly state when not to use it or compare it with alternatives like dataset.search or dataset.export, but the prerequisite and downstream steps are clearly defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataset.searchSearch DocumentsA
Read-onlyIdempotent
Inspect

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).
ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoauto
queryYes
top_kNo
languageNo
document_typeNo
quality_gradeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
errorNo
queryNo
isErrorNo
resultsNo
total_resultsNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral detail beyond the readOnly/idempotent annotations: it explains plan-gated modes, the upgrade message, the auto-mode resolution logic between free and Pro plans, and the dataset existence requirement. These are non-obvious behaviors an agent needs to know before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a clear one-sentence purpose, followed by usage context and plan behavior, then a compact Args list. Every sentence contributes necessary operational detail, and the most important behavioral nuances are front-loaded before the parameter details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has six parameters, plan-dependent behavior, and a required precondition; the description covers all of these, including the error/upgrade path. The presence of an output schema means return-value documentation is not required here, and nothing essential to correctly calling the tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the Args block fully compensates by explaining every parameter: query length limit, top_k default and max, mode options with plan requirements, document_type example, language format with ISO 639-1 examples, and quality_grade allowed values. This is far more informative than the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Search across all indexed FlexOrch datasets by keyword or meaning.' It clearly distinguishes itself from siblings by emphasizing search over already-indexed data and explicitly contrasting with 'without processing a new file.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when to use the tool: 'Use this to find specific documents or records without processing a new file.' It also provides a precondition ('Requires at least one dataset to exist') and plan-based guidance for mode selection. However, it does not explicitly name alternative sibling tools or state when not to use it beyond the 'without processing' implication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

document.processProcess DocumentAInspect

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
file_urlYes
mask_piiNo
document_typeNoauto

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
job_idNo
statusNo
isErrorNo
poll_hintNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal (readOnlyHint=false, idempotentHint=false), so the description carries the burden — and it delivers: it discloses async behavior (returns immediately with job_id), a REQUIRED polling protocol with cadence, file constraints (http/https, 50 MB, supported formats), and the masking default. These are exactly the non-obvious behaviors that would trip an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Each paragraph earns its place: purpose and step position up front, then pipeline mechanics, then the mandatory async protocol, then parameter docs required by the 0% schem coverage. No rdundncy; the most actionable information (polling cadence, call ordering) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a complex async tool: pipeline stages, job_id return, explicit next-step workflow, parameter semantics, and file constraints are all covered. An output schema exists so crediting return details is correctly left to it; the only trivial gap is that document_type's value list omits the 'auto' default from the schem.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (only titles and defaults), so the description fully compensates: it annotates the meaning of each param, the URL access and size/sformat constraints for file_url, the [MASKED_TYPE] placeholder behavior for mask_pii, and the auto-detection fallback plus value list for document_type. It adds meaning far beyond the schem.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Submit a document for processing') and anchors it as Step 1 of 5, immediately separating it from mid- and post-processing siblings like job.status and document.reprocess. The pipeline description (classification, extraction, PII masking, quality scoring) makes the tool's function unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use context: this is always the first step, and spells out the mandatory follow-on flow of polling job.status every 3–5 seconds before job.result. However, it never names exclusions or an alternative for already-processed documents (document.reprocess), leaving the when-not-to-use case implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

document.reprocessReprocess DocumentAInspect

Re-queue an already-uploaded document through the pipeline.

Use this to re-run extraction/PII detection/quality scoring on a document you've
already processed — e.g. after a document_type_hint change, without downloading and
re-uploading the original file. Returns immediately with a job_id — poll with
job.status the same way as after document.process.

Only works for documents whose original file is still stored on the server (locally
uploaded, not connector-sourced). If the file is no longer available, re-upload it
with document.process instead.

Args:
    document_id: ID of a previously processed document.
    pipeline_config: Optional pipeline config overrides, e.g. {"document_type_hint": "invoice"}.
ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes
pipeline_configNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
job_idNo
statusNo
isErrorNo
poll_hintNo

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the asynchronous behavior (returns immediately with a job_id), the polling mechanism, and the storage-dependent failure mode. These behavioral details go well beyond the sparse annotations and give the agent accurate expectations about side effects and follow-up calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action, then covers usage scenario, constraints, fallback, and return behavior in a tight sequence. The Args list is minimal and each sentence adds essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a simple two-parameter schema but async behavior and preconditions, the description covers invocation, response pattern, limitations, and alternative routing. The output schema exists, so not detailing the return payload is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries all parameter meaning. It clarifies document_id as a previously processed document ID and explains pipeline_config as optional overrides with a concrete JSON example, fully compensating for the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Re-queue an already-uploaded document through the pipeline') and clearly scopes the action to reprocessing existing documents. It also distinguishes itself from document.process by positioning reprocess as the follow-up for already-processed documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use context (after a document_type_hint change, avoiding download/re-upload), a hard precondition (original file must still be stored; connector-sourced docs excluded), and a named alternative fallback (re-upload with document.process). Also tells the agent to poll with job.status after the immediate job_id return.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

job.resultGet Extraction ResultA
Read-onlyIdempotent
Inspect

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
execution_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
fieldsNo
columnsNo
isErrorNo
privacyNo
qualityNo
degradedNo
has_moreNo
row_countNo
document_idNo
fields_hintNo
execution_idNo
document_typeNo
has_more_hintNo
detected_languageNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only and idempotent, and the description adds meaningful behavioral detail: masked PII placeholders are never raw, the response may include a fields_hint when no dataset has been built, and execution_id is restricted to data_process jobs. These details help the agent predict responses and downstream actions beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer but each sentence adds workflow or behavioral value. It is front-loaded with the core purpose, followed by usage notes and parameter clarification. Minor redundancy exists between the 'Use the execution_id...' sentence and the later note about execution_id provenance, but the structure remains clear and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with an output schema, the description covers the essential context: what data comes back, what happens when no dataset has been built, how to get rows as a file, and which job types are valid. Nothing an agent needs to call this tool correctly or route to related tools is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description's Args section defines execution_id as 'Execution ID from the job.status completed response.' This adds necessary provenance semantics on top of the bare integer type. It also clarifies the execution_id vs dataset_id distinction, which is important for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: 'Read structured fields extracted from a completed document (Step 3).' It clearly identifies what the tool returns and distinguishes it from dataset.* and document.* siblings by framing it as a job-result/read step. The Step 3 positioning helps an agent place it in the workflow without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent where to get execution_id: from a completed data_process job's job.status response. It also gives exclusions and alternatives: dataset_build jobs use dataset_id, and to retrieve all rows as a file the agent should proceed to dataset.build → dataset.export. This is strong routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

job.statusGet Job StatusA
Read-onlyIdempotent
Inspect

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.
ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
stageNo
job_idNo
reasonNo
statusNo
isErrorNo
degradedNo
pii_countNo
pii_foundNo
poll_hintNo
row_countNo
dataset_idNo
pii_maskedNo
document_idNo
has_datasetNo
dataset_nameNo
execution_idNo
quality_gradeNo
quality_scoreNo
pii_type_summaryNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, and the description adds meaningful behavioral details beyond those: polling cadence, terminal status values, and the presence of execution_id or dataset_id in the completed response. This informs the agent what to expect and how to proceed without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-organized: main purpose first, then polling behavior, then downstream routing, then the argument. Every sentence adds useful information, and the Args section is cleanly separated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter polling tool with an output schema and readOnly/idempotent annotations, the description covers all necessary operational guidance: when to call, how to poll, terminal states, and what to do with the result. No critical context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only documents job_id as an integer, but the description adds critical provenance by stating it is 'returned by document.process or dataset.build'. This compensates for the 0% schema description coverage, though the explanation is brief and does not elaborate on validation or edge cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action—poll a job until it finishes—and identifies the exact triggering operations (document.process, dataset.build). It clearly separates this tool from the sibling job.result by explaining that job.result consumes data from the completed job status response.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to call this tool ('after document.process or dataset.build'), how often to poll ('every 3–5 seconds'), and when to stop ('until status is 'completed' or 'failed''). It also routes downstream usage to job.result and dataset.export based on job type, giving clear context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updates
    • First observeddataset.build
    • First observeddataset.chunks
    • First observeddataset.export
    • First observeddataset.index
    • First observeddataset.search
    • First observeddocument.process
    • First observeddocument.reprocess
    • First observedjob.result
    • First observedjob.status

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI chat clients to perform market research and competitive intelligence by gathering company overviews, competitor lists, product portfolios, pricing snapshots, and recent news via live Tavily search.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool maps cleanly to a distinct pipeline stage or resource: document submission, reprocessing, job polling, result retrieval, dataset build, export, index, search, and chunk retrieval. Even the similar document.process and document.reprocess are clearly separated by whether a new file is involved or an existing stored document is re-queued.

Naming Consistency4/5

Most tools follow a consistent noun.action dot-namespace pattern like document.process, dataset.build, and job.status. dataset.chunks and job.result deviate by using nouns rather than action verbs, and one description references get_job_status/build_dataset instead of the actual tool names, creating minor inconsistency.

Tool Count5/5

Nine tools is well within the ideal range and each tool earns its place in the document processing and dataset export lifecycle. There are no redundant or filler tools, and the count matches the complexity of the workflow.

Completeness5/5

The full documented pipeline is covered: submit, poll, read results, build dataset, export, index, search, and retrieve chunks, with reprocessing available as an alternative to re-upload. No described workflow step dead-ends, and optional RAG features are supported through dataset.index and dataset.chunks.

Resources