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: Doc Monitor 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

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.

  • Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.

  • Shared knowledge base for AI agents. Semantic search across agents, no setup required — just a URL.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alozur/readeck-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server