FileForge
Server Details
File tools for your AI chat: PDF tables to Excel, merge PDFs, images to PDF, fill PDF forms.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- hongfeng328/fileforge
- GitHub Stars
- 0
TDQS
Scored across 4 tools
Each tool targets a distinct transformation: image→PDF, PDF→PDF merge, PDF form filling, and PDF table→Excel. Inputs and outputs differ clearly (source format and result type), so an agent can pick the right tool from the name alone.
All names are snake_case and descriptive, but the ordering convention is mixed: some lead with the source (images_to_pdf, pdf_form_fill, pdf_tables_to_excel) while merge_pdfs leads with the verb. It is readable but not a single predictable pattern.
Four tools is lean but each covers a genuinely distinct, high-value document operation with no redundancy. The surface is well-scoped for a focused PDF utility server, though slightly thin for the breadth of the document-processing domain.
Core conversions are covered, but obvious companions are missing: split_pdf, compress_pdf, pdf_to_images (the inverse of images_to_pdf), and page rotation/reordering. An agent hitting those needs would have no path forward within this server.
Available Tools
4 toolsimages_to_pdfCombine images into a PDFAInspect
Combine one or more images (PNG/JPEG/WebP) into a single PDF, one image per page, pages sized to each image. Input: a list of base64-encoded image contents (each max 15 MB / 40 MP). Returns a download_url for the PDF (link valid 24 hours), its size and page count. Costs 1 credit; 5 free calls per month.
| Name | Required | Description | Default |
|---|---|---|---|
| dpi | No | ||
| images_base64 | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), and the description adds real context beyond them: 1 credit per call, 5 free calls/month, a 24-hour link expiry, and the shape of the response. It omits whether outputs are retained or cleaned up after expiry and where the 5-call quota is tracked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose first, then input constraints, then return value and cost. Every clause carries operational information; nothing is restated from the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still summarizes the return (download_url, size, page count), which is helpful rather than redundant. The one gap is dpi: an agent has no basis to choose a value other than the default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It does well on images_base64 (list of base64 strings, per-item size/pixel caps) but never mentions dpi, which the schema exposes with default 200 and no explanation of its effect on output rendering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus output format: combine images (PNG/JPEG/WebP) into a single PDF, one image per page. The resource (images) implicitly separates it from merge_pdfs, but no sibling is named, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the per-image constraints (15 MB / 40 MP) and the cost note, but there is no explicit when-to-use versus merge_pdfs, and no stated precondition such as 'all inputs must be images; use merge_pdfs for PDFs'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_pdfsMerge PDFsAInspect
Merge two or more PDF files into a single PDF, in the order given. Input: a list of base64-encoded PDF file contents (each max 25 MB / 500 pages). Returns a download_url for the merged PDF (link valid 24 hours), its size and page count. Costs 1 credit; 5 free calls per month.
| Name | Required | Description | Default |
|---|---|---|---|
| pdfs_base64 | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing per-file limits (25 MB / 500 pages), the return artifact (download_url valid 24 hours) with size and page count, and the billing model (1 credit, 5 free calls/month). Those are exactly the operational facts an agent needs before committing to a call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and result, then input contract, then output and cost. No filler; every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with an output schema, this covers action, input format and constraints, output artifact, and cost. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the load, and it does: it defines the single argument as a list of base64-encoded PDF contents, states per-item size/page limits, and notes that list order determines merge order. Only the maximum number of files in the list is left unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (merge PDFs into a single PDF) plus the ordering semantics of the output. Unambiguous against siblings like images_to_pdf or pdf_tables_to_excel, though it never names them to reinforce the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the input description (a list of base64 PDFs, merged in order), and the cost/limit notes hint at when it is appropriate. There is no explicit 'use this instead of X when Y' routing or stated preconditions beyond format.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_form_fillFill a PDF formAInspect
Fill the fields of a fillable PDF form and return the completed form. Input: the PDF's contents as a base64-encoded string, plus a fields object mapping field names to values. Unknown field names are rejected with a list of the form's real fields. Checkboxes accept true/false; radio groups take the chosen option's name; dropdowns take one of their defined choices. Set flatten=true to bake values in so they can no longer be edited. Returns a download_url for the filled PDF (link valid 24 hours). Costs 1 credit; 5 free calls per month.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | ||
| flatten | No | ||
| pdf_base64 | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly=false, idempotent=false, destructive=false, so the description carries the real behavioral load and does: flatten=true is irreversible, unknown fields error with the valid list, download links expire in 24 hours, and it costs 1 credit with 5 free calls/month. Those billing and output-lifetime details appear nowhere in the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action and input shape, then layers in error behavior, widget semantics, flatten, and cost in four dense sentences with no filler. Every sentence carries information an agent would otherwise have to infer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param nested-object tool with no schema descriptions, the description covers input encoding, per-widget value conventions, irreversible behavior, error feedback, output link lifetime, and pricing. Even though an output schema exists, briefly naming download_url adds useful context rather than redundancy.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate and largely does — it defines pdf_base64, the fields name→value map, and flatten's bake-in effect, plus per-widget value conventions (checkbox true/false, radio option name, dropdown choice). Minor gap: the schema types every field value as string while the description says checkboxes accept true/false, leaving the actual wire format slightly ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fill') and resource ('fields of a fillable PDF form') plus the return value, which cleanly separates it from the siblings (merge_pdfs, images_to_pdf, pdf_tables_to_excel) — none of which touch form fields. An agent can pick this tool without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the required input shape (base64 PDF plus a fields map) and explicitly warns that unknown field names are rejected with the real field list, which is a strong self-correcting usage hint. It never states when to prefer a sibling tool or what to do if the PDF is not fillable, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_tables_to_excelExtract PDF tables to ExcelAInspect
Extract all tables detected in a PDF into an Excel (.xlsx) workbook, one worksheet per table. Input: the PDF file's contents as a base64-encoded string (max 25 MB, 500 pages; tables need visible ruling lines or clearly aligned columns). Returns a download_url for the .xlsx file (link valid 24 hours) plus the table count. Costs 1 credit; 5 free calls per month.
| Name | Required | Description | Default |
|---|---|---|---|
| pdf_base64 | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (not read-only, not destructive, not idempotent), so the description carries the rest and does so well: cost (1 credit, 5 free calls/month), input limits, the detection heuristic that can cause silent misses, and the return contract (download_url valid 24 hours plus table count). These are exactly the operational facts an agent needs before spending credits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences organized as action, input/constraints, return/cost. No filler, and the constraints and cost are front-loaded enough to be seen before invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema existing, the description still summarizes the return (download_url with expiry, table count), and it covers input limits, cost, and failure conditions. For a single-parameter tool with sparse annotations, nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single parameter has no description in the schema, so the description must compensate entirely. It does: 'the PDF file's contents as a base64-encoded string' defines the encoding, and 'max 25 MB, 500 pages' bounds the value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Extract all tables detected in a PDF into an Excel (.xlsx) workbook') and adds the output shape ('one worksheet per table'). This is unmistakably distinct from the sibling tools (images_to_pdf, merge_pdfs, pdf_form_fill), none of which touch table extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete preconditions for success — tables must have 'visible ruling lines or clearly aligned columns' — plus size limits (25 MB, 500 pages), which tells the agent when this tool will and won't work. It does not explicitly state when to prefer an alternative, but the sibling set offers no overlapping capability, so the omission is minor.
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.
4 tool updates
- First observed
images_to_pdf - First observed
merge_pdfs - First observed
pdf_form_fill - First observed
pdf_tables_to_excel
Related MCP Connectors
Convert, create and edit Word, PowerPoint, Excel and PDF documents from any AI agent.
Bank statement PDF to CSV, OCR, Office to PDF, PDF to Word, any file to Markdown, merge and split.
Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.
Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenancePrivacy-first file tools for AI agents, enabling operations like PDF merge/split, image compression/convert, metadata stripping, and background removal without storing files.27 npmMIT
- AlicenseAqualityBmaintenanceEnables AI assistants to work with local files — merging, compressing and editing PDFs, converting and resizing images, formatting text and data formats, running calculators, generating QR codes and barcodes, and producing invoices, resumes and other documents. Everything runs privately on the user's own machine with no uploads, accounts or API keys, and outputs can be chained from one tool to the next.162MIT
- AlicenseBqualityBmaintenanceGives AI assistants a full PDF toolkit — encrypting, decrypting, merging, splitting, reordering, rotating, optimizing, repairing, and converting PDFs through natural-language requests, with sandboxed file access and safe handling of damaged or password-protected files.18MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to read and process PDF files with intelligent file search, text extraction, image processing, and optional OCR support for scanned documents.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.