-
Notifications
You must be signed in to change notification settings - Fork 10.1k
Description
Summary
While running automated quality checks against the official MCP reference servers, I found that most servers are missing description fields on their tool input schema properties. This matters because LLMs use these descriptions to understand how to call tools correctly — without them, the model has to guess what each parameter means from the name alone.
Findings
Tested with MCP Observatory v0.13.0 on 2026-03-22.
server-filesystem (11 tools, 18 missing descriptions)
Every tool property across all 11 tools lacks a description:
read_file:pathmissing descriptionwrite_file:path,contentmissing descriptionsedit_file:path,editsmissing descriptionscreate_directory:pathmissing descriptionlist_directory:pathmissing descriptiondirectory_tree:path,excludePatternsmissing descriptionsmove_file:source,destinationmissing descriptionssearch_files:path,pattern,excludePatternsmissing descriptionsget_file_info:pathmissing description
server-everything (13 tools, 5 missing descriptions + 4 missing required)
get-resource-reference:resourceTypemissing description- 4 tools missing
requiredarray:get-resource-links,get-resource-reference,gzip-file-as-resource,trigger-long-running-operation - Resource
README.md.gzmissing description
server-memory (6 tools, 4 missing descriptions)
create_entities:entitiesmissing descriptioncreate_relations:relationsmissing descriptionadd_observations:observationsmissing descriptiondelete_observations:deletionsmissing description
Why this matters
The MCP spec recommends tool input schemas follow JSON Schema with descriptions. When an LLM sees:
{ "type": "string" }vs:
{ "type": "string", "description": "Absolute or relative path to the file to read" }The second version produces significantly better tool-use accuracy. Since these are the reference implementations that other server authors look at, setting a good example here would improve schema quality across the ecosystem.
Suggested fix
Add description fields to all tool input schema properties. Example for read_file:
inputSchema: {
type: "object",
properties: {
path: {
type: "string",
description: "Absolute or relative path to the file to read"
}
},
required: ["path"]
}Reproduction
npx @kryptosai/mcp-observatory score npx -y @modelcontextprotocol/server-filesystem /tmp
npx @kryptosai/mcp-observatory score npx -y @modelcontextprotocol/server-everything
npx @kryptosai/mcp-observatory score npx -y @modelcontextprotocol/server-memory