mcpbeat

AILANG Parse MCP Server

io.github.sunholo-data/parse
answering

AILANG Parse is answering right now. Last checked 8 min ago. 640 installs a week from pypi. It exposes 31 tools. Last commit 21 Jul 2026.

Deterministic DOCX/PPTX/XLSX/PDF parser: track changes, comments, headers, footers, merged cells.

Installs per day peak 28 · avg 9 · -55% w/w
a month agotoday
Uptime history 42 hours of history
42 hours agonow
100.0%
Uptime 24h
91 of 91 checks
31
Tools
read from the server
142 ms
Response time
average over 24h
640
Installs / week
npm and PyPI

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 8 min ago.

run in your terminal
claude mcp add parse --transport http https://docparse.ailang.sunholo.com/mcp/
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "parse": {
      "url": "https://docparse.ailang.sunholo.com/mcp/"
    }
  }
}
~/.codex/config.toml
[mcp_servers.parse]
url = "https://docparse.ailang.sunholo.com/mcp/"
.cursor/mcp.json
{
  "mcpServers": {
    "parse": {
      "url": "https://docparse.ailang.sunholo.com/mcp/"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "parse": {
      "url": "https://docparse.ailang.sunholo.com/mcp/"
    }
  }
}

Available tools 31

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

agentcard
agentCard
A2A Agent Card for agent-to-agent discovery. Returns a hand-crafted Agent Card with AILANG Parse-specific skills, supported formats, and capability descriptions. @raw: return raw JSON (no {result:..., elapsed_ms:N} envelope) for A2A compliance. Switch to @nowrap once available (lighter than @raw). If using --a2a flag, the built-in route takes precedence (collision guard skips this).
apisamples
apiSamples
Sample files inventory — delegates to the upstream package. Package @route annotations don't auto-register with serve-api, so we provide a local wrapper here.
apitools
apiTools
Tool definitions for Claude, OpenAI, MCP, and A2A agent frameworks. Delegates to the upstream package.
capabilities
capabilities
capabilities(() -> string ! {Env}) [pure]
deviceauthapprove
deviceAuthApprove
Approve a device authorization request. Called by the browser approval page after user signs in and confirms. Verifies Firebase ID token from Authorization header to ensure the caller is a real authenticated user. Extracts uid from the verified token. Dev mode: ALLOW_SELF_APPROVE=true skips Firebase verification (for testing).
deviceauthinspect
deviceAuthInspect
Look up a pending device code by user_code and return its provenance. No authentication required — possession of the user_code is the proof. The dashboard /approve.html page calls this BEFORE showing the approve UI so the user can see where the request came from (IP, User-Agent, Referer, age) and decide whether to trust it. Returns 404 if the user_code does not match any pending device_codes doc. Already-approved or expired codes return as INPUT_NOT_FOUND too — there is nothing to inspect after the fact.
deviceauthpoll
deviceAuthPoll
Poll for device authorization approval. Returns AUTHORIZATION_PENDING if user hasn't approved yet. Returns DEVICE_CODE_EXPIRED if the code has timed out. Returns approved status with API key on success.
deviceauthrequest
deviceAuthRequest
Request a device authorization code. Returns device_code, user_code, and verification URL. The agent should display the verification_url to the user.
editdocument
editDocument
Parse a document, apply JSON edit deltas, and return the modified blocks as JSON (same format as POST /api/v1/parse with outputFormat=blocks). filepath: uploaded file path (multipart upload). deltas: JSON array of edit operations — see edit_apply.ail for format. Empty array or "" → round-trip (parse + return unchanged blocks). apiKey: dp_ API key. Response: modified blocks JSON. Use the AILANG SDK or CLI to generate a file from the returned blocks (e.g. ailang run ... --convert output.docx). Only deterministic office formats are supported (docx, pptx, xlsx, odt, odp, ods). AI-required formats (pdf, image, audio, video) are rejected.
estimate
estimate
estimate((string, string) -> string ! {Clock, FS}) [pure]
formats
formats
List all supported document formats for parsing and generation. Returns: parse formats (13), generate formats (9), output formats (blocks/markdown/html/a2ui), and which formats require AI (PDF, images).
getkeyusage
getKeyUsage
Get usage stats for a user's API key. Accepts Firebase JWT or apiKey. Verifies that the requested keyId belongs to the authenticated user.
getuploadurl
getUploadUrl
Request a pre-authenticated GCS upload URL for direct file upload. Business tier only. The returned URL allows the client to PUT file content directly to GCS, bypassing the 32MB Cloud Run request limit. After upload, pass the gcs_ref to POST /api/v1/parse.
health
health
Health check for the AILANG Parse API. Returns service status, version, AILANG commit hash, supported format counts, and billing catalog status. `billing_catalog_loaded` is FALSE when the BILLING_PLAN_CATALOG env var is unset or parses to an empty list — in that mode every authenticated request silently falls back to the safety-net "fallback" plan (limit=1) and is rejected as over-quota. release.sh asserts `billing_catalog_loaded == true` after every promotion to catch this regressing.
listapikeys
listApiKeys
List API keys for a user. Accepts either: - Authorization: Bearer <firebase_id_token> (dashboard path) - {apiKey: "..."} or {args: ["dp_..."]} in body (CLI/SDK path) The resolved userId filters the Firestore query server-side.
mcpaccount
mcpAccount
View account info, pricing, entitlements, or list keys. Actions: "status" (default) → tier, quota, usage from /me/entitlements "pricing" → public pricing tiers (no auth required) "keys" → list user's API keys with per-key usage "usage" → alias for "keys" (per-key usage is shown there)
mcpauth
mcpAuth
Start device authorization to get an API key. Returns device_code, user_code, and verification URL. The agent should display the verification URL to the user, who signs in and approves the code. Then call mcpAuthPoll with the device_code. MCP wrappers don't have HTTP request headers, so provenance is empty here.
mcpauthpoll
mcpAuthPoll
Poll for device authorization completion. Returns "pending" (keep polling every 5s), "approved" (with api_key and tier), or "expired" (start over with mcpAuth).
mcpconvert
mcpConvert
Convert is not supported on the hosted server (no persistent local filesystem to write the output file to). Use the local stdio SDK (@ailang/parse) for local conversions, where the user has filesystem access.
mcpestimate
mcpEstimate
Estimate cost and latency for parsing a document. Accepts a file path or sample_id. No auth required.
mcpformats
mcpFormats
List supported formats, samples, and service capabilities. Pure JSON, no auth required. Delegates to package implementation. Single source of truth lives in pkg/sunholo/ailang_parse/services/mcp/tools.
mcpparse
mcpParse
Parse a document. Accepts a file path or sample_id (e.g. "sample_docx_formatting"). The hosted server requires a valid dp_ API key — get one via mcpAuth. Output formats: blocks (default), markdown, html, a2ui. requestId is reserved for future replay support.
myentitlements
myEntitlements
Get the authenticated user's billing entitlements, usage, and plan details. Returns: plan name, monthly request limit, requests used, remaining requests, upgrade/manage URLs. Requires a valid AILANG Parse API key (dp_ prefix).
parsefilesecure
parseFileSecure
Parse a document. Requires a valid API key. Validates the key, checks entitlement quotas, logs for replay. filepath: file path OR sample_id (e.g. "sample_docx_formatting" → resolved via /api/v1/samples). outputFormat: "blocks", "markdown", "html", or "a2ui". editable: "true" to emit editable A2UI component variants with block_index props; only meaningful when outputFormat="a2ui". gcsRef: optional gs:// URI for Business tier large file uploads (>32MB). When provided, the file is downloaded from GCS via our service account. Business tier only — Free/Pro users get TIER_UPGRADE_REQUIRED error. sourceUrl: optional https:// URL (e.g., a signed GCS URL or any public file). When provided, the file is fetched over HTTPS by docparse and parsed. Available on all tiers; tier dictates the max fetched-file size. Cannot be combined with gcsRef or filepath — sourceUrl wins. pdfBackend: optional PDF extraction backend override. "" — use server default (DOCPARSE_PDF_BACKEND env var, default "pdftotext"). "pdftotext" — deterministic text extraction via poppler. Fast, no AI cost. "docling" — IBM Docling layout analysis. No AI cost. "liteparse" — run-llama LiteParse. No AI cost. "ai" — Gemini multimodal via Vertex AI. Required for scanned/image-only PDFs. Explicit non-"ai" selection returns an error on failure (no silent AI fallback). @nowrap: raw JSON (no envelope), _headers extracted as HTTP response headers.
partitiongeneral
partitionGeneral
Unstructured API-compatible endpoint (drop-in replacement for Unstructured.io). Returns elements in Unstructured JSON format (Title, NarrativeText, Table, ListItem, etc.). Accepts file upload (multipart/form-data) or JSON body with filepath/sample_id. API key: via unstructured-api-key header (Unstructured convention) or apiKey form field. strategy parameter: "auto" (default), "hi_res", "fast", "ocr_only". Uses _headers for header access while keeping @route multipart support.
pricing
pricing
pricing(() -> string) [pure]
requesthistory
requestHistory
List recent parse requests for a user. Returns up to 50 entries. Accepts Firebase ID token (dashboard) OR dp_ API key (programmatic). Dashboard sends Authorization: Bearer <firebase_token> with {args: [uid]}. API clients send {args: [apiKey]}. Uses Firestore structured query to filter by user_id server-side and order by timestamp descending. Only reads matching docs (not full scan).
requestreplay
requestReplay
Retrieve a stored request/response pair for replay. Requires authentication: Firebase JWT or dp_ API key. The request must belong to the authenticated user (user_id match). Accepts optional outputFormat (blocks/markdown/html/a2ui) to re-render the stored blocks server-side using the ailang_parse pipeline.
revokeapikey
revokeApiKey
Revoke an API key by keyId. Authenticates via either Firebase JWT or apiKey.
rotateapikey
rotateApiKey
Rotate an API key: generate new key, revoke old one, preserve tier + usage.
submit
submit_feedback
Anonymous bug report / feature request / docs gap, queued for human review. Default routing: `public-feedback` inbox (general AILANG). Pass `package="vendor/name"` (e.g. "sunholo/auth") to route to that package's `pkg:vendor/name` inbox where its autonomous agent watches. Categories: bug, feature, docs, limitation. Body limit 10KB, snippet limit 4KB. Optional contact field for follow-up; opaque to the server. Set `auto_dispatch=true` to authorize the package agent to act on your submission immediately (default false — files for human triage; pkg-feedback agent template lands in a separate sprint).

Endpoints

URLTransportStateLatencyChecked
https://docparse.ailang.sunholo.com/mcp/ streamable-http answering 99 ms 8 min ago

AILANG Parse — questions

Answers built from our own checks of this server.

What can AILANG Parse do?
It exposes 31 tools, read directly from the server on our last check. Among them: agentCard, apiSamples, apiTools, capabilities, deviceAuthApprove, deviceAuthInspect and 25 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is AILANG Parse working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 142 ms. The bar chart above shows every period we have measured.
How do I connect AILANG Parse?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does AILANG Parse need an API key?
No. AILANG Parse completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 31 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is AILANG Parse?
It answers our handshake in 142 ms on average, which is faster than 75% of all working MCP servers we measure. That puts it in the quick quarter of the ecosystem. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use AILANG Parse?
The npm package @ailang/parse was installed 640 times in the last week. Week over week that is -55%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is AILANG Parse open source?
Yes — it is published under the Apache-2.0 licence, written in HTML, 0 stars on GitHub and 2 open issues. The source link is on this page, so you can read exactly what it does with your data before you connect it.