bigapi
It is an MCP server that gives AI agents access to bigapi.dev's 40+ file-processing operations over HTTPS with a single key.
Discover operations:
find_toolmaps plain-language tasks to matching operations with examples, price, and guide links (free, no key).Run any operation:
run_operationexecutes any bigapi operation by name, using local file paths and writing results to local files.Load dedicated tools on demand:
enable_toolsadds specific operation tools (e.g.pdf_redact,ocr) or["all"]into the session.Get a free API key:
get_accesscreates a key instantly with 100 free operations, no signup or credit card.Check balance and usage:
get_balanceshows remaining credit, free operations, monthly cap, and spend.Process PDFs: merge, split, rotate, compress, convert to Markdown/images, extract tables/attachments, redact, sanitize, passwords, signatures, PDF/A archival.
Convert documents: Office files, EPUB, and Markdown to PDF or Markdown; HTML/Markdown/URL to PDF or PNG; email to PDF.
Handle images: resize, crop, convert, compress, strip metadata, watermark, inspect info.
AI transparency: sign/verify C2PA Content Credentials and add visible AI-generated labels with EXIF marking.
Prepare text for RAG: token-based and heading-aware chunking with overlap.
Generate web content: full-page screenshots, clean Markdown from HTML/URL, Handlebars templates, charts, QR codes.
Allows rendering charts from Chart.js configurations into PNG images server-side, enabling AI agents to create data visualizations without a local browser.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bigapiRender this HTML as a PDF and save it to my Desktop"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@bigapi/mcp
MCP server for bigapi.dev – the output layer for AI agents.
Your agent produced something. bigapi turns it into a finished file – and reads files back in. Merge, redact, OCR, convert, sign, validate: the operations an LLM cannot do itself, over plain HTTPS, with one key, nothing to install server-side.
$0.01 per operation. 100 free. Free operations and balance never expire. Failed calls are free. Servers in Germany, GDPR, files deleted after delivery. Every operation ships with a published proof that it does what it promises.
Also listed in the official MCP Registry as dev.bigapi/mcp.
Lean by default
The server starts lean: it lists five tools, so your context stays free.
Tool | What it does |
| Describe your task in plain words, get the matching operation with a ready-to-run example. Free, no key. |
| Run any bigapi operation by name, including ones added after your client started. |
| Load dedicated tools on demand, e.g. |
| Get a free key, check credit. |
All 40+ operations are available from the first second through run_operation; the dedicated
tools are a convenience, not a requirement. Want the full list right away?
Set BIGAPI_TOOLS=all in the server environment.
Why: every tool definition costs context in your client, and a model choosing between five descriptions picks better than one scanning forty-six.
Related MCP server: Filesystem MCP Server
What you can run
All 40+ operations go through run_operation (or their own tool after enable_tools).
Ask find_tool in plain words instead of memorising this list:
PDF basics — merge, split, rotate, compress, page info, outline, compare, linearize
PDF content — to Markdown, to images, extract tables, extract attachments (ZUGFeRD / Factur-X invoice XML)
PDF safety — redact (rasterise and rebuild, text provably gone), sanitize (JavaScript, actions, embedded files), password on/off, verify signature
PDF archival — PDF/A-2b with embedded fonts and an output intent, checked with veraPDF
Documents — Office and e-books to PDF or Markdown (DOCX, XLSX, PPTX, ODT, EPUB), Markdown to Word, .eml to PDF
Web and rendering — HTML/Markdown/URL to PDF or PNG, full-page screenshots with device presets, HTML or URL to clean Markdown, Handlebars templates, charts, QR codes
Images — resize, crop, convert (WebP/AVIF/…), compress, strip metadata, watermark, image info
AI transparency — C2PA Content Credentials sign and verify, visible "AI-generated" label with EXIF marking (EU AI Act Art. 50)
Text for RAG — token-based chunking, heading-aware, with overlap
Account — free key, balance, usage, monthly cap, pricing
Install
Requires Node 18+. No API key needed up front – the agent can call get_access itself.
Claude Desktop
claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"bigapi": {
"command": "npx",
"args": ["-y", "@bigapi/mcp"]
}
}
}Restart Claude Desktop. Then: "Get bigapi access and render this text as a PDF on my Desktop."
Cursor / Windsurf / Cline
Same block in the respective MCP settings (.cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json, Cline → MCP Servers → Configure).
With an existing key
"bigapi": { "command": "npx", "args": ["-y", "@bigapi/mcp"], "env": { "BIGAPI_KEY": "bigapi_..." } }How files work
Inputs are local paths (/Users/me/report.pdf, C:\Users\me\scan.pdf). Outputs are written to output_path if given, otherwise to a temp folder (BIGAPI_OUTPUT_DIR to change). Every result includes the cost, what it was charged from, and the remaining balance.
Pricing
Flat $0.01 per operation – every operation, no exceptions (per page for ocr, office_to_pdf, pdf_to_markdown, pdf_extract_tables, pdf_compare and pdf_redact). Prepaid from $5 – no subscription, no signup, balance never expires, failed calls are free. Machine-readable: get_pricing or GET /v1/pricing.
Environment
Variable | Default | Purpose |
| – | Use this key instead of the stored one |
|
| Where |
| OS temp dir | Default output folder |
|
| API base (for self-hosting / testing) |
Without MCP
Plain HTTP works everywhere (n8n, Make, Zapier, LangChain, your code):
curl -X POST https://api.bigapi.dev/v1/keys # → key
curl -o out.pdf https://api.bigapi.dev/v1/render \
-H "Authorization: Bearer $KEY" -H "content-type: application/json" \
-d '{"markdown":"# Hello from an agent"}'OpenAPI: https://api.bigapi.dev/openapi.json · Docs: https://api.bigapi.dev/docs · Guides: https://bigapi.dev/guides/ · llms.txt: https://api.bigapi.dev/llms.txt
License
MIT
Available Tools
5 toolsenable_toolsA
Add the dedicated tools for specific operations to this session, e.g. ["pdf_redact","ocr"], or ["all"] for every operation. bigapi starts lean – only find_tool, run_operation, get_access and get_balance are listed – so your context stays free. You rarely need this: every operation already runs through run_operation. Reach for it when you will call the same operation many times and want its parameters spelled out in your tool list. Names come from find_tool; unknown names are reported back and skipped while the rest are still enabled. The effect lasts for this session, adds to what is already enabled, and cannot be undone from here – restart the server for the lean list again.
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | Tool names as find_tool reports them, e.g. ["pdf_redact","ocr"], or ["all"] for the full list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so thoroughly. It discloses session-scoped persistence, that enabling is additive, that unknown names are skipped while others are enabled, and that the change cannot be undone except by restarting the server.
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?
The description is front-loaded with the core action and then gives necessary context. It is a bit long but every sentence contributes useful information about usage, behavior, and limitations. There is no redundant fluff.
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 single-parameter tool with no output schema, the description is complete: what it does, when to use it, how to name tools, what happens with invalid names, session scope, and how to revert. An agent has everything needed to invoke it correctly and predict its behavior.
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?
The schema already covers the parameter well, including the ['all'] special value and find_tool as the name source. The description adds useful behavioral nuance beyond the schema: unknown names are reported and skipped, the rest are enabled, and the session-scoped effect. This goes beyond the baseline but the schema does most of the semantic work.
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?
The description states a clear, specific action: adding dedicated operation tools to the current session, with examples. It also distinguishes itself from the lean default tool set and from run_operation, making the tool's function unambiguous even without opening the 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?
The description gives explicit when-to-use guidance: use it only when calling the same operation many times and wanting parameters spelled out. It also says 'you rarely need this' and clarifies that run_operation already handles operations, which prevents overuse. It further tells the agent to get names from find_tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_toolA
Find the right bigapi operation for a task. Describe what you need in plain words, English or German – "convert a png to webp", "remove customer names from a contract", "extract the ZUGFeRD invoice XML" – and get the matching operations with their parameters, a ready-to-run example, the price and a guide link. It recommends only: it never touches your files and never spends credit; run what it names with run_operation. Free and no API key needed, so it is also the cheapest way to see what bigapi covers. Start here whenever you are unsure which operation fits, and skip it when you already know the operation name. If nothing fits, the answer says so plainly instead of guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many candidates to return | |
| query | Yes | The task in plain words, e.g. "convert a png to webp" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to lean on, the description fully discloses behavior: it only recommends, never touches files, never spends credit, requires no API key, and reports no-match honestly instead of guessing. This gives an agent a complete safety and expectation profile.
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?
The description is front-loaded with the core purpose and each subsequent sentence adds a distinct fact: output contents, safety/credit behavior, cost/auth, when to use, and failure mode. There is no filler or repetition.
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 simple two-parameter discovery tool with no output schema, the description is complete: what it returns, how to phrase input, safety, cost/auth, alternatives, and no-match behavior are all covered. Nothing an agent needs to safely invoke it is left to guesswork.
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?
The schema already documents both parameters with 100% coverage, so the baseline is 3. The description adds value by expanding query semantics: plain-language tasks, English or German, multiple examples, and the kind of intent that fits this tool rather than run_operation.
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 action ('Find the right bigapi operation') with a clear resource and task scope, and grounds it with concrete examples. It also distinguishes itself from sibling run_operation by making clear it is a recommender, not an executor.
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?
Explicitly says when to use it ('Start here whenever you are unsure which operation fits') and when to skip it ('skip it when you already know the operation name'). It also names the alternative execution path via run_operation and notes it is free, easing trial use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accessA
Get a bigapi API key for this machine. Call this once when no key is configured; other bigapi tools fail with "no API key" until you do. Creates a NEW free key (no signup, no credit card) and stores it in the local config file, where every bigapi tool picks it up. Calling it again creates an additional key rather than returning the existing one – use get_balance to check the key you already have. The new key includes 100 free operations, then $0.01 per operation from a prepaid balance; neither expires. Needs network access to api.bigapi.dev.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Label stored with the key so you can tell keys apart later, e.g. "claude-desktop". Cosmetic only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It discloses that the tool creates a NEW key each time, stores it in a local config file, requires network access, and that the key includes 100 free operations then $0.01 per operation. It also warns that calling it again creates an additional key rather than returning the existing one, which is a critical behavioral trait.
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?
The description is dense but every sentence earns its place: it covers when to call, what it does, side effects, pricing, and the alternative. It is front-loaded with the core purpose. It could be slightly more concise, but the density is justified given the lack of annotations.
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 tool with one optional parameter, no output schema, and no annotations, the description is remarkably complete. It explains the failure mode, the side effect, the pricing model, the network requirement, and the sibling tool to use instead. An agent has everything it needs to decide whether and how to call this tool.
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 100%, so the schema already documents the 'name' parameter. The description adds value by explaining the parameter is cosmetic only and giving an example ('claude-desktop'), which helps the agent decide whether to pass it. This goes beyond the schema's description.
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?
The description states a specific verb ('Get'), a specific resource ('bigapi API key'), and a clear scope ('for this machine'). It also distinguishes itself from get_balance by explicitly noting that calling it again creates a new key rather than returning the existing one, which prevents confusion with the sibling tool.
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?
The description explicitly says when to call it ('once when no key is configured'), what happens if you don't ('other bigapi tools fail'), and what to use instead if you need to check an existing key ('use get_balance'). This is clear, actionable guidance with an explicit alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceA
Check the bigapi key that is currently configured: remaining credit, free operations left, monthly cap and spend so far this month. Read-only, free, and a snapshot of this moment – the numbers move as operations run. Use it to confirm a key works, before a large batch, or when an operation reports a low balance. It does not create keys (that is get_access) and does not list past operations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden and does well: it labels the call as 'Read-only, free' and warns that values are 'a snapshot of this moment – the numbers move as operations run.' This conveys no side effects and the non-deterministic nature of the result, which is critical for an agent deciding whether to call it again. No contradiction with any annotations.
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?
The description is three sentences with no filler. The first sentence front-loads the core purpose, the second provides usage context and the snapshot caveat, and the third handles sibling differentiation. Every sentence earns its place, making it compact yet information-dense.
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 having no output schema or annotations, the description covers purpose, when to use it, behavioral caveats, and the specific data points returned. The tool is a zero-parameter read operation, so nothing needed is missing. The listed fields (remaining credit, free operations left, monthly cap, spend) are sufficient for agent decision-making.
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?
The input schema is empty (0 parameters), so the baseline is 4. The description adds context by specifying that the tool checks the 'currently configured' bigapi key, clarifying the implicit subject without requiring a parameter. Since there are no parameters, the description cannot add much more, but the existing added meaning is valuable.
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?
The description opens with 'Check the bigapi key that is currently configured' and enumerates exactly what is read: remaining credit, free operations left, monthly cap, and spend. It explicitly differentiates from sibling get_access by stating it does not create keys, and from list-like tools by noting it does not list past operations. This is a precise verb+resource definition with clear sibling differentiation.
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?
The description gives explicit intended triggers: 'Use it to confirm a key works, before a large batch, or when an operation reports a low balance.' It also tells the agent when not to use it by stating it does not create keys or list operations, effectively routing those needs to siblings like get_access. This is strong practical guidance beyond generic 'use this for balance.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_operationA
Run any bigapi operation on real files: merge or redact a PDF, OCR a scan, convert an image, chunk text for embeddings, read a ZUGFeRD invoice, sign an image as AI-generated. Take the operation name from find_tool (e.g. "pdf/merge", "ocr", "text/chunk"). Uploads are local file paths. A file result is written to output_path, or to a temporary file when you omit it, and the path comes back with size and content type; a data result comes back as JSON. $0.01 per operation flat, no subscription, and failed calls cost nothing. This one executor covers every operation, including ones added after your client started – enable_tools only adds convenience wrappers around it. Files are processed in Germany, deleted right after delivery, and every operation ships with a published proof that it does what it promises.
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | Operation name or path, e.g. "pdf/merge" or "/v1/pdf/merge" | |
| files | No | Local file paths to upload, in order | |
| params | No | Parameters of the operation, exactly as described by find_tool | |
| file_field | No | Form field for the uploads; defaults to "files[]" for pdf/merge and "file" otherwise | |
| output_path | No | Where to write the result |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations, the description carries the full burden and delivers: return behavior (file result written to output_path or temp file, returned with size and content type; data result as JSON), cost model ($0.01 flat, failed calls free), data handling (processed in Germany, deleted after delivery), and a verification claim. This is unusually rich behavioral disclosure for a tool with no annotation support.
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?
About 150 words for a generic dispatcher with 5 params, no annotations, and no output schema — every sentence earns its place by covering purpose, op sourcing, file handling, output behavior, cost, sibling relationship, and data residency. Front-loaded with purpose and examples. Slightly long, and the closing 'published proof' sentence is marginally promotional, but nothing is wasted.
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 high-complexity generic executor with no output schema and no annotations, this description is remarkably complete: it explains what the tool does, how to source the op name, how uploads are referenced, what happens when output_path is omitted, what the return payloads look like for both file and data results, cost/failure policy, and the relationship to sibling tools. The only unaddressed area is explicit auth prerequisites, which the get_access sibling implies.
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 100%, so the baseline is 3, but the description adds meaning beyond the schema: 'Uploads are local file paths' clarifies the files parameter, 'written to output_path, or to a temporary file when you omit it' explains output_path's optional behavior, and the examples ('pdf/merge', 'ocr', 'text/chunk') illustrate the op naming convention. Slightly above baseline, but it doesn't exhaustively define params semantics.
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+resource ('Run any bigapi operation on real files') backed by concrete examples (merge/redact PDF, OCR, convert image, chunk text, read ZUGFeRD invoice). It distinguishes itself from siblings explicitly: 'This one executor covers every operation... enable_tools only adds convenience wrappers around it,' and routes op-name sourcing to find_tool. An agent cannot confuse this with the discovery or wrapper siblings.
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?
Gives explicit workflow guidance: 'Take the operation name from find_tool' tells the agent where the op parameter comes from, and 'enable_tools only adds convenience wrappers around it' is an explicit when-not-to-use-alternative statement establishing run_operation as the universal executor. Pricing and failure-cost statements further clarify when calls are safe to make. No decision is left to inference.
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.
2 tool updates
v0.8.2- Changed
enable_tools1 field changed- changed
Input schema / properties / names / descriptionPrevious value: -"Tool names to enable, or [\"all\"]"New value: +"Tool names as find_tool reports them, e.g. [\"pdf_redact\",\"ocr\"], or [\"all\"] for the full list"
- Changed
get_access1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Optional label for the key, e.g. \"claude-desktop\""New value: +"Label stored with the key so you can tell keys apart later, e.g. \"claude-desktop\". Cosmetic only."
45 tool updates
v0.8.0- Removed
chart_render - Removed
docx_to_markdown - Removed
email_to_pdf - Added
enable_tools - Removed
epub_to_markdown - Removed
get_pricing - Removed
get_usage - Removed
html_to_markdown - Removed
image_ai_label - Removed
image_c2pa_sign - Removed
image_c2pa_verify - Removed
image_info - Removed
image_process - Removed
image_to_pdf - Removed
md_to_docx - Removed
ocr - Removed
office_to_pdf - Removed
pdf_attachments - Removed
pdf_compare - Removed
pdf_compress - Removed
pdf_extract_tables - Removed
pdf_info - Removed
pdf_linearize - Removed
pdf_merge - Removed
pdf_outline - Removed
pdf_protect - Removed
pdf_redact - Removed
pdf_rotate - Removed
pdf_sanitize - Removed
pdf_split - Removed
pdf_to_images - Removed
pdf_to_markdown - Removed
pdf_to_pdfa - Removed
pdf_unlock - Removed
pdf_verify_signature - Removed
pptx_to_markdown - Removed
qr_code - Removed
render - Added
run_operation - Removed
screenshot - Removed
set_monthly_cap - Removed
template_render - Removed
text_chunk - Removed
url_to_markdown - Removed
xlsx_to_markdown
4 tool updates
v0.7.0- Added
html_to_markdown - Added
pdf_attachments - Added
pdf_linearize - Added
pdf_sanitize
20 tool updates
v0.6.0- Added
chart_render - Added
docx_to_markdown - Added
email_to_pdf - Added
epub_to_markdown - Added
find_tool - Added
image_ai_label - Added
image_c2pa_sign - Added
image_c2pa_verify - Added
image_to_pdf - Added
pdf_compare - Added
pdf_outline - Added
pdf_protect - Added
pdf_redact - Added
pdf_unlock - Added
pdf_verify_signature - Added
pptx_to_markdown - Added
qr_code - Added
template_render - Added
text_chunk - Added
xlsx_to_markdown
9 tool updates
v0.4.0- Added
md_to_docx - Added
ocr - Added
office_to_pdf - Added
pdf_extract_tables - Added
pdf_info - Added
pdf_to_markdown - Added
pdf_to_pdfa - Added
screenshot - Added
url_to_markdown
13 tool updates
v0.1.0- First observed
get_access - First observed
get_balance - First observed
get_pricing - First observed
get_usage - First observed
image_info - First observed
image_process - First observed
pdf_compress - First observed
pdf_merge - First observed
pdf_rotate - First observed
pdf_split - First observed
pdf_to_images - First observed
render - First observed
set_monthly_cap
TDQS
Scored across 5 tools
Each tool has a distinct lifecycle role: discovery (find_tool), execution (run_operation), session convenience (enable_tools), key creation (get_access), and balance checking (get_balance). The descriptions explicitly cross-reference each other and state what they do not do, so there is little risk of an agent picking the wrong one.
All five names follow a consistent snake_case verb_noun pattern (find_tool, run_operation, enable_tools, get_access, get_balance). The verbs are specific and match the action, and no style mixing or vague generic names appear.
Five tools is well-scoped for a server that intentionally stays lean and dynamically exposes operations through find_tool/run_operation. Each tool covers a necessary concern: discovery, execution, optional tool enabling, access, and balance.
The core workflow is fully covered: obtain a key, find an operation, run it, and check credit/usage. The dynamic design means new operations don't require new server tools, so there are no obvious dead ends or missing lifecycle steps.
Maintenance
Related MCP Connectors
MCP tools for AI agents: render URLs to image/PDF, check link health, convert HTML/CSV/JSON.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Generate images, GIFs, videos, and PDFs from HTML, URLs, or templates — from your AI agent.
Htmlpdf Transform Mcp connects AI agents to real public APIs via MCP. Tools include
Related MCP Servers
AlicenseBqualityCmaintenanceThis repository is an example of how to create a MCP server for Qdrant, a vector search engine.21,540Apache 2.0- FlicenseAqualityAmaintenanceNode.js server implementing Model Context Protocol (MCP) for filesystem operations.1014562,943 npm90,939-

Chroma MCP Serverofficial
AlicenseAqualityDmaintenanceA server that provides data retrieval capabilities powered by Chroma embedding database, enabling AI models to create collections over generated data and user inputs, and retrieve that data using vector search, full text search, and metadata filtering.1331,255 PyPI599Apache 2.0
@rendershot/mcp-serverofficial
AlicenseAqualityDmaintenanceEnables AI agents to capture screenshots and generate PDFs from URLs or HTML via the Rendershot API.418 npm3MIT