modelcontextprotocol / modelcontextprotocol/servers
Schema quality: missing property descriptions across official MCP servers
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 90.5k
- Forks
- 11.7k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 5
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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the three MCP Observatory commands in the Reproduction section and inspect the implementations of the named tools in server-filesystem, server-everything, and server-memory. Update the listed input schema properties with meaningful descriptions and add the identified required arrays and resource description. Done means the reported schema omissions are resolved across all three servers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100