Skip to main content
Glama
alozur
by alozur

Readeck MCP

一个 MCP 服务器,将 Readeck 库变成 AI 代理的读写知识库:代理可以将生成的 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 使用 Readeck 的 JSON 创建 API,带有原始 HTML 的 html 字段(base64/data-URI 起作用)。它会发送浏览器 User-Agent,这样 WAF(例如 Cloudflare 错误 1010)不会阻止它,并短暂轮询以返回新书签的 idword_countreading_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

护栏

  • 默认关闭的 HTTP 认证:在 HTTP 传输下,每次工具调用都需要 Authorization: Bearer $MCP_AUTH_TOKEN(恒定时间比较)。

  • 输入验证:HTML 大小上限、拒绝非 HTML、URL 方案白名单、标签清理 + 上限。

  • 每个进程的令牌桶速率限制。

  • LLM 调用在 429/5xx 时重试并退避,优雅降级(打标签是尽力而为;失败永远不会阻止保存)。

配置(环境)

变量

默认值

说明

READECK_URL

http://localhost:8000

Readeck 基础 URL。

READECK_TOKEN

必需。 Readeck → 设置 → API 令牌。

READECK_MCP_TRANSPORT

stdio

stdiohttp

READECK_MCP_HOST / READECK_MCP_PORT

0.0.0.0 / 8787

仅 http 模式。

MCP_AUTH_TOKEN

http 模式下必需(默认关闭的 Bearer)。

AUTO_LABEL

true

启用 LLM 自动打标签。

ORIGIN_LABEL

propio

始终添加的来源标签。

LABEL_TAXONOMY

config.py

逗号分隔的封闭词汇表。

MAX_AUTO_LABELS

3

每个文档的最大 LLM 主题数。

LLM_PROVIDER

anthropic

anthropicopenai(兼容 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,从而破坏流式 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