Skip to main content
Glama
alozur
by alozur

Readeck MCP

MCP-сервер, который превращает библиотеку Readeck в базу знаний для чтения и записи для ИИ-агентов: агенты могут отправлять сгенерированный ими HTML прямо в Readeck (автоматически тегируемый LLM) и позже извлекать и читать эти документы обратно. Создан на базе FastMCP — один и тот же код работает как локальный stdio-сервер или удалённый HTTP-сервер за обратным прокси.

В отличие от существующих Readeck MCP (которые являются ассистентами только для чтения), этот принимает сгенерированный агентом HTML и автоматически размечает его с помощью LLM по фиксированной таксономии.

Инструменты

Инструмент

Назначение

readeck_save(html, title, labels?, url?, auto_label?)

Сохраняет сырой HTML как читаемую закладку; автоматически размечает, если метки не указаны.

readeck_read(query, only_own?, max_results?, max_chars?)

Поиск: находит наиболее подходящий(ие) документ(ы) и возвращает их полный читаемый текст.

readeck_search(query, limit?)

Поиск по библиотеке (только метаданные).

readeck_list_labels()

Список существующих меток с количеством.

readeck_save использует JSON create API Readeck с полем html для сырого HTML (base64/data-URI не работают). Он отправляет браузерный User-Agent, чтобы WAF (например, ошибка Cloudflare 1010) не блокировал его, и кратко опрашивает сервер, чтобы вернуть новый id закладки, word_count и reading_url.

Related MCP server: eigma-mcp

Автоматическая разметка

Когда вы вызываете readeck_save без labels, LLM классифицирует документ. Он изначально устойчив к инъекциям: модель может выбирать только из фиксированной таксономии (LABEL_TAXONOMY), и результат пересекается с этим списком на стороне сервера, поэтому метки вне словаря невозможны. Метка происхождения (ORIGIN_LABEL, по умолчанию propio) всегда добавляется кодом, а не LLM.

Не зависит от провайдера (совместим с OpenAI или Anthropic). Работает с бесплатными тарифами, такими как Groq — для моделей рассуждений, таких как gpt-oss, установите щедрый LLM_MAX_TOKENS, и сервер автоматически отправит reasoning_effort: low.

Защитные механизмы

  • Fail-closed HTTP-аутентификация: при HTTP-транспорте каждый вызов инструмента требует Authorization: Bearer $MCP_AUTH_TOKEN (сравнение за постоянное время).

  • Проверка входных данных: ограничение размера HTML, отклонение не-HTML, белый список схем URL, санитизация меток + ограничение.

  • Ограничение скорости по алгоритму token-bucket на процесс.

  • Вызовы LLM повторяются при 429/5xx с экспоненциальной задержкой и корректно деградируют (разметка — best-effort; сбой никогда не блокирует сохранение).

Конфигурация (переменные окружения)

Переменная

По умолчанию

Примечания

READECK_URL

http://localhost:8000

Базовый URL Readeck.

READECK_TOKEN

—

Обязательно. Readeck → Settings → API tokens.

READECK_MCP_TRANSPORT

stdio

stdio или http.

READECK_MCP_HOST / READECK_MCP_PORT

0.0.0.0 / 8787

Только для http-режима.

MCP_AUTH_TOKEN

—

Обязателен в http-режиме (fail-closed bearer).

AUTO_LABEL

true

Включить автоматическую разметку LLM.

ORIGIN_LABEL

propio

Всегда добавляемая метка происхождения.

LABEL_TAXONOMY

см. config.py

Закрытый словарь через запятую.

MAX_AUTO_LABELS

3

Максимум тем LLM на документ.

LLM_PROVIDER

anthropic

anthropic или openai (совместимый с OpenAI).

LLM_BASE_URL

https://api.anthropic.com

Для openai укажите префикс версии (например, .../v1).

LLM_MODEL

claude-haiku-4-5

Любая чат-модель выбранного провайдера.

LLM_API_KEY

—

Ключ для LLM-провайдера.

LLM_MAX_TOKENS / LLM_TEXT_CHARS

2000 / 3000

Бюджет вывода / отправляемый входной текст.

Локально (stdio)

READECK_TOKEN=... uv run --script server.py --selftest   # smoke test

Зарегистрируйте в MCP-клиенте (mcpServers), например:

{
  "mcpServers": {
    "readeck": {
      "command": "uv",
      "args": ["run", "--script", "/path/to/readeck-mcp/server.py"],
      "env": { "READECK_URL": "https://readeck.example.com", "READECK_TOKEN": "..." }
    }
  }
}

Удалённо (HTTP / Docker)

Запустите с READECK_MCP_TRANSPORT=http (см. Dockerfile). Поместите его за вашим обратным прокси / туннелем, например, на https://mcp-readeck.example.com. При совместном размещении с Readeck установите READECK_URL=http://readeck:8000, чтобы пропустить публичный обход. Укажите клиентам конечную точку:

{
  "mcpServers": {
    "readeck": {
      "type": "http",
      "url": "https://mcp-readeck.example.com/mcp",
      "headers": { "Authorization": "Bearer <MCP_AUTH_TOKEN>" }
    }
  }
}

Примечание: используйте путь конечной точки без завершающего слэша (/mcp, а не /mcp/) — некоторые прокси превращают редирект с завершающим слэшем в 307, что ломает streamable-HTTP клиентов.

Всегда устанавливайте надёжный MCP_AUTH_TOKEN перед открытием конечной точки — токен даёт доступ на запись к вашей библиотеке.

Лицензия

MIT

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents and coding assistants with advanced web crawling and RAG capabilities, allowing them to scrape websites and leverage that knowledge through various retrieval strategies.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to turn conversations into a searchable personal wiki, read and organize pages, and propose edits such as merges, translations, and fact-checks as reviewable changesets.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients like Claude, ChatGPT, and Cursor to search, read, and write back to one cross-model Markdown library of saved articles, videos, PDFs, notes, and conversations. Hosted remote server with OAuth 2.1 or Agent-key auth and read_only, edit, or full permission tiers.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to read public web content as clean Markdown, search a private library of previously read documents, and access these tools via MCP, REST API, CLI, and WebMCP.
    6 npm
    21
    MIT