diff --git a/src/mcp/mcp.c b/src/mcp/mcp.c index 62cf6823e..c99ad2aaf 100644 --- a/src/mcp/mcp.c +++ b/src/mcp/mcp.c @@ -284,7 +284,10 @@ static const tool_def_t TOOLS[] = { "precise results in one call. When has_more=true, use offset+limit to paginate. " "Use mode=summary for quick codebase overview without individual results.", "{\"type\":\"object\",\"properties\":{\"project\":{\"type\":\"string\"},\"label\":{\"type\":" - "\"string\"},\"name_pattern\":{\"type\":\"string\"},\"qn_pattern\":{\"type\":\"string\"}," + "\"string\"},\"name_pattern\":{\"type\":\"string\",\"description\":\"Regex pattern on symbol " + "name. Glob wildcards (*tool*, foo?) auto-convert to regex.\"}," + "\"qn_pattern\":{\"type\":\"string\",\"description\":\"Regex pattern on qualified name. " + "Glob wildcards auto-convert to regex.\"}," "\"file_pattern\":{\"type\":\"string\"},\"relationship\":{\"type\":\"string\"},\"min_degree\":" "{\"type\":\"integer\"},\"max_degree\":{\"type\":\"integer\"},\"exclude_entry_points\":{" "\"type\":\"boolean\"},\"include_connected\":{\"type\":\"boolean\"},\"limit\":{\"type\":" @@ -324,9 +327,12 @@ static const tool_def_t TOOLS[] = { {"trace_call_path", "Trace function call paths — who calls a function and what it calls. Use INSTEAD OF grep when " - "finding callers, dependencies, or impact analysis. Shows candidates array when function name " + "finding callers, dependencies, or impact analysis. Matches exact name first, then falls back " + "to case-insensitive search if not found. Shows candidates array when function name " "is ambiguous. Results are deduplicated (cycles don't inflate counts).", - "{\"type\":\"object\",\"properties\":{\"function_name\":{\"type\":\"string\"},\"project\":{" + "{\"type\":\"object\",\"properties\":{\"function_name\":{\"type\":\"string\"," + "\"description\":\"Function name to trace. Case-insensitive fallback if exact match not found." + "\"},\"project\":{" "\"type\":\"string\"},\"direction\":{\"type\":\"string\",\"enum\":[\"inbound\",\"outbound\"," "\"both\"],\"default\":\"both\"},\"depth\":{\"type\":\"integer\",\"default\":3},\"max_results" "\":{\"type\":\"integer\",\"description\":\"Max nodes per direction (configurable via " @@ -441,9 +447,15 @@ static const tool_def_t STREAMLINED_TOOLS[] = { "'dep'/'deps' (dependencies only), 'dep.pandas' (specific dep), glob patterns.\"}," "\"cypher\":{\"type\":\"string\",\"description\":\"Cypher query for complex multi-hop " "patterns. When provided, other filter params are ignored. Add LIMIT.\"}," - "\"label\":{\"type\":\"string\"},\"name_pattern\":{\"type\":\"string\"}," - "\"qn_pattern\":{\"type\":\"string\"},\"file_pattern\":{\"type\":\"string\"}," - "\"sort_by\":{\"type\":\"string\",\"enum\":[\"relevance\",\"name\",\"degree\",\"calls\",\"linkrank\"]}," + "\"label\":{\"type\":\"string\"}," + "\"name_pattern\":{\"type\":\"string\",\"description\":\"Regex pattern on symbol name. " + "Glob wildcards (*tool*, foo?) auto-convert to regex.\"}," + "\"qn_pattern\":{\"type\":\"string\",\"description\":\"Regex pattern on qualified name. " + "Glob wildcards auto-convert to regex.\"}," + "\"file_pattern\":{\"type\":\"string\"}," + "\"sort_by\":{\"type\":\"string\",\"enum\":[\"relevance\",\"name\",\"degree\",\"calls\",\"linkrank\"]," + "\"description\":\"Sort order: relevance (PageRank, default), name, degree (edge weight), " + "calls (function calls in+out), linkrank (link-based rank).\"}," "\"mode\":{\"type\":\"string\",\"enum\":[\"full\",\"summary\"]}," "\"compact\":{\"type\":\"boolean\"},\"include_dependencies\":{\"type\":\"boolean\"}," "\"limit\":{\"type\":\"integer\"},\"offset\":{\"type\":\"integer\"}," @@ -460,11 +472,13 @@ static const tool_def_t STREAMLINED_TOOLS[] = { "Trace function call paths — who calls a function and what it calls. " "Use for impact analysis, understanding callers, and finding dependencies. " "Auto-indexes the project on first use if not already indexed. " + "Matches exact name first, then falls back to case-insensitive search if not found. " "Results sorted by PageRank within each hop level. depth < 1 clamped to 1. " "direction must be inbound, outbound, or both (invalid values return error). " "Read codebase://architecture for key functions to start tracing from.", "{\"type\":\"object\",\"properties\":{" - "\"function_name\":{\"type\":\"string\",\"description\":\"Function name to trace\"}," + "\"function_name\":{\"type\":\"string\",\"description\":\"Function name to trace. " + "Case-insensitive fallback if exact match not found.\"}," "\"project\":{\"type\":\"string\"}," "\"direction\":{\"type\":\"string\",\"enum\":[\"inbound\",\"outbound\",\"both\"]}," "\"depth\":{\"type\":\"integer\",\"default\":3},"