App-Kit
by app-kit-dev · remote · no sign-in to list tools · v0.1.3 · published by GitHub user app-kit-dev
SEO audit (400 checks), text readability and grammar check, PDF to images, image conversion.
9 tools: 7 change things and 2 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things7Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http app-kit-dev https://mcp.app-kit.dev/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnimage_convert
The server marks "image_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "image_convert" says "convert": a word for a change.
The server marks "conversion_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "conversion_status" says "status": a word for reading.
- Warncreate_upload
The server marks "create_upload" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "create_upload" says "create": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
9 tools
Changes things 7Claude Code: ask
conversion_statusСтатус и результат конвертации по handle из pdf_to_images / images_to_pdf / image_convert.1 finding
Why it is in this group
- The name "conversion_status" says "status": a word for reading.
- The description's first verb is "handle": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "conversion_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "conversion_status" says "status": a word for reading.
Description, as the server wrote it Статус и результат конвертации по handle из pdf_to_images / images_to_pdf / image_convert. Бесплатно, квоту не тратит. Пока status=running — повторите через poll_after_s секунд. handle действует 1 час и только для того, кто запустил конвертацию.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Статус конвертации (App-Kit)
create_uploadСоздать одноразовую ссылку загрузки файла (для клиентов с доступом к локальным файлам: Claude Code, Cursor).1 finding
Why it is in this group
- The name "create_upload" says "create": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "create_upload" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "create_upload" says "create": a word for a change.
Description, as the server wrote it Создать одноразовую ссылку загрузки файла (для клиентов с доступом к локальным файлам: Claude Code, Cursor). Вернёт upload_id, put_url и команду curl: загрузите файл одним PUT (до 20 МБ, за 10 мин), затем передайте upload_id в файловый tool. Один upload_id — один вызов. Файл с публичного адреса передавайте сразу как source_url, без загрузки. Бесплатно: 10 в час анонимно, 30 в час с бесплатным токеном.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Загрузка файла (App-Kit)
image_convertСменить формат картинки: target_format png/jpeg/webp/bmp/tiff/gif, quality 1–100, max_dim (уменьшить длинную сторону).1 finding
Why it is in this group
- The name "image_convert" says "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "image_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "image_convert" says "convert": a word for a change.
Description, as the server wrote it Сменить формат картинки: target_format png/jpeg/webp/bmp/tiff/gif, quality 1–100, max_dim (уменьшить длинную сторону). Файл до 20 МБ. Для avif и максимального сжатия — image_compress. Вход — ровно один: source_url (публичный URL, шлюз скачает сам), upload_id (create_upload → PUT) или data_base64 (до 512 КБ). Результат — ссылки на скачивание (resource_link, действуют 10 мин; когда скачаны все файлы задания, они удаляются) и превью первой картинки. Если за 60 с не готово — status=running и handle: зовите conversion_status(handle). Бесплатно: 5 в час анонимно, 20 в час с бесплатным токеном (остаток — quota_status).
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHint: true
- title: Конвертация картинки (App-Kit)
images_to_pdfСобрать картинки в один PDF (по картинке на страницу), page_size A4/Letter или по размеру картинки.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Собрать картинки в один PDF (по картинке на страницу), page_size A4/Letter или по размеру картинки. Вход: source_urls[] или upload_ids[] — до 20 файлов, каждый до 20 МБ. Результат — ссылки на скачивание (resource_link, действуют 10 мин; когда скачаны все файлы задания, они удаляются) и превью первой картинки. Если за 60 с не готово — status=running и handle: зовите conversion_status(handle). Бесплатно: 3 в час анонимно, 10 в час с бесплатным токеном (остаток — quota_status).
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHint: true
- title: Картинки → PDF (App-Kit)
pdf_to_imagesКонвертировать PDF в картинки (по странице на файл): format png/jpeg/webp, dpi 72–300, first_page/last_page.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Конвертировать PDF в картинки (по странице на файл): format png/jpeg/webp, dpi 72–300, first_page/last_page. PDF до 20 МБ и до 20 страниц. Вход — ровно один: source_url (публичный URL, шлюз скачает сам), upload_id (create_upload → PUT) или data_base64 (до 512 КБ). Результат — ссылки на скачивание (resource_link, действуют 10 мин; когда скачаны все файлы задания, они удаляются) и превью первой картинки. Если за 60 с не готово — status=running и handle: зовите conversion_status(handle). Бесплатно: 3 в час анонимно, 10 в час с бесплатным токеном (остаток — quota_status).
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHint: true
- title: PDF → картинки (App-Kit)
seo_audit_fastБыстрый SEO-аудит сайта (до 10 страниц): оценка 0–100 по группам канона, проваленные проверки, топ-5 потерь.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Быстрый SEO-аудит сайта (до 10 страниц): оценка 0–100 по группам канона, проваленные проверки, топ-5 потерь. Аудируется корень сайта: путь и параметры URL отбрасываются (https://site.ru/page?x=1 → https://site.ru/). Ждёт результат до 60 с, присылая progress. Если не успел — вернёт status=running и handle: тогда вызовите seo_audit_status(handle) через poll_after_s секунд, пока status=running. Бесплатно: 5 в час анонимно, 10 в час с бесплатным токеном; один домен — до 20 аудитов в сутки (остаток — quota_status).
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHint: true
- title: Быстрый SEO-аудит (App-Kit)
text_checkПроверить текст: метрики (вода, спам, тошнота), читаемость, стоп-фразы, грамматика.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Проверить текст: метрики (вода, спам, тошнота), читаемость, стоп-фразы, грамматика. Вход: text до 20000 символов, lang ru/en. Возвращает passed (обязательные пороги), метрики по слоям, вердикты (blocking=false — рекомендация), top_issues (до 5 главных проблем) и locations — координаты замечаний (offset/length) в присланном тексте. Текст не сохраняется. Бесплатно: 10 в час анонимно, 20 в час с бесплатным токеном (остаток — quota_status).
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: true
- title: Проверка текста (App-Kit)
Only reads 2Claude Code: allow
quota_statusПоказать уровень доступа и остатки бесплатных лимитов по каждому tool.No findings
Why it is in this group
- The name "quota_status" says "status": a word for reading.
Description, as the server wrote it Показать уровень доступа и остатки бесплатных лимитов по каждому tool. Уровни: L0 — аноним, L1 — бесплатный токен (app-kit.dev/mcp), L3 — ключ App-Kit API. Бесплатно, квоту не тратит.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Лимиты App-Kit MCP
seo_audit_statusСтатус и результат SEO-аудита по handle из seo_audit_fast / seo_audit_full_start.No findings
Why it is in this group
- The name "seo_audit_status" says "status": a word for reading.
Description, as the server wrote it Статус и результат SEO-аудита по handle из seo_audit_fast / seo_audit_full_start. Бесплатно, квоту не тратит. Пока status=running — повторите через poll_after_s секунд. handle действует 60 мин и только для того, кто запустил аудит.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Статус SEO-аудита (App-Kit)
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http app-kit-dev https://mcp.app-kit.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__app-kit-dev__seo_audit_status",
"mcp__app-kit-dev__quota_status"
],
"ask": [
"mcp__app-kit-dev__text_check",
"mcp__app-kit-dev__seo_audit_fast",
"mcp__app-kit-dev__pdf_to_images",
"mcp__app-kit-dev__images_to_pdf",
"mcp__app-kit-dev__image_convert",
"mcp__app-kit-dev__conversion_status",
"mcp__app-kit-dev__create_upload"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as app-kit-dev. Review it before you use it.
