Skip to content

refactor: deprecate tools that duplicate Claude Code built-in capabilities #139

@BumpyClock

Description

@BumpyClock

Summary

After testing all 15 LSP-MCP tools for their value to LLM coding agents, 3 tools were identified as duplicating functionality already available in Claude Code's built-in tools.

Problem

LLM coding agents like Claude Code already have robust file operations tools:

  • Glob - Fast file pattern matching
  • LS - Directory listing
  • Read - File reading with line numbers
  • Grep - Content search with regex support

Having LSP-MCP tools that duplicate these capabilities:

  1. Bloats the tool list - 15 tools creates decision paralysis for LLMs
  2. Wastes context - Tool descriptions take up prompt space
  3. Creates confusion - Multiple ways to do the same thing
  4. No additional value - The LSP versions aren't semantically-aware for these operations

Tools to Deprecate

1. list_files

  • Current: Returns files in the workspace
  • Duplicates: Glob with pattern **/* or LS command
  • LSP advantage: None - both are simple file listing

2. read_source_code

  • Current: Reads source code with optional range
  • Duplicates: Read tool with offset/limit parameters
  • LSP advantage: None - Read already provides line numbers and range selection

3. find_identifier

  • Current: Finds identifiers by name in a file
  • Duplicates: Grep with the identifier name as pattern
  • LSP advantage: Minimal - could use AST but current implementation appears text-based

Proposed Changes

Option A: Remove from all presets (Recommended)

Remove these tools from minimal, standard, and full presets. They remain available for explicit opt-in via config.

{
  "minimal": ["definitions_in_file", "hover", "get_diagnostics"],
  "standard": ["definitions_in_file", "find_definition", "find_references", "hover", "workspace_symbol", "get_diagnostics"],
  "full": ["definitions_in_file", "find_definition", "find_references", "hover", "workspace_symbol", "get_diagnostics", "outgoing_calls", "incoming_calls", "go_to_implementation"]
}

Option B: Mark as deprecated

Add deprecation warnings to tool descriptions:

"[DEPRECATED: Use Glob/Read tools instead] Lists files in the workspace"

Impact

  • Reduces default tool count from 15 to 12 (or fewer with other consolidations)
  • Cleaner tool interface for LLM agents
  • No loss of functionality - capabilities remain via built-in tools

Related

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