Tomato Downloader MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TND_DATA_DIR | Yes | Absolute path to the downloader downloads directory that MCP and worker must be able to read and write. | |
| TND_HTTP_TOKEN | No | Bearer token required when running the MCP server in Streamable HTTP mode via npm run http. Clients must send Authorization: Bearer <TND_HTTP_TOKEN>. | |
| TOMATO_WEB_BASE | Yes | Base URL of the running Tomato-Novel-Downloader Web UI/API, e.g. http://127.0.0.1:18423. | |
| TOMATO_WEB_PASSWORD | Yes | Password for the downloader Web UI, not the Tomato novel account password. | |
| SUPERGATEWAY_API_KEY | No | Legacy token variable accepted in HTTP mode for existing Supergateway deployments. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tnd_get_statusA | 读取 Tomato-Novel-Downloader 的运行状态、版本、保存目录和配置摘要。 |
| tnd_search_booksB | 全局搜索番茄书籍元数据;本工具只搜索,不管理订阅。 |
| tnd_preview_bookB | 读取一本书的详情、作者、简介、章节数、字数和最新章节标题。 |
| tnd_get_libraryA | 列出下载器保存目录中的本地文件或子目录;不会返回章节正文。 |
| tnd_get_updatesC | 读取已下载书籍的更新扫描结果,包括可更新数量和失败章节数。 |
| tnd_get_historyC | 读取下载历史记录。 |
| tnd_get_jobsC | 读取当前下载任务和最近完成任务。 |
| tnd_get_book_statusA | 读取某本已下载书籍的本地摘要信息,不返回完整章节正文。 |
| tnd_list_downloaded_chaptersB | 列出某本已下载书籍的章节标题和 item_id,不返回正文。 |
| tnd_read_latest_chapterA | 读取某本已下载书籍的最后一章完整正文。 |
| tnd_read_downloaded_chapterA | 按 item_id 或本地可用章节列表的 1-based index 读取正文;index 按在线目录排序,与下载目录位置不同,推荐 item_id。 |
| tnd_read_downloaded_chaptersA | 批量读取某本已下载书籍的正文;可用 start_index/end_index 或 item_ids,最多 20 章。 |
| tnd_get_chapter_timesB | 读取番茄章节目录及每章首次发布时间(firstPassTime),时间同时返回 UTC 和北京时间。 |
| tnd_start_downloadA | 启动下载器的下载任务;可按 range_start/range_end 指定章节范围。任务启动后需轮询 tnd_wait_job。 |
| tnd_start_discrete_downloadsA | 批量下载指定章节;indexes 为 1-based 在线目录位置,与 item_ids 二选一。跳过已有正文,连续位置合并为区间任务,后台顺序执行。 |
| tnd_get_batch_statusA | 读取离散下载批次状态;不传 batch_id 时返回当前批次。 |
| tnd_start_book_downloadA | 下载整本书;创建任务后返回 job_id,使用 tnd_wait_job 轮询完成状态。 |
| tnd_start_chapter_downloadB | 启动单章下载任务;index 是 1-based 章节序号。完成后用 tnd_read_downloaded_chapter 读取。 |
| tnd_wait_jobB | 轮询下载任务直到完成、失败或取消;返回最终任务状态。 |
| tnd_check_chaptersB | 仅检查本地章节正文是否有效,不联网、不下载、不返回正文;最多50个item_ids。 |
| tnd_get_chaptersB | 优先读取本地正文;缺失时仅在download_missing:true时创建或复用下载批次,立即返回已有正文、缺失ID和batch_id,不阻塞等待下载。最多20章。 |
| tnd_cancel_batchA | 持久化请求取消指定批次,立即停止后续分组;cancel_current默认false,当前任务自然完成后取消批次,true则由worker核对身份后发送取消信号。返回canceling不代表已停止。 |
| tnd_retry_batchA | 仅重试指定终态批次中失败/取消分组仍缺失的章节;重新核对本地正文并按当前目录合并连续位置,返回新batch_id和retry_of。不会重试成功分组。 |
| tnd_get_diagnosticsA | 诊断下载器连通性与版本、共享目录读写权限、下载路径是否一致、worker心跳及批次状态;不返回密码或Token,不修改配置。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Descriptions do a lot of work to separate reading vs listing vs checking (many explicitly state '不返回正文'), but the four download-start tools (tnd_start_download, tnd_start_discrete_downloads, tnd_start_book_download, tnd_start_chapter_download) overlap heavily and an agent can easily pick the wrong one. Similarly tnd_read_downloaded_chapter(s) vs tnd_get_chapters (local-first batch read with optional download) is a subtle boundary. Read-side tools like tnd_get_book_status, tnd_preview_book, tnd_list_downloaded_chapters and tnd_check_chapters also cluster around the same object with only prose distinguishing them.
All tools follow a uniform tnd_ prefix plus snake_case verb_noun convention (get_, list_, read_, start_, cancel_, retry_). Minor deviation: the generic tnd_start_download sits awkwardly beside the more specific tnd_start_book_download / tnd_start_chapter_download / tnd_start_discrete_downloads, making the verb_object pattern slightly non-parallel. Otherwise very predictable.
24 tools is at the heavy end for a novel downloader; the batch/job lifecycle (start_, wait_, get_batch_status, cancel_batch, retry_batch) plus four separate download-entry points inflates the surface. Each tool has a stated role, but several could be collapsed (e.g. a single start_download with a scope parameter). Borderline over-scoped.
Core lifecycle is covered: search, preview, start download, poll/wait, batch cancel/retry, read local chapters, diagnostics. However, tnd_search_books notes it does '不管理订阅', implying a subscription feature with no corresponding tools, and there is no way to delete/clean library files, cancel a single job, or modify configuration (status only reads the config summary). Notable gaps for a downloader agent.