code-index-mcp
The code-index-mcp server is a specialized Model Context Protocol (MCP) server for intelligent code indexing, searching, and analysis that enables AI models to interact with code repositories.
Core Capabilities:
Project Indexing: Recursively scans directories to build a searchable index of code files, automatically ignoring build directories and non-code files
Search Code: Performs intelligent code searches using automatically detected tools (ripgrep, ag, or grep) with options for case sensitivity, context lines, file patterns, and fuzzy matching
Find Files: Locate files matching specific glob patterns within the project
Analyze Files: Generate detailed insights about file structure, including line counts, functions, imports, and complexity metrics
Manage Index: Refresh the project index or clear cached settings
Persistent Storage: Caches indexes for improved performance across sessions
Broad Language Support: Handles various programming languages, web files, database files, and documentation
Integration: Seamlessly integrates with Claude Desktop for enhanced code navigation and analysis
Provides access to git repositories, allowing users to clone projects for code indexing and analysis.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@code-index-mcpsearch for authentication middleware in the current project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Code Index MCP
Intelligent code indexing and analysis for Large Language Models
Transform how AI understands your codebase with advanced search, analysis, and navigation capabilities.
Overview
Code Index MCP is a Model Context Protocol server that bridges the gap between AI models and complex codebases. It provides intelligent indexing, advanced search capabilities, and detailed code analysis to help AI assistants understand and navigate your projects effectively.
Perfect for: Code review, refactoring, documentation generation, debugging assistance, and architectural analysis.
Related MCP server: @lex-tools/codebase-context-dumper
Quick Start
🚀 Recommended Setup (Most Users)
The easiest way to get started with any MCP-compatible application:
Prerequisites: Python 3.10+ and uv
Add to your MCP configuration (e.g.,
claude_desktop_config.jsonor~/.claude.json):{ "mcpServers": { "code-index": { "command": "uvx", "args": ["code-index-mcp"] } } }Optional: append
--project-path /absolute/path/to/repoto theargsarray so the server initializes with that repository automatically (equivalent to callingset_project_pathafter startup).Restart your application –
uvxautomatically handles installation and executionStart using (give these prompts to your AI assistant):
Set the project path to /Users/dev/my-react-app Find all TypeScript files in this project Search for "authentication" functions Analyze the main App.tsx fileIf you launch with
--project-path, you can skip the first command above - the server already knows the project location.
Codex CLI Configuration
If you are using Anthropic's Codex CLI, add the server to ~/.codex/config.toml.
On Windows the file lives at C:\Users\<you>\.codex\config.toml:
[mcp_servers.code-index]
type = "stdio"
command = "uvx"
args = ["code-index-mcp"]You can append
--project-path C:/absolute/path/to/repoto theargslist to set the project automatically on startup (same effect as running theset_project_pathtool).
On Windows, uvx needs the standard profile directories to be present.
Keep the environment override in the same block so the MCP starts reliably:
env = {
HOME = "C:\\Users\\<you>",
APPDATA = "C:\\Users\\<you>\\AppData\\Roaming",
LOCALAPPDATA = "C:\\Users\\<you>\\AppData\\Local",
SystemRoot = "C:\\Windows"
}Linux and macOS already expose the required XDG paths and HOME, so you can usually omit the env
table there.
Add overrides only if you run the CLI inside a restricted container.
FastMCP & Discovery Manifests
Run
fastmcp run fastmcp.jsonto launch the server via FastMCP with the correct source entrypoint and dependency metadata. Pass--project-path(or call theset_project_pathtool after startup) so the index boots against the right repository.Serve or copy
.well-known/mcp.jsonto share a standards-compliant MCP manifest. Clients that support the.well-knownconvention (e.g., Claude Desktop, Codex CLI) can import this file directly instead of crafting configs manually.Publish
.well-known/mcp.llmfeed.jsonwhen you want to expose the richer LLM Feed metadata. It references the samecode-indexserver definition plus documentation/source links, which helps registries present descriptions, tags, and capabilities automatically.
When sharing the manifests, remind consumers to supply --project-path (or to call
set_project_path) so the server indexes the intended repository.
Typical Use Cases
Code Review: "Find all places using the old API"
Refactoring Help: "Where is this function called?"
Learning Projects: "Show me the main components of this React project"
Debugging: "Search for all error handling related code"
Key Features
🔍 Intelligent Search & Analysis
Dual-Strategy Architecture: Specialized tree-sitter parsing for 10 core languages, fallback strategy for 50+ file types
Direct Tree-sitter Integration: No regex fallbacks for specialized languages - fail fast with clear errors
Advanced Search: Auto-detects and uses the best available tool (ugrep, ripgrep, ag, or grep)
Universal File Support: Comprehensive coverage from advanced AST parsing to basic file indexing
File Analysis: Deep insights into structure, imports, classes, methods, and complexity metrics after running
build_deep_index
🗂️ Multi-Language Support
10 Languages with Tree-sitter AST Parsing: Python, JavaScript, TypeScript, Java, Kotlin, C#, Go, Objective-C, Zig, Rust
50+ File Types with Fallback Strategy: C/C++, Ruby, PHP, and all other programming languages
Document & Config Files: Markdown, JSON, YAML, XML with appropriate handling
Web Frontend: Vue, React, Svelte, HTML, CSS, SCSS
Java Web & Build: JSP/Tag files (
.jsp,.jspx,.jspf,.tag,.tagx), Grails/GSP (.gsp), Gradle & Groovy builds (.gradle,.groovy),.properties, and Protocol Buffers (.proto)Database: SQL variants, NoSQL, stored procedures, migrations
Configuration: JSON, YAML, XML, Markdown
⚡ Real-time Monitoring & Auto-refresh
File Watcher: Automatic index updates when files change
Cross-platform: Native OS file system monitoring
Smart Processing: Batches rapid changes to prevent excessive rebuilds
Shallow Index Refresh: Watches file changes and keeps the file list current; run a deep rebuild when you need symbol metadata
⚡ Performance & Efficiency
Tree-sitter AST Parsing: Native syntax parsing for accurate symbol extraction
Persistent Caching: Stores indexes for lightning-fast subsequent access
Smart Filtering: Intelligent exclusion of build directories and temporary files
Memory Efficient: Optimized for large codebases
Direct Dependencies: No fallback mechanisms - fail fast with clear error messages
Supported File Types
Languages with Specialized Tree-sitter Strategies:
Python (
.py,.pyw) - Full AST analysis with class/method extraction and call trackingJavaScript (
.js,.jsx,.mjs,.cjs) - ES6+ class and function parsing with tree-sitterTypeScript (
.ts,.tsx) - Complete type-aware symbol extraction with interfacesJava (
.java) - Full class hierarchy, method signatures, and call relationshipsKotlin (
.kt,.kts) - Package-aware symbol extraction with methods and call relationshipsC# (
.cs) - Namespace-aware type/member extraction with call relationshipsGo (
.go) - Struct methods, receiver types, and function analysisRust (
.rs) - Functions, module-aware names, impl methods, structs/enums/traits, and basic call relationshipsObjective-C (
.m,.mm) - Class/instance method distinction with +/- notationZig (
.zig,.zon) - Function and struct parsing with tree-sitter AST
All Other Programming Languages: All other programming languages use the FallbackParsingStrategy which provides basic file indexing and metadata extraction. This includes:
System & Low-Level: C/C++ (
.c,.cpp,.h,.hpp)Object-Oriented: Scala (
.scala), Swift (.swift)Scripting & Dynamic: Ruby (
.rb), PHP (.php), Shell (.sh,.bash)And 40+ more file types - All handled through the fallback strategy for basic indexing
Frameworks & Libraries:
Vue (
.vue)Svelte (
.svelte)Astro (
.astro)
Styling:
CSS (
.css,.scss,.less,.sass,.stylus,.styl)HTML (
.html)
Templates:
Handlebars (
.hbs,.handlebars)EJS (
.ejs)Pug (
.pug)FreeMarker (
.ftl)Mustache (
.mustache)Liquid (
.liquid)ERB (
.erb)
SQL Variants:
Standard SQL (
.sql,.ddl,.dml)Database-specific (
.mysql,.postgresql,.psql,.sqlite,.mssql,.oracle,.ora,.db2)
Database Objects:
Procedures & Functions (
.proc,.procedure,.func,.function)Views & Triggers (
.view,.trigger,.index)
Migration & Tools:
Migration files (
.migration,.seed,.fixture,.schema)Tool-specific (
.liquibase,.flyway)
NoSQL & Modern:
Graph & Query (
.cql,.cypher,.sparql,.gql)
Markdown (
.md,.mdx)Configuration (
.json,.xml,.yml,.yaml,.properties)
🛠️ Development Setup
For contributing or local development:
Clone and install:
git clone https://github.com/johnhuang316/code-index-mcp.git cd code-index-mcp uv syncConfigure for local development:
{ "mcpServers": { "code-index": { "command": "uv", "args": ["run", "code-index-mcp"] } } }Debug with MCP Inspector:
npx @modelcontextprotocol/inspector uv run code-index-mcp
If you prefer traditional pip management:
pip install code-index-mcpThen configure:
{
"mcpServers": {
"code-index": {
"command": "code-index-mcp",
"args": []
}
}
}Available Tools
🏗️ Project Management
Tool | Description |
| Initialize indexing for a project directory |
| Rebuild the shallow file index after file changes |
| Generate the full symbol index used by deep analysis |
| View current project configuration and status |
Run build_deep_index when you need symbol-level data; the default shallow index powers quick file discovery.
🔍 Search & Discovery
Tool | Description |
| Smart search with literal-by-default matching, optional |
| Locate files using glob patterns (e.g., |
| Analyze file structure, functions, imports, and complexity (requires deep index) |
🔄 Monitoring & Auto-refresh
Tool | Description |
| Check file watcher status and configuration |
| Enable/disable auto-refresh and configure settings |
🛠️ System & Maintenance
Tool | Description |
| Set up storage directory for index data |
| Verify index storage location and permissions |
| Reset all cached data and configurations |
| Re-detect available search tools (ugrep, ripgrep, etc.) |
Usage Examples
🎯 Quick Start Workflow
1. Initialize Your Project
Set the project path to /Users/dev/my-react-appAutomatically indexes your codebase and creates searchable cache
2. Explore Project Structure
Find all TypeScript component files in src/componentsUses: find_files with pattern src/components/**/*.tsx
3. Analyze Key Files
Give me a summary of src/api/userService.tsUses: get_file_summary to show functions, imports, and complexity
Tip: run build_deep_index first if you get a needs_deep_index response.
🔍 Advanced Search Examples
Search for all function calls matching "get.*Data" using `regex=True`Finds: getData(), getUserData(), getFormData(), etc. Regex search is opt-in; install a native search tool and use regex=True because the basic fallback stays literal-only.
Find authentication-related functions with fuzzy search for 'authUser'Matches: authenticateUser, authUserToken, userAuthCheck, etc.
Search for "API_ENDPOINT" only in Python filesUses: search_code_advanced with literal matching and file_pattern: "*.py" (defaults to 10 matches; use max_results to expand or start_index to page)
Configure automatic index updates when files changeUses: configure_file_watcher to enable/disable monitoring and set debounce timing
I added new components, please refresh the project indexUses: refresh_index to update the searchable cache
Troubleshooting
🔄 Auto-refresh Not Working
If automatic index updates aren't working when files change, try:
pip install watchdog(may resolve environment isolation issues)Use manual refresh: Call the
refresh_indextool after making file changesCheck file watcher status: Use
get_file_watcher_statusto verify monitoring is active
macOS File Watcher Options
The default FSEvents observer works well for most projects. If you experience issues, you can switch to an alternative observer via configure_file_watcher:
"auto"(default): Platform default (FSEvents on macOS)"kqueue": Kqueue observer (macOS/BSD)"fsevents": Force FSEvents (macOS only)"polling": Cross-platform polling fallback
Note: Kqueue opens one file descriptor per watched file. For large projects using kqueue, you may need to increase the limit: ulimit -n 10240
Development & Contributing
🔧 Building from Source
git clone https://github.com/johnhuang316/code-index-mcp.git
cd code-index-mcp
uv sync
uv run code-index-mcp🐛 Debugging
npx @modelcontextprotocol/inspector uvx code-index-mcp🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📜 License
🌐 Translations
Available Tools
14 toolsbuild_deep_indexA
Build the deep index (full symbol extraction) for the current project.
This performs a complete re-index and loads it into memory.
Uses parallel processing by default. For large codebases (3000+ files),
tuning max_workers can significantly improve build times.
Args:
max_workers: Maximum number of parallel workers for file processing.
Defaults to min(4, cpu_count) when not specified.
Increase for I/O-bound workloads on machines with many cores.
timeout: Parallel build timeout in seconds. When not specified,
scales dynamically based on file count (0.5s per file,
min 30s, max 600s).
| Name | Required | Description | Default |
|---|---|---|---|
| max_workers | No | ||
| timeout | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it performs a complete re-index, loads into memory, uses parallel processing, and has a dynamic timeout. However, it does not mention whether existing indices are overwritten or if the operation is destructive. No annotations are present to supplement this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (3 sentences for main description, 2 bullet for args) and front-loaded. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the main purpose and parameter details well. Lacks mention of side effects like index overwrite or potential performance impact on the system. Output schema exists so return values are not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are thoroughly explained beyond the schema. For max_workers, it describes default behavior and performance impact. For timeout, it gives the exact dynamic scaling formula. This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Build the deep index (full symbol extraction)'), the resource ('current project'), and implies it's a full re-index. This distinguishes it from sibling tools like 'refresh_index' which likely updates an existing index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides tuning guidance for large codebases but does not specify when to use this tool versus alternatives (e.g., refresh_index, search_code_advanced). No explicit conditions for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_temp_directoryA
Check the temporary directory used for storing index data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only states 'Check' without disclosing side effects or safety profile, leaving the agent to infer it is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous text, efficiently conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has an output schema to explain return values, but the description could be more informative (e.g., what exactly is checked). Still adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist and schema coverage is 100%; description adds no parameter info, but zero parameters warrant a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Check' and specifies the resource 'temporary directory used for storing index data,' clearly differentiating from sibling tools like 'create_temp_directory' which creates a directory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as 'get_settings_info' or 'create_temp_directory'; usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_settingsB
Clear all settings and cached data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It implies destructive action ('clear all') but does not disclose side effects, reversibility, required permissions, or output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no wasted words. It efficiently conveys the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is destructive and has no annotations, the description is insufficient. It does not clarify when to use it, what output to expect (though output schema exists), or implications for other tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, so coverage is complete. The description correctly implies no parameters needed. No additional parameter info necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool clears all settings and cached data, using a specific verb and resource. However, it does not differentiate from sibling tools like get_settings_info or configure_file_watcher, though the action is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool, what situations call for it, or what alternatives exist. The description simply states the action without any contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_file_watcherA
Configure file watcher service settings.
Args:
enabled: Whether to enable file watcher
debounce_seconds: Debounce time in seconds before triggering rebuild
additional_exclude_patterns: Additional directory/file patterns to exclude
observer_type: Observer backend to use. Options:
- "auto" (default): platform default observer
- "kqueue": Force kqueue observer (macOS/BSD)
- "fsevents": Force FSEvents observer (macOS only, has known reliability issues)
- "polling": Cross-platform polling fallback (slower but most compatible)
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | ||
| debounce_seconds | No | ||
| additional_exclude_patterns | No | ||
| observer_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds some behavioral context, e.g., noting that fsevents observer has known reliability issues. However, it omits other traits like side effects, persistence of changes, or required privileges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficiently structured with a clear purpose followed by an Args list. Every sentence adds value without redundancy, maintaining brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and no annotations, the description adequately covers parameter semantics and provides some behavioral context. Lacks high-level impact description but is sufficient for a configuration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description thoroughly explains each parameter, including the observer_type options with platform-specific details. This compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Configure file watcher service settings' providing a specific verb and resource. The description further details the configurable aspects, distinguishing it from sibling tools like get_file_watcher_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives or any prerequisites. The description only lists arguments without context on usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_temp_directoryA
Create the temporary directory used for storing index data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states the creation action but omits critical details such as what happens if the directory already exists, permissions required, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It is appropriately sized for a zero-parameter tool and front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity and presence of an output schema, the description provides the basic purpose. However, it lacks information about idempotency or behavior when the directory already exists, which is important for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so baseline is 4. The description does not add parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'create' and the resource 'temporary directory' with purpose 'used for storing index data'. It distinguishes from sibling tool 'check_temp_directory' which checks existence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'check_temp_directory' or 'refresh_index'. The description lacks any contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_filesA
Find files matching glob pattern using in-memory index. Supports path patterns (.py, test_.js) and filename-only matching (README.md).
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It mentions 'in-memory index' hinting at performance, but fails to disclose scope (e.g., which directories, case sensitivity) or side effects. As a safe read operation, this is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the core purpose and provide examples. Every word adds value; no redundancy. Slightly more structure (e.g., bullet points) would improve scannability but not necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects) and presence of an output schema, the description covers the essential behavior. It does not explain return values, but that is handled by the output schema. Slightly missing details on scope or performance characteristics, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds critical meaning to the 'pattern' parameter by explaining it supports glob patterns and providing specific examples ('*.py', 'README.md'). This compensates for the schema gap effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds files matching glob patterns using an in-memory index. It uses specific verbs ('Find files') and resources ('files'), and distinguishes from siblings like 'search_code_advanced' by focusing on path/filename patterns rather than content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides pattern examples but lacks explicit guidance on when to use this tool versus alternatives like 'search_code_advanced' or 'refresh_index'. It does not specify context or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_summaryB
Get a summary of a specific file, including:
- Line count
- Function/class definitions (for supported languages)
- Import statements
- Basic complexity metrics
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description lists what the tool returns (line count, definitions, etc.), giving behavioral insight. However, it omits details like file existence handling or read-only nature, which is acceptable but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is highly concise: one sentence plus three bullet points. Front-loaded with purpose, every line adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple tool with one parameter and existing output schema, the description covers the main functionality. Missing some error context or path format, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, and the tool description does not add parameter guidance beyond mentioning 'specific file'. It lacks format, required existence, or language support specifics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: getting a file summary with specific items like line count and definitions. It differentiates from siblings somewhat, as siblings like find_files or get_symbol_body are more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use vs alternatives. The description implies usage for file summaries but does not provide when-not-to-use or mention sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_watcher_statusA
Get file watcher service status and statistics.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Implicitly indicates a read-only operation, but lacks details on permissions or side effects. Without annotations, more behavioral context could be provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has zero parameters and an output schema to define return values. Description adequately covers purpose, though could hint at typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline 4 applies. Description adds no extra semantics beyond the empty schema, but the tool is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' and resource 'file watcher service status and statistics', clearly distinguishing from sibling tools like configure_file_watcher or refresh_index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as check_temp_directory or get_file_summary. The description assumes basic understanding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_settings_infoB
Get information about the project settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits such as whether the tool is read-only or has side effects. Although 'get' implies a read operation, explicit confirmation is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no fluff. It efficiently communicates the core purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, has output schema), the description is mostly complete. However, it could clarify which project's settings are referenced or whether settings are global. The existence of an output schema reduces the need to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the description adds no parameter-level detail. Per guidelines, zero parameters defaults to a baseline of 4, as the schema already covers all needs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and resource 'project settings', making the purpose understandable. However, it does not differentiate from sibling tools like 'clear_settings' or 'configure_file_watcher', which also relate to settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as 'get_file_summary' or 'check_temp_directory'. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_symbol_bodyA
Get the source code body of a specific symbol (function, method, or class).
This tool retrieves only the code for the specified symbol, enabling efficient
context usage by avoiding loading entire files.
Args:
file_path: Path to the file containing the symbol
symbol_name: Name of the symbol to retrieve (e.g., "process_data", "MyClass.my_method")
Returns:
Dictionary containing:
- status: "success" or "error"
- symbol_name: Name of the symbol
- type: Type of symbol (function, method, class)
- line: Start line number
- end_line: End line number
- code: The actual source code
- signature: Function/method signature (if available)
- docstring: Documentation string (if available)
- called_by: List of symbols that call this symbol
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| symbol_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes retrieval behavior and return fields, but does not disclose side effects, prerequisites (e.g., indexing), or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with Args and Returns sections, front-loaded with main purpose. However, the Returns section is verbose; could be shortened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters and detailed return fields in description, it covers what the tool does and what it returns. Lacks mention of prerequisites or error handling, but adequate for a retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description's Args section provides explicit meaning for both parameters (file_path, symbol_name) with examples, adding significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets the source code body of a specific symbol (function, method, or class). It distinguishes from siblings by highlighting efficient context usage and avoiding loading entire files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when only symbol code is needed via 'efficient context usage', but lacks explicit when-to-use/when-not-to-use statements or comparisons to siblings like get_file_summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_indexA
Manually rebuild the project file index. Use after git operations or when index seems stale.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It indicates rebuilding the index but does not disclose whether this is destructive, any side effects, permissions needed, or performance impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, direct sentences with no unnecessary words. Front-loads the action and usage hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and an output schema exists, so description need not explain return values. However, it lacks details on safety, cost, or concurrency, which would be helpful given no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters with 100% schema description coverage. Baseline is 4; description adds no extra parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('manually rebuild the project file index') and the resource. It provides usage context ('after git operations or when index seems stale'), which helps differentiate from sibling tool 'build_deep_index', though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use the tool ('after git operations or when index seems stale'), but does not provide when-not-to-use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_search_toolsA
Manually re-detect the available command-line search tools on the system. This is useful if you have installed a new tool (like ripgrep) after starting the server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the action (re-detect) but lacks detail on side effects (e.g., overwriting custom settings) or return behavior. With no annotations, description carries full burden and is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 0-parameter tool with output schema, the description gives enough context to understand when to use it. Lacks description of output, but schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is trivial 100%. Description adds no param info, which is appropriate. Baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 're-detect' and resource 'available command-line search tools', clearly distinguishing it from sibling tools that perform actual searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states a use case: after installing a new tool like ripgrep. Does not explicitly contrast with siblings but context implies it's for manual refresh when auto-detection fails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_code_advancedA
Search for code pattern with pagination. Auto-selects best search tool (ugrep/ripgrep/ag/grep). Supports glob file_pattern (e.g., "*.py"), explicit regex mode, and fuzzy matching (ugrep only). Regex matching requires passing regex=True and may require an external search tool.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | ||
| case_sensitive | No | ||
| context_lines | No | ||
| file_pattern | No | ||
| fuzzy | No | ||
| regex | No | ||
| start_index | No | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses auto-selection of tools, regex requirement, and fuzzy limitation to ugrep. However, it omits details about pagination behavior across backends, error handling, and potential consequences of auto-selection failures. The mention of 'may require an external search tool' is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, front-loading the main purpose. It avoids redundancy but has minor duplication (ugrep only mentioned twice). Overall efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no annotations, and existing output schema, the description covers key behaviors and parameter highlights but lacks details on default values, error states, and return format. Adequate for basic use but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It adds meaning for pattern, file_pattern, regex, fuzzy, and pagination parameters, but does not explain case_sensitive, context_lines, or the exact syntax of pattern. Coverage is partial, not full.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches for code patterns with pagination and auto-selects the best search tool, distinguishing it from sibling tools like find_files which searches by file name. The mention of glob, regex, and fuzzy matching further clarifies its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for code pattern searches and lists supported features, but lacks explicit guidance on when to use this tool versus alternatives, such as when to prefer find_files or when not to use it. No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_project_pathC
Set the base project path for indexing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states the action without detailing side effects, validation, or error conditions. The mutation nature is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks important details. It's not overly verbose, but the brevity reduces its utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a simple 1-parameter tool and an output schema being present (not shown), the description fails to explain return values, errors, or post-conditions. It is incomplete for an agent to understand the full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'path' is described only by its name and type (string) in the schema, with 0% schema description coverage. The description adds no additional meaning, such as expected format, constraints, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and description clearly indicate it sets the base project path for indexing. It's a specific verb+resource pair, distinct from siblings like 'refresh_index' or 'get_settings_info'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or conditions for use. It lacks context such as whether the path must exist or if it's relative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v2.17.0- Changed
build_deep_index2 fields changed- added
Input schema / properties / max_workersAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Max Workers" +} - added
Input schema / properties / timeoutAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Timeout" +}
- Changed
check_temp_directory4 fields changed- added
Output schema / additionalPropertiesAdded value: +true - removed
Output schema / propertiesRemoved value: -{ - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - } -} - removed
Output schema / requiredRemoved value: -[ - "result" -] - changed
Output schema / titlePrevious value: -"check_temp_directoryOutput"New value: +"check_temp_directoryDictOutput"
- Changed
create_temp_directory4 fields changed- added
Output schema / additionalPropertiesAdded value: +true - removed
Output schema / propertiesRemoved value: -{ - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - } -} - removed
Output schema / requiredRemoved value: -[ - "result" -] - changed
Output schema / titlePrevious value: -"create_temp_directoryOutput"New value: +"create_temp_directoryDictOutput"
- Changed
get_file_summary4 fields changed- added
Output schema / additionalPropertiesAdded value: +true - removed
Output schema / propertiesRemoved value: -{ - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - } -} - removed
Output schema / requiredRemoved value: -[ - "result" -] - changed
Output schema / titlePrevious value: -"get_file_summaryOutput"New value: +"get_file_summaryDictOutput"
- Changed
get_file_watcher_status4 fields changed- added
Output schema / additionalPropertiesAdded value: +true - removed
Output schema / propertiesRemoved value: -{ - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - } -} - removed
Output schema / requiredRemoved value: -[ - "result" -] - changed
Output schema / titlePrevious value: -"get_file_watcher_statusOutput"New value: +"get_file_watcher_statusDictOutput"
- Changed
get_settings_info4 fields changed- added
Output schema / additionalPropertiesAdded value: +true - removed
Output schema / propertiesRemoved value: -{ - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - } -} - removed
Output schema / requiredRemoved value: -[ - "result" -] - changed
Output schema / titlePrevious value: -"get_settings_infoOutput"New value: +"get_settings_infoDictOutput"
- Added
get_symbol_body - Changed
search_code_advanced8 fields changed- added
Input schema / properties / file_pattern / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / file_pattern / typeRemoved value: -"string" - added
Input schema / properties / regex / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - removed
Input schema / properties / regex / typeRemoved value: -"boolean" - added
Output schema / additionalPropertiesAdded value: +true - removed
Output schema / propertiesRemoved value: -{ - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - } -} - removed
Output schema / requiredRemoved value: -[ - "result" -] - changed
Output schema / titlePrevious value: -"search_code_advancedOutput"New value: +"search_code_advancedDictOutput"
13 tool updates
v1.0.0- Added
build_deep_index - Changed
check_temp_directory1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + } + }, + "required": [ + "result" + ], + "title": "check_temp_directoryOutput", + "type": "object" +}
- Changed
clear_settings1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "string" + } + }, + "required": [ + "result" + ], + "title": "clear_settingsOutput", + "type": "object" +}
- Changed
configure_file_watcher2 fields changed- added
Input schema / properties / observer_typeAdded value: +{ + "default": null, + "title": "Observer Type", + "type": "string" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "string" + } + }, + "required": [ + "result" + ], + "title": "configure_file_watcherOutput", + "type": "object" +}
- Changed
create_temp_directory1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + } + }, + "required": [ + "result" + ], + "title": "create_temp_directoryOutput", + "type": "object" +}
- Changed
find_files1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "items": { + "type": "string" + }, + "title": "Result", + "type": "array" + } + }, + "required": [ + "result" + ], + "title": "find_filesOutput", + "type": "object" +}
- Changed
get_file_summary1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + } + }, + "required": [ + "result" + ], + "title": "get_file_summaryOutput", + "type": "object" +}
- Changed
get_file_watcher_status1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + } + }, + "required": [ + "result" + ], + "title": "get_file_watcher_statusOutput", + "type": "object" +}
- Changed
get_settings_info1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + } + }, + "required": [ + "result" + ], + "title": "get_settings_infoOutput", + "type": "object" +}
- Changed
refresh_index1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "string" + } + }, + "required": [ + "result" + ], + "title": "refresh_indexOutput", + "type": "object" +}
- Changed
refresh_search_tools1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "string" + } + }, + "required": [ + "result" + ], + "title": "refresh_search_toolsOutput", + "type": "object" +}
- Changed
search_code_advanced3 fields changed- added
Input schema / properties / max_resultsAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": 10, + "title": "Max Results" +} - added
Input schema / properties / start_indexAdded value: +{ + "default": 0, + "title": "Start Index", + "type": "integer" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + } + }, + "required": [ + "result" + ], + "title": "search_code_advancedOutput", + "type": "object" +}
- Changed
set_project_path1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "string" + } + }, + "required": [ + "result" + ], + "title": "set_project_pathOutput", + "type": "object" +}
12 tool updates
- First observed
check_temp_directory - First observed
clear_settings - First observed
configure_file_watcher - First observed
create_temp_directory - First observed
find_files - First observed
get_file_summary - First observed
get_file_watcher_status - First observed
get_settings_info - First observed
refresh_index - First observed
refresh_search_tools - First observed
search_code_advanced - First observed
set_project_path
TDQS
Each tool targets a distinct action: index building, file watching, settings management, searching, etc. Overlap is minimal and descriptions clarify the differences.
All tool names use a consistent verb_noun snake_case pattern (e.g., build_deep_index, check_temp_directory, get_file_summary). No mixing of conventions.
14 tools cover indexing, searching, file details, symbol retrieval, settings, and utilities. This is well-scoped for a code index server, neither sparse nor excessive.
Covers core operations: index build/refresh, file and code search, symbol body retrieval, settings, file watcher. Minor gaps like listing symbols or index statistics exist but do not hinder primary use.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
An MCP server that gives your AI access to the source code and docs of all public github repos
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol server that enables LLMs to read, search, and analyze code files with advanced caching and real-time file watching capabilities.61939MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server designed to easily dump your codebase context into Large Language Models (LLMs).1123Apache 2.0

CodeAlive MCPofficial
AlicenseNot gradedqualityAmaintenanceA Model Context Protocol server that enhances AI agents by providing deep semantic understanding of codebases, enabling more intelligent interactions through advanced code search and contextual awareness.89MIT- FlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server that enables AI applications to access and analyze local code repositories without manual uploads, providing file listing, content reading, code searching, and project structure analysis capabilities.7-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/johnhuang316/code-index-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server