filesystem, memory: descriptions don't say how to choose between list_directory / list_directory_with_sizes and delete_entities / delete_relations
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 75/100
- Issue 类型
- 文档
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- typescript
调研方向
从 src/filesystem 和 src/memory 开始,阅读提到的四个工具的定义,并检查其已实现的行为。只更新它们的描述,保持名称和 schema 不变,使每个描述都说明何时使用该工具,以及何时改用其同类工具。完成标准是:描述能准确区分这些工具,且不声称代码未实现的行为。
由索引模型根据 Issue 内容生成。
描述
Which server?
More than one server (filesystem and memory)
Protocol era
Both, or not era-specific
MCP client
Any. The issue is in the tool descriptions that every client shows the model.
The problem
Two pairs of tools have descriptions so alike that a model can't tell which one to call.
filesystem (2026.8.31): list_directory and list_directory_with_sizes
The descriptions are the same sentence for sentence. They differ only by ", including sizes" and "essential" vs "useful":
list_directory: Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.
list_directory_with_sizes: Get a detailed listing of all files and directories in a specified path, including sizes. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is useful for understanding directory structure and finding specific files within a directory. Only works within allowed directories.
Neither says when to pick it over the other, that list_directory_with_sizes can sort by size, or that it ends with totals.
memory (2026.8.31): delete_entities and delete_relations
delete_entities: Delete multiple entities and their associated relations from the knowledge graph
delete_relations: Delete multiple relations from the knowledge graph
Both are destructive. Asked to remove a link between two entities, a model that picks delete_entities deletes the entities themselves, with all their observations. Neither description says which one to use for that.
Solution you have in mind (optional)
Say in each description when to use the tool and when to use its sibling instead. Suggested text, written only from what the code does (I checked list_directory_with_sizes's sort and summary in dist/index.js):
list_directory: List the files and directories directly inside a path, each marked [FILE] or [DIR]. Use it to see what a directory contains; when you also need each entry's size or want entries sorted by size, use list_directory_with_sizes instead, and for a recursive view use directory_tree. Returns one line per entry. Only works within allowed directories.list_directory_with_sizes: List the files and directories directly inside a path with each file's size, marked [FILE] or [DIR], sorted by name or by size (sortBy). Use it when sizes matter, such as finding the largest files; for names only, use list_directory, which returns less text. Returns one line per entry, followed by the totals. Only works within allowed directories.delete_entities: Delete whole entities from the knowledge graph, together with every relation that points to or from them and all their observations. Use it only to remove an entity entirely; to remove a link between two entities and keep both, use delete_relations, and to remove facts from an entity, use delete_observations. Cannot be undone.delete_relations: Delete specific relations (from, to, relationType) from the knowledge graph and keep the entities they connect. Use it to remove a link between two entities; to remove an entity itself, use delete_entities. Cannot be undone.
Which MCP feature does it demonstrate? (optional)
Tool descriptions, and how clients use them to choose a tool. As reference servers, these are what many people copy when writing their own.
Alternatives or workarounds you have tried
None on the server side. A client can add its own instructions, but every client would have to do it.
Already built it locally?
No code. The prompt I'd use: "In src/filesystem and src/memory, rewrite the descriptions of list_directory, list_directory_with_sizes, delete_entities and delete_relations so each says when to use it and names the sibling tool to use instead, using only behavior the code implements; keep tool names and schemas unchanged."
For context: I found these pairs with Forecall, a static linter for MCP tool descriptions that I maintain. It flags tool pairs whose descriptions overlap heavily. With the text above, its scores go from 38 and 48 to 65 and 70 for the two filesystem tools, and from 51 and 39 to 61 and 61 for the two memory tools. The scores are only a guide; the point is the missing "use X instead".
Before you submit
- I searched existing issues and this is not a duplicate.
- This is a request for this repository or one of its servers, not a new server, the MCP specification or an SDK.
- 主要语言
- TypeScript
- 星标
- 91k
- 派生
- 11.8k
- 平均合并
- 6 小时 33 分钟
- 30 天内合并 PR
- 79
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
modelcontextprotocol/servers 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 85/100
modelcontextprotocol/servers#5059 · 1 条评论 ·
维护者通常 1 天内回复
-
mcp-server-fetch: `fetch` prompt returns JSON-RPC error code 0 with the raw exception text for an invalid URL可能重新可做 关联的 PR 已关闭且未合并。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
modelcontextprotocol/servers#4914 ·
维护者通常 1 天内回复
-
CLAUDE.md: tool-naming rule (kebab-case) disagrees with filesystem and memory servers可能已有人在做 @liang0417 于 8 天前认领。 未关闭
难度 1/5 1 小时以内 新手友好度 92/100
modelcontextprotocol/servers#4892 · 1 条评论 ·
维护者通常 1 天内回复
-
Filesystem README recommends deprecated MCP Roots protocol for restricting directory access可能已有人在做 @its-amann 于 13 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 76/100
modelcontextprotocol/servers#4844 ·
维护者通常 1 天内回复
-
Docs: `fetch` installs npm packages during a tool call, which is worth stating for deployments可能已有人在做 @teddiesloco 于 17 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
modelcontextprotocol/servers#4830 · 1 条评论 ·
维护者通常 1 天内回复
查看 modelcontextprotocol/servers 的全部 Issue
相似的 Issue
-
DB-plane provider_chat_options.* is accepted by config set but never merged into the loaded config未关闭
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
Bump Firebase JS SDK (12.19.0 → 13.0.0)可能已有人在做 @SelaseKay 今天认领。 未关闭Needs Attention type: enhancement
难度 2/5 1-3 小时 新手友好度 75/100
invertase/react-native-firebase#9364 · 1 条评论 ·
维护者通常 1 天内回复
-
enhancement
难度 1/5 1 小时以内 新手友好度 85/100
cloudflare/mcp#271 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 4 天内回复
-
e2e-failure ready-to-code
难度 2/5 1-3 小时 新手友好度 78/100
redhat-developer/rhdh-plugin-export-overlays#4261 · 1 条评论 ·
维护者通常 1 天内回复