App-Kit
io.github.app-kit-dev/mcpVersion 0.1.3SEO audit (400 checks), text readability and grammar check, PDF to images, image conversion.
Status
Responds229 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:45 UTC
- Latency
- 229 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 21:12 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://mcp.app-kit.dev/mcpResponds229 msNo sign-in
Claude Code
claude mcp add --transport http app-kit-dev https://mcp.app-kit.dev/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: app-kit-dev
Remote MCP server URL: https://mcp.app-kit.dev/mcpCursor
{
"mcpServers": {
"app-kit-dev": {
"url": "https://mcp.app-kit.dev/mcp"
}
}
}VS Code
code --add-mcp '{"name":"app-kit-dev","type":"http","url":"https://mcp.app-kit.dev/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
10 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
conversion_statusStatus and result of a conversion by the handle from pdf_to_images / images_to_pdf / image_convert.
Does not consume quota. While status=running, call again after poll_after_s seconds.
A handle is valid for 1 hour and only for the caller who started the conversion. | No | Yes | Yes | No |
create_uploadCreate a one-time upload link for a local file (for clients with local file access, e.g. Claude Code, Cursor).
Returns upload_id, put_url and a curl command: upload the file with a single PUT (up to
20 MB, within 10 min), then pass upload_id
to a file tool. One upload_id serves one call. For a file at a public URL, pass source_url directly instead.
Rate-limited per day; call quota_status for remaining calls. | No | No | No | No |
image_compressCompress an existing image to WebP or AVIF: quality 1-100, width/height (downscale), preset
(photo/picture/drawing/icon/text), lossless. Returns a result link (valid up to 5 min),
original and new size, compression ratio. File up to 20 MB.
Input: exactly one of source_url (public URL, the server downloads it), upload_id (create_upload, then PUT) or data_base64 (up to 512 KB).
Rate-limited per day; call quota_status for remaining calls. | No | Yes | No | Yes |
image_convertConvert an existing image to another format: target_format png/jpeg/webp/bmp/tiff/gif, quality 1-100,
max_dim (downscale the long side). File up to 20 MB. For avif and maximum compression use image_compress.
Input: exactly one of source_url (public URL, the server downloads it), upload_id (create_upload, then PUT) or data_base64 (up to 512 KB).
Output: download links (resource_link, valid for 10 min; deleted once all files of the job are downloaded) and a preview of the first image. If not done within 60 s, returns status=running and a handle: call conversion_status(handle).
Rate-limited per day; call quota_status for remaining calls. | No | Yes | No | Yes |
images_to_pdfCombine existing images into one PDF (one image per page), page_size A4/Letter or the image size.
Input: source_urls[] or upload_ids[], up to 20 files, each up to 20 MB.
Output: download links (resource_link, valid for 10 min; deleted once all files of the job are downloaded) and a preview of the first image. If not done within 60 s, returns status=running and a handle: call conversion_status(handle).
Rate-limited per day; call quota_status for remaining calls. | No | Yes | No | Yes |
pdf_to_imagesConvert an existing PDF to images (one file per page): format png/jpeg/webp, dpi 72-300,
first_page/last_page. PDF up to 20 MB and up to 20 pages.
Input: exactly one of source_url (public URL, the server downloads it), upload_id (create_upload, then PUT) or data_base64 (up to 512 KB).
Output: download links (resource_link, valid for 10 min; deleted once all files of the job are downloaded) and a preview of the first image. If not done within 60 s, returns status=running and a handle: call conversion_status(handle).
Rate-limited per day; call quota_status for remaining calls. | No | Yes | No | Yes |
quota_statusShow the current access tier and the remaining calls for each tool.
Tiers: L0 anonymous (shared per platform for Claude and ChatGPT), L1 personal token, L2 App-Kit account (OAuth). Does not consume quota. | No | Yes | Yes | No |
seo_audit_fastQuick SEO audit of a public website (up to 10 pages): score 0-100 by check group, failed checks, top 5 losses.
The site root is audited: URL path and query are dropped (https://example.com/page?x=1 -> https://example.com/).
Waits up to 60 s for the result, sending progress. If not done by then, returns
status=running and a handle: call seo_audit_status(handle) every poll_after_s seconds while status=running.
Rate-limited per day; call quota_status for remaining calls. One domain: up to 5 audits per day. | No | Yes | No | Yes |
seo_audit_statusStatus and result of an SEO audit by the handle from seo_audit_fast. Does not consume quota.
While status=running, call again after poll_after_s seconds. A handle is valid for
60 min and only for the caller who started the audit. | No | Yes | Yes | Yes |
text_checkCheck a text: metrics (filler words, spam, keyword stuffing), readability, stop phrases, grammar.
Input: text up to 20000 characters, lang (language of the text) ru or en. Returns passed (blocking thresholds),
metrics by layer, verdicts (blocking=false means a recommendation), top_issues (up to 5 main issues)
and locations: issue positions (offset/length) in the submitted text. The text is not stored.
Rate-limited per day; call quota_status for remaining calls. | No | Yes | No | No |
Details
- Registry status
- Active
- Published
- Oct 5, 2026
- Updated
- Oct 5, 2026
- Categories (suggested)
- DocumentsMarketing and SEOFiles and storageSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared