ilinks-mcp
This server lets an AI agent authenticate to iLinks and manage bookmarks, folders, quotas, and searches.
Configure or switch the iLinks API token and API base.
Query bookmark/folder quota, usage, remaining capacity, and VIP status.
List, create, update, and delete bookmark or note folders, with capacity checks on create.
List bookmarks, filter by folder or temp bin, and paginate results.
Search bookmarks by title, URL, or notes.
Create a single bookmark in a folder or temp bin, with quota checks.
Batch-create bookmarks in a specific folder; schema allows up to 50, while README advises <=10 per batch and >=2s between writes.
Update bookmark title, URL, folder, icon, or notes; delete bookmarks to free quota.
Move bookmarks to the temp bin, with temp-bin capacity checks.
Note: README mentions note tools, but the provided schema only exposes auth, quota, folder, and bookmark tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ilinks-mcp帮我把 https://github.com/gin-gonic/gin 存到 学习资料 分类,标题叫 Gin"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
iLinks 官方 MCP 服务 (ilinks-mcp)
ilinks-mcp 是 iLinks 导航官方基于 Model Context Protocol (MCP) 标准协议构建的 AI Agent 书签管理服务。
无论您使用的是 WorkBuddy、各类桌面 AI 助手,还是自建的 Agent 系统,都可以直接接入。您只需要像平常聊天一样对 Agent 发出自然语言指令,就能完成书签与文件夹的检索、添加、智能归类、更新、删除与容量治理。
🌟 核心特性
🔐 个人专属秘钥接入:登录 iLinks 后台即可一键复制 Token。
📊 动态配额与安全拦截:
个性化动态配额:根据用户真实数据(默认额度、扩容卡兑换、活动奖励或 VIP 会员)实时计算,书签与笔记共享总额度,以个人后台实际数据为准;VIP 用户无上限。
容量超额拦截保护:新增前自动预检,超限时主动拦截并给出清晰原因与优化指引,保护已有数据安全。
🔍 多字段智能搜索:支持在标题、URL、备注中进行模糊匹配。
📁 分类归档与暂存:支持指定分类存放,未指定时可放入暂存箱后续整理。
📦 批量操作支持:支持单次最多批量添加 50 条书签,并预检剩余容量。
🤖 Agent 自动安装 Prompt:支持一键将 Prompt 发送给 Agent 自动完成安装与挂载。
Related MCP server: Raindrop.io MCP Server
🛠️ 工具集全景 (Tools)
分类 | 工具名称 | 功能描述 | 容量检查 |
容量与分类 |
| 查询当前账号的书签与笔记容量配额及 VIP 状态 | - |
| 获取分类文件夹列表(书签分类/笔记分类、ID、图标) | - | |
| 创建新分类文件夹(支持书签或笔记分类) | ✅ 满额拦截 | |
| 修改文件夹名称、图标、描述或密码 | - | |
| 删除指定文件夹(释放 1 个文件夹配额) | - | |
书签管理 |
| 查看全部书签、特定分类书签或暂存箱 | - |
| 按关键词模糊搜索书签(名称/网址/备注) | - | |
| 添加单个书签至指定分类或暂存箱 | ✅ 满额拦截 | |
| 批量添加多条书签至指定分类(建议单次 <= 10 条) | ✅ 批量预检拦截 | |
| 修改书签标题、链接、所属分类或备注 | - | |
| 删除书签(立即释放 1 个书签容量配额) | - | |
| 将书签移入暂存箱 | ✅ 暂存箱满拦截 | |
笔记管理 |
| 查看或按关键词正文模糊搜索个人笔记列表 | - |
| 查看单篇笔记完整 Markdown 正文、发布时间与评论 | - | |
| 发布新笔记(Markdown,单篇上限 1,000 字,配图仅限外链),自动预检共享容量 | ✅ 满额拦截 | |
| 修改已有笔记的正文内容、所属分类或权重(限 1,000 字) | - | |
| 删除笔记(立即释放 1 个内容容量配额) | - | |
认证配置 |
| 运行时动态配置或切换当前 Token | - |
📝 轻笔记排版与格式规范
单篇 1,000 字上限与轻笔记定位:
iLinks 轻笔记旨在存储随时想记录、随时想查看的有用知识(便签、关键备忘、代码片段、短知识点),坚决不记录长内容。长篇大论建议发布至专业内容平台;
单篇最长支持 1,000 字(数据库、后端 API、前端编辑器与 MCP 工具层严格设防)。超出将坚决拒绝并提示用户精简。
Markdown 语法与标题:笔记正文全面支持标准 Markdown 语法(标题、列表、代码块、表格等)。系统会自动提取首行非空文本作为笔记标题。
图片仅限公网外链(无内置图床):
iLinks 系统定位为轻量书签与便签体系,不提供本地图片二进制文件上传服务;
笔记中如需配图,必须使用标准 Markdown 公网图片外链:
;严禁嵌入 Base64 Data URL 图片(单张图片 Base64 即可超出 1,000 字并导致保存失败,工具层已内置自动拦截防护)。
🚦 操作频控与安全规范 (Rate Limiting)
为了防止 AI 循环高频并发冲击服务器并保障服务高可用,系统已建立双层频控防护网:
协议层与 Prompt 指引(对 AI 的硬性要求):
MCP 服务初始化时通过官方标准
instructions向宿主模型植入规范:严禁编写循环或并发脚本高频写入!每次写操作(新增/修改/删除)必须平缓执行,两次写操作之间需间隔至少 2 秒;
批量添加书签单次不得超过 10 条。
服务端后端硬核频控(多维计数防护):
动态突发拦截:写操作设有短期平缓频率保护,高频并发写入将被服务端直接拦截;
单日累计安全限制:设有单日总写入安全阈值,防止自动化脚本或爬虫刷写,次日 00:00 自动恢复;
查询读取保护:对密集批量查询设有自适应限流保护;
双引擎保障:服务端 Redis 计数优先,自动具备单机内存线程安全计数器降级兜底。
💡 AI 如何识别意图与关键词?
自动识别:MCP 工具描述与系统指令已内置意图映射。当您对 AI 提到“帮我存这个网站”、“查一下我的书签”、“记一条笔记”、“还有多少空间”时,AI 会根据语义自动唤醒对应工具。
精准触发:在指令中带上
iLinks或炫猿(例如:“帮我把这个链接存到我的 iLinks 导航”),可确保 100% 精准唤醒该工具集。
🚀 接入配置指南(以 WorkBuddy 等代表客户端为例)
1. 获取专属 Token
登录 iLinks 网站:
https://ilinks.fun;进入 控制台 -> AI接入,点击复制您的专属 Token。
2. 客户端配置方式
方式 A:已发布到 npm 时的极简方式(npx 运行)
当作者将包发布到 npm 官方仓库后,客户端支持通过 npx 直接拉取运行:
{
"mcpServers": {
"ilinks-bookmarks": {
"command": "npx",
"args": ["-y", "ilinks-mcp"],
"env": {
"ILINKS_API_BASE": "https://ilinks.fun",
"ILINKS_TOKEN": "您的专属Token"
}
}
}
}提示(关于发布 npm): 如果您是开发者/站长,想要支持用户直接执行
npx ilinks-mcp,只需在ilinks-mcp目录下执行:npm login npm publish --access public发布成功后,全网用户即可零门槛免下载运行!
方式 B:未发布到 npm 时的本地 / 源码运行方式(立即可用)
在包尚未发布到 npm 官方仓库前,可通过本地克隆独立开源仓库源码的方式直接启动:
克隆独立客户端开源代码到本地目录(例如
~/.ilinks-mcp):git clone https://github.com/gbxhq/ilinks-mcp.git ~/.ilinks-mcp cd ~/.ilinks-mcp && npm install在 WorkBuddy 或其他客户端中配置绝对路径:
{ "mcpServers": { "ilinks-bookmarks": { "command": "node", "args": ["/Users/您的用户名/.ilinks-mcp/bin/ilinks-mcp.js"], "env": { "ILINKS_API_BASE": "https://ilinks.fun", "ILINKS_TOKEN": "您的专属Token" } } } }
方式 C:通过 Git 仓库直接运行(NPX 原生支持,免 npm 注册)
npx 支持直接指向独立的 GitHub 开源仓库,无需发布 npm:
{
"mcpServers": {
"ilinks-bookmarks": {
"command": "npx",
"args": ["-y", "github:gbxhq/ilinks-mcp"],
"env": {
"ILINKS_API_BASE": "https://ilinks.fun",
"ILINKS_TOKEN": "您的专属Token"
}
}
}
}🤖 一键发给 Agent 自动安装的智能 Prompt
如果您的 Agent 拥有终端执行或安装环境(如具备命令执行能力的本地工作伙伴): 您可以直接将以下 Prompt 复制发给它,它会自动判断环境并完成本地安装与测试:
请帮我安装并接入 iLinks 书签管理的 MCP 服务:
【服务信息】
- 服务名称:ilinks-bookmarks
- 环境变量:
- ILINKS_API_BASE: https://ilinks.fun
- ILINKS_TOKEN: 【请填入您的专属Token】
- 仓库地址:https://github.com/gbxhq/ilinks-mcp
【安装步骤】
1. 将该服务写入当前客户端的 MCP 配置文件中:
- 方式 A(推荐):command 为 "npx",args 为 ["-y", "github:gbxhq/ilinks-mcp"](或 ["-y", "ilinks-mcp"])
- 方式 B(本地源码):git clone https://github.com/gbxhq/ilinks-mcp.git 到本地目录,执行 npm install,通过 node 运行 bin/ilinks-mcp.js
2. 启动服务并调用 `ilinks_get_quota` 测试连通性。
3. 详细功能说明、工具集规范及使用约束请阅读仓库 README 或通过工具列表获取。
4. 安装验证完成后,向我确认已接入成功即可。💬 常用对话指令示例
配置成功后,直接对您的 Agent 说话(推荐带上 iLinks 或自然语言表达):
查容量:“查看我当前的 iLinks 书签与笔记容量,还有多少剩余空间?”
存书签:“帮我把 https://news.ycombinator.com 存到 iLinks 的【资讯】分类中,标题叫 Hacker News。”
智能分类:“我想存一下这个链接:https://github.com/gin-gonic/gin ,你看看我现有分类哪个最合适?”
发笔记:“帮我在 iLinks 记一条笔记,内容是常用的 Docker 命令总结(带代码块)。”
看笔记:“搜索一下我写过的关于 Vue 3 的笔记,并查看详情。”
改内容:“把笔记 #10 的正文修改一下,补充两个技巧。”
删旧内容:“把那个失效的书签或旧笔记删掉,帮我腾出 1 个容量名额。”
Available Tools
13 toolsilinks_batch_create_bookmarksA
批量添加多个书签到指定文件夹。单次最多 50 条。执行前会自动严格校验剩余容量,容量不足时提前拦截保护。
| Name | Required | Description | Default |
|---|---|---|---|
| bookmarks | Yes | 书签对象数组,最多 50 条 | |
| folder_id | Yes | 目标文件夹 ID (必须指定具体文件夹,批量添加不支持暂存箱) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the 50-item batch limit and automatic capacity pre-validation, but it does not cover failure semantics, duplicate handling, permission/auth needs, or whether the operation is atomic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences: purpose first, then batch limit, then capacity-check behavior. Every sentence adds useful information without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema is rich enough for parameters, and the description covers purpose and capacity validation. However, for a batch mutation tool with no annotations and no output schema, it omits important context such as partial-failure behavior and what happens to the created bookmarks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, so both parameters are already well documented. The description adds only the batch limit and the requirement for a specific folder, not additional syntax or per-field meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: batch-adding multiple bookmarks to a specified folder. It also clearly distinguishes this from single-bookmark creation through '批量' and '多个书签', and the 50-item limit adds useful scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for creating multiple bookmarks at once and notes the 50-item cap, but it does not explicitly say when to use this instead of ilinks_create_bookmark or when not to use it. Usage is inferable but not fully guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_configure_authA
设置或切换 iLinks 认证 Token。若未配置环境变量或需要切换账号时使用。设置后会自动验证并返回账号及容量详情。
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | 用户的 iLinks 密钥 (js_token),可在网页控制台个人中心查看并复制 | |
| api_base | No | iLinks API 地址,默认为 https://ilinks.fun |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose key behavior: the setting is automatically verified and returns account and quota details, which signals a network side effect and the response content. It omits where the token is persisted and how invalid-token failures manifest, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero waste, with the action front-loaded and the usage condition and post-set behavior following in logical order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter config tool with no output schema, the description covers what it does, when to call it, and what comes back (account and quota details). Only the persistence/error behavior is left unstated, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both `token` and `api_base` are already documented in the schema with defaults and sourcing hints. The description adds only indirect context via the environment-variable mention; it adds no new parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource pair ('设置或切换 iLinks 认证 Token'), which is immediately distinguishable from the bookmark/folder CRUD siblings. It does not explicitly contrast with a sibling, but no sibling performs an auth operation, so ambiguity is minimal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger conditions: '若未配置环境变量或需要切换账号时使用' (when the env var is not configured, or when switching accounts). This is concrete context for invocation, though it does not state when NOT to use it (e.g., when a token is already configured and valid).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_create_bookmarkB
向指定文件夹或暂存箱添加新书签。内置严格的容量配额预检与拦截机制,书签容量满或暂存箱满时将精准拦截并告知用户。
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 网页链接,必须以 http:// 或 https:// 开头 | |
| icon | No | 网站图标 URL (可选) | |
| info | No | 书签备注或简介 (0-500字符) | |
| title | Yes | 书签标题/网站名称 (1-100字符) | |
| folder_id | No | 目标文件夹 ID。填 0 或不填则存入暂存箱 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses a quota pre-check and blocking behavior when the folder or staging box is full, which is valuable. It does not mention auth requirements, whether duplicate URLs are allowed, or what happens on success.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and compact, stating the action first and the quota behavior second. The second sentence is slightly verbose but every part earns its place by explaining the interception behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the key quota blocking behavior and folder targeting. It still leaves gaps around permissions, duplicate handling, and post-creation response, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already defines all five parameters. The description reinforces the folder vs. staging box behavior but adds no syntax or format details beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: adding a new bookmark to a specified folder or the staging box. It does not explicitly distinguish this single-create operation from the sibling tool ilinks_batch_create_bookmarks, keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by '向指定文件夹或暂存箱添加新书签', which tells the agent this is for creating a single bookmark and that omitting the folder targets the staging box. However, there is no explicit guidance on when to use this tool versus ilinks_batch_create_bookmarks or ilinks_update_bookmark.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_create_folderA
创建新的书签或笔记文件夹。创建前会自动进行容量预检,达到文件夹上限时将自动拦截并提示。
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | 图标名称或图标 URL | |
| info | No | 文件夹描述说明 (0-30字符) | |
| name | Yes | 文件夹名称 (1-30字符) | |
| password | No | 访问密码(可选,设置后公开页面需密码才能查看内容) | |
| content_type | No | 文件夹类型:bookmark (书签) 或 note (笔记) | bookmark |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the brunt. It usefully discloses a real behavioral trait beyond the schema: an automatic capacity pre-check that blocks creation at the folder limit. It omits other relevant traits for a mutation tool, such as permission requirements, name-uniqueness behavior, and what the password field enables on the public page.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the core action and followed by the key behavioral caveat. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no annotations and no output schema, the description covers the action and the limit-blocking behavior. It leaves gaps an agent would want: return value/created identifier, permission prerequisites, and how the optional password affects visibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including the bookmark/note enum and password semantics. The description adds no parameter-level meaning beyond the schema, which is acceptable at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource (创建新的书签或笔记文件夹) and even names the two folder subtypes, making the operation clear. It does not, however, distinguish itself from siblings like ilinks_create_bookmark, so an agent must infer the folder-vs-bookmark boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the plain 'create folder' statement, but there is no explicit when-to-use/when-not guidance and no routing to alternatives such as create_bookmark. The capacity pre-check note is behavioral rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_delete_bookmarkA
删除指定 ID 的书签。删除后将立即释放 1 个书签容量配额空间。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 要删除的书签 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the side effect that deletion immediately frees one bookmark quota slot, but it omits whether the deletion is permanent/irreversible, what permissions are needed, and what happens if the ID does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste; the deletion action is stated first and the quota consequence follows. Nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with no output schema and no annotations, the description covers the action and its main side effect on quota, which is enough to call it correctly. The main remaining gap is the lack of any statement on irreversibility or error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter and schema description coverage is 100%, with the schema already documenting 'id' as '要删除的书签 ID'. The description restates this at the same level of detail without adding format or source hints (e.g., how to obtain the ID), so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('删除...书签') scoped to a given ID, so the agent can tell exactly what it does. It does not differentiate from siblings such as ilinks_move_to_temp or ilinks_delete_folder, which a stronger definition would name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the tool deletes a bookmark, so it is used when a bookmark must be removed. There is no explicit when-to-use vs. when-not, and no mention of the alternative ilinks_move_to_temp that would apply if the user only wants to free quota temporarily.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_delete_folderA
删除指定 ID 的文件夹。注意:请先确认该文件夹下的书签已清理或转移,谨慎删除。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 要删除的文件夹 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden: it does convey destructiveness and the bookmark-content risk, which is valuable. It omits whether deletion is permanent, whether subfolders cascade, permission requirements, and response behavior — significant gaps for an unannotated mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, action first then warning, with no wasted phrasing. Front-loading the deletion statement before the caveat is the right ordering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with no annotations and no output schema, the description covers the main hazard (contained bookmarks) but leaves unclear whether subfolders are affected and what a success response looks like. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'id' parameter is fully documented in the schema as the folder ID to delete. The description only echoes 'the specified ID' without adding format or sourcing details, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (删除...文件夹) scoped to a given ID, which cleanly separates it from ilinks_delete_bookmark and ilinks_create_folder. It does not explicitly name a sibling to contrast with, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete precondition — confirm bookmarks under the folder are cleaned up or moved before deleting — which is exactly the context an agent needs before invoking a destructive operation. No alternative tool is named, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_get_quotaA
查询当前登录用户的书签与文件夹容量配额,包括已使用量、上限、剩余可用量以及 VIP 状态。在添加书签或文件夹前推荐先检查容量。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden; it makes clear this is a pure query scoped to the current logged-in user and discloses the return contents (used, limit, remaining, VIP status), implying no side effects. It omits any note on auth prerequisites or rate limits, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is returned, followed by the actionable recommendation. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully summarizes the return payload, so an agent knows what to expect. It does not clarify units (bookmark count vs. bytes) or whether VIP status affects the limits, minor gaps for a zero-parameter read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (查询) and resource (书签与文件夹容量配额) and enumerates the returned fields (已使用量、上限、剩余可用量、VIP 状态). An agent can distinguish this read-only quota check from the mutation siblings like ilinks_create_bookmark and ilinks_create_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends calling it before adding bookmarks or folders, which gives a clear usage trigger. It does not name alternatives or state when not to bother (e.g., it is cheap/idempotent), so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_list_bookmarksB
查看当前用户的书签列表。支持按文件夹 ID 过滤,或查看暂存箱 (folder_id=0)。支持分页限制 limit 与 offset。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 单次返回数量 (默认 50) | |
| offset | No | 偏移量 (默认 0) | |
| folder_id | No | 文件夹 ID。传 0 则仅查看暂存箱,不传则查看全部书签 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only listing, but says nothing about result ordering, whether a total count is returned, permission requirements, or what happens with large result sets beyond the limit/offset params already in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, purpose front-loaded, the temp-box special case grouped with filtering. Nothing padded, though the pagination sentence largely echoes the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, no-required-param read tool with full schema coverage and no output schema, the description covers the essentials. It still leaves open the default behavior with no folder_id, result ordering, and how it differs from the search sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three params are already documented, including folder_id=0 meaning temp box only. The description restates that same semantics without adding format or edge-case detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource — viewing the current user's bookmark list — and scopes it to the caller's own bookmarks. It doesn't explicitly distinguish itself from the sibling ilinks_search_bookmarks, but 'list' vs 'search' is inferable from the wording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains how to filter (by folder_id, or folder_id=0 for the temp box) which implies when to use each mode. However, it never states when to prefer this tool over ilinks_search_bookmarks, nor does it mention prerequisites such as being authenticated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_list_foldersA
获取用户的所有文件夹列表。包含文件夹 ID、名称、类型 (bookmark/note)、图标、排序权重等。可用于在新增书签前确定目标分类文件夹。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It implies a read-only list operation and documents the returned fields, but it does not mention permissions, pagination, or whether the result is complete versus bounded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, returned fields second, and intended use case last. Every clause adds useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-parameter list tool without an output schema or annotations, the description is largely complete: it explains what is returned and one key workflow. Missing details such as pagination or authorization requirements are minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to clarify. The baseline score of 4 is appropriate for a no-parameter tool with fully covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource—'获取用户的所有文件夹列表'—and explicitly scopes it to all user folders. It also lists the returned fields, making it clearly distinguishable from sibling folder mutation tools like create_folder, update_folder, and delete_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: determining the target category folder before adding a bookmark. It does not explicitly state when not to use it or name alternatives, but the context is concrete and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_move_to_tempB
将指定 ID 的书签移入暂存箱 (未分类)。移入前会检查暂存箱是否有余量。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 要移动的书签 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does add one genuinely useful behavioral fact — a capacity check on the temp box before the move, implying possible failure when full — but says nothing about auth, reversibility, or what happens if the ID is invalid or already in the temp box.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded and the precondition second. No filler, though the second sentence is slightly tangential to what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It is a single-parameter mutation with no annotations and no output schema, so the description should explain failure modes and result. The capacity precondition is a good start, but reversibility and error behavior for a bad ID remain undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema already documents 'id' as the bookmark ID. The description adds nothing beyond 'specified ID'; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (移入, move) and resource (书签, bookmark) plus the destination (暂存箱/uncategorized), which distinguishes it from siblings like ilinks_update_bookmark or ilinks_delete_bookmark. However it never contrasts itself with those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — the reader infers this is the way to un-categorize a single bookmark. There is no statement of when to prefer this over ilinks_update_bookmark or ilinks_delete_bookmark, and no note about batching (versus ilinks_batch_create_bookmarks).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_search_bookmarksB
根据关键词搜索用户已保存的书签,对名称、URL 或备注进行多字段智能匹配。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 搜索关键词 | |
| folder_id | No | 可选限定在特定文件夹内搜索 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It never states that this is a read-only operation, whether results are capped or paginated, what the result ordering is, or that auth/quota (see ilinks_get_quota, ilinks_configure_auth) may apply — all real gaps for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with no filler. Every clause contributes information about what is searched and how matching works.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter search with full schema coverage the description is nearly sufficient. With no output schema and no annotations, however, it should say something about the shape or limit of returned results and confirm the read-only nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description earns extra credit by explaining that the query is matched against multiple fields (name, URL, notes) rather than a single one — semantics the schema does not convey. It does not mention folder_id, though the schema documents that one adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (搜索) and resource (用户已保存的书签), plus the matching scope (名称、URL、备注). It implicitly distinguishes itself from ilinks_list_bookmarks, but never names that sibling, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied — call this when you have a keyword and want matching bookmarks — but there is no explicit when-to-use/when-not guidance and no pointer to ilinks_list_bookmarks for unfiltered browsing, despite a dozen siblings in the namespace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_update_bookmarkC
更新书签的标题、网址、所属文件夹或备注信息。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 书签 ID | |
| url | Yes | 网页链接 | |
| icon | No | 网站图标 | |
| info | No | 备注说明 | |
| title | Yes | 书签标题 | |
| folder_id | Yes | 新的文件夹 ID (不可填 0,若要移至暂存箱请使用 ilinks_move_to_temp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says 'update' but does not disclose that four fields (id, folder_id, title, url) are required — implying a near-full replacement rather than a partial edit — nor does it mention permissions, reversibility, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste, naming the resource first and then the affected fields. It is efficient but arguably too thin given the tool's mutation semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description omits update semantics (partial vs. full replacement given 4 required params), error behavior for invalid folder IDs, and the alternative for moving to trash. The schema covers parameter details, but behavioral context is largely absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters including the folder_id caveat about 0 and ilinks_move_to_temp. The description only restates the field list at a high level and adds no syntax, constraints, or defaults beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (更新) and resource (书签) plus the field set it touches (标题、网址、所属文件夹、备注). This clearly separates it from create_bookmark and delete_bookmark, though it does not name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus ilinks_create_bookmark, ilinks_move_to_temp, or ilinks_update_folder. The only routing hint ('若要移至暂存箱请使用 ilinks_move_to_temp') lives in the schema, not the description, and the description never mentions it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilinks_update_folderC
修改现有文件夹的名称、图标、描述或密码。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 文件夹 ID | |
| icon | No | 图标 | |
| info | No | 描述 | |
| name | Yes | 文件夹新名称 | |
| password | No | 密码(留空表示不修改或清空) | |
| content_type | No | 文件夹类型 | bookmark |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full disclosure burden and does not meet it: it never says the operation mutates state destructively, whether the update is partial or requires resubmitting the full folder, what permissions are needed, or that the password field has clear-vs-noop ambiguity (only hinted at in the schema, not the description). Nothing beyond the bare 'modify' semantics is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action and affected fields front-loaded, and no filler. It is slightly under-specified rather than over-long, so conciseness itself is a strength here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation tool with no annotations and no output schema, this one-line description leaves critical gaps: the mandatory-name requirement versus the 'name, icon, description, or password' framing, the folder type enum, error behavior, and whether changes are reversible are all unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented in the schema and the baseline applies. The description restates four of the fields but adds no semantics the schema lacks and never mentions content_type or the bookmark/note enum choice.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-plus-resource ('修改现有文件夹' — modify an existing folder) and enumerates the mutable fields (name, icon, description, password), which differentiates it from ilinks_update_bookmark by target resource. However it omits the content_type field that the schema exposes, so the stated scope is narrower than what the tool can actually do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to pick this over siblings, no preconditions (folder must exist, must be owned/authorized), and no note that both id and name are mandatory — a real hazard given the description frames name as one of several optional things to change. The agent must infer everything about usage context from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
13 tool updates
v1.0.0- First observed
ilinks_batch_create_bookmarks - First observed
ilinks_configure_auth - First observed
ilinks_create_bookmark - First observed
ilinks_create_folder - First observed
ilinks_delete_bookmark - First observed
ilinks_delete_folder - First observed
ilinks_get_quota - First observed
ilinks_list_bookmarks - First observed
ilinks_list_folders - First observed
ilinks_move_to_temp - First observed
ilinks_search_bookmarks - First observed
ilinks_update_bookmark - First observed
ilinks_update_folder
TDQS
Scored across 13 tools
Tools split cleanly along resource+action lines (folders vs bookmarks vs auth/quota), and each has a distinct purpose. Minor overlap exists between ilinks_move_to_temp and ilinks_update_bookmark (which can also change a bookmark's folder), but descriptions differentiate them well enough.
All 13 tools follow the same ilinks_verb_noun snake_case pattern (create_bookmark, update_folder, list_folders, batch_create_bookmarks, etc.). No deviations in case or verb style.
13 tools is a well-scoped size for a bookmark/folder manager. Each tool maps to a needed operation (auth, quota, CRUD for folders, CRUD for bookmarks, search, batch, temp bin), with no obviously redundant entries.
Full CRUD lifecycle is covered for both folders and bookmarks, plus search, quota, auth, batch creation, and temp-bin moves. However, folders support type 'note' yet no note operations exist, and there is no single-bookmark get or reordering tool, leaving some gaps.
Maintenance
Related MCP Connectors
All your bookmarks in one library. Share them with your AI agents. Read-only search over your saves.
Save, search, read, tag, and organize your bookmarks from AI assistants with OAuth sign-in.
Save and organize web finds in persistent, user-controlled collections for AI assistants.
Personal knowledge MCP: capture bookmarks, notes & todos by chat; archive pages; search memory.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides LLMs with read-only access to search, filter, and retrieve bookmark metadata from Pinboard.in at inference time via Model Context Protocol.510MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access and manage Raindrop.io bookmarks, collections, tags, and highlights through the Model Context Protocol. Supports CRUD operations, advanced search, file uploads, and bulk editing of bookmarks.87 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables language models to access and manage Raindrop.io bookmarks, collections, tags, and highlights through the Model Context Protocol.51 npmMIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server implementation that provides seamless integration between Chrome bookmarks and AI assistants. This server enables AI models to access, search, analyze, and manage Chrome bookmarks through a standardized protocol.3MIT