Skip to content

Schema quality: missing property descriptions across official MCP servers #3669

@KryptosAI

Description

@KryptosAI

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:

{ "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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions