Files
Claude-Code-Workflow/.claude/workflows/context-tools.md

2.4 KiB

MCP Tools Usage

smart_search - Code Search (REQUIRED - HIGHEST PRIORITY)

OVERRIDES: All other search/discovery rules in other workflow files

When: ANY code discovery task, including:

  • Find code, understand codebase structure, locate implementations
  • Explore unknown locations
  • Verify file existence before reading
  • Pattern-based file discovery

Priority Rule:

  1. Always use smart_search FIRST for any code/file discovery
  2. Only use Built-in Grep for single-file exact line search (after location confirmed)
  3. Only use Built-in Read for known, confirmed file paths

Workflow (search first, init if needed):

// Step 1: Try search directly (works if index exists or uses ripgrep fallback)
smart_search(query="authentication logic")

// Step 2: Only if search warns "No CodexLens index found", then init
smart_search(action="init", path=".")   // Creates FTS index only

// Note: For semantic/vector search, use "ccw view" dashboard to create vector index

Modes: auto (intelligent routing), hybrid (semantic, needs vector index), exact (FTS), ripgrep (no index)


read_file - Read File Contents

When: Read files found by smart_search

How:

read_file(path="/path/to/file.ts")                   // Single file
read_file(path="/src/**/*.config.ts")                // Pattern matching

edit_file - Modify Files

When: Built-in Edit tool fails or need advanced features

How:

edit_file(path="/file.ts", old_string="...", new_string="...", mode="update")
edit_file(path="/file.ts", line=10, content="...", mode="insert_after")

Modes: update (replace text), insert_after, insert_before, delete_line


write_file - Create/Overwrite Files

When: Create new files or completely replace content

How:

write_file(path="/new-file.ts", content="...")

When: Find documentation/examples outside codebase

How:

mcp__exa__search(query="React hooks 2025 documentation")
mcp__exa__search(query="FastAPI auth example", numResults=10)
mcp__exa__search(query="latest API docs", livecrawl="always")

Parameters:

  • query (required): Search query string
  • numResults (optional): Number of results to return (default: 5)
  • livecrawl (optional): "always" or "fallback" for live crawling