Skip to content

Tool Descriptions are Written for Humans, Not AI. It's Too Long! #266

@Jaesun23

Description

@Jaesun23

Problem: Tool Descriptions are Written for Humans, Not AI

Current Issue

Desktop Commander's tool descriptions consume ~15,000-20,000 tokens of Claude's context window before any actual conversation begins. This is because descriptions are written as if humans will read them, not the AI that actually uses the tools.

Key Insight

The actual user of MCP tools is Claude, not the human. Therefore, descriptions should be optimized for AI comprehension and token efficiency, not human readability.

Measured Impact

  • 21 tools with verbose descriptions
  • ~15,000-20,000 tokens consumed by tool metadata alone
  • ~30-40% of total context budget (assuming 190k limit) used before conversation starts
  • Longest descriptions: start_search (83 lines), start_process (61 lines), interact_with_process (58 lines)

Proposed Solution

  1. Base descriptions: Minimal, AI-optimized format

    • Tool name, parameters, return values, constraints
    • 1-2 sentences maximum
  2. Detailed docs: Available on-demand

    • get_tool_docs(tool_name) - returns full documentation
    • Only loaded when Claude needs clarification
    • Keeps context clean by default

Example Comparison

Before (33 lines):

Read the contents of a file from the file system or a URL...
Prefer this over 'execute_command' with cat/type...
Supports partial file reading with:
- 'offset' (start line, default: 0)
  * Positive: Start from line N...
  * Negative: Read last N lines...
[... 25 more lines of examples and edge cases]

After (1 line):

Read file contents with optional offset/length. Supports URLs and images.

Token savings: ~500 tokens per tool → ~10,000 tokens total

Benefits

  • ✅ More conversation space for users
  • ✅ Faster tool loading
  • ✅ Claude understands tools instantly (doesn't need tutorials)
  • ✅ Detailed docs still available when needed

Implementation

The verbose descriptions feel like they're addressing AI capability concerns from 2-3 years ago. Modern LLMs like Claude 3.5+ understand tools immediately from minimal descriptions. The extensive examples and tutorials should be opt-in, not mandatory context.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions