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: path missing description
write_file: path, content missing descriptions
edit_file: path, edits missing descriptions
create_directory: path missing description
list_directory: path missing description
directory_tree: path, excludePatterns missing descriptions
move_file: source, destination missing descriptions
search_files: path, pattern, excludePatterns missing descriptions
get_file_info: path missing description
server-everything (13 tools, 5 missing descriptions + 4 missing required)
get-resource-reference: resourceType missing description
- 4 tools missing
required array: get-resource-links, get-resource-reference, gzip-file-as-resource, trigger-long-running-operation
- Resource
README.md.gz missing description
server-memory (6 tools, 4 missing descriptions)
create_entities: entities missing description
create_relations: relations missing description
add_observations: observations missing description
delete_observations: deletions missing description
Why this matters
The MCP spec recommends tool input schemas follow JSON Schema with descriptions. When an LLM sees:
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
Summary
While running automated quality checks against the official MCP reference servers, I found that most servers are missing
descriptionfields 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 descriptionserver-everything (13 tools, 5 missing descriptions + 4 missing
required)get-resource-reference:resourceTypemissing descriptionrequiredarray:get-resource-links,get-resource-reference,gzip-file-as-resource,trigger-long-running-operationREADME.md.gzmissing descriptionserver-memory (6 tools, 4 missing descriptions)
create_entities:entitiesmissing descriptioncreate_relations:relationsmissing descriptionadd_observations:observationsmissing descriptiondelete_observations:deletionsmissing descriptionWhy 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
descriptionfields to all tool input schema properties. Example forread_file:Reproduction