largefile
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., "@largefilesearch for ERROR in /var/log/app.log"
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.
Largefile MCP Server
Navigate, search, and edit large codebases, logs, and data files that exceed AI context limits.
Why Largefile?
Go beyond context limits - Read, search, and edit files too large to fit in AI context windows
Semantic code navigation - Tree-sitter extracts functions/classes for Python, JS/TS, Rust, Go
Fewer LLM errors - Search/replace editing eliminates line number mistakes common with line-based edits
Smart search - Fuzzy matching, regex, case-insensitive, inverted, and count-only modes
No size limits - Handles multi-GB files via tiered memory strategy (RAM → mmap → streaming)
Related MCP server: MCP Files
Quick Start
Prerequisite: Install uv for the uvx command.
{
"mcpServers": {
"largefile": {
"command": "uvx",
"args": ["--from", "largefile", "largefile-mcp"]
}
}
}Tools
Tool | Use For |
| File structure and semantic outline before diving in |
| Finding patterns, counting occurrences, regex matching |
| Reading specific sections; tail/head modes for logs |
| Safe search/replace with automatic backups |
| Recovering from bad edits |
| Browse directory trees with recursive depth control |
| Search patterns across all files in a directory |
When to Use Largefile
Use when:
File exceeds ~1000 lines or 100KB (supports multi-GB files)
Navigating large codebases with semantic structure
Analyzing log files (especially recent entries with tail mode)
Making search/replace edits across large files
Counting occurrences without loading full content
Don't use for:
Small files that fit in context (AI doesn't need help with those)
Binary files (images, executables, compressed)
Usage Examples
Large Codebase Navigation
# Get semantic structure of a large Python file
overview = get_overview("/path/to/large_module.py")
# Returns: 2,847 lines, 15 classes, function outline via Tree-sitter
# Find all class definitions
classes = search_content("/path/to/large_module.py", "class ", fuzzy=False)
# Read complete class with semantic chunking
code = read_content("/path/to/large_module.py", pattern="class UserModel", mode="semantic")Batch Refactoring
# Preview rename across file
preview = edit_content("/path/to/api.py", changes=[
{"search": "process_data", "replace": "transform_data"},
{"search": "old_endpoint", "replace": "new_endpoint"}
], preview=True)
# Apply changes (creates automatic backup)
result = edit_content("/path/to/api.py", changes=[...], preview=False)
# Undo if needed
revert_edit("/path/to/api.py")Log Analysis
# Get log file overview
overview = get_overview("/var/log/app.log")
# Returns: 150,000 lines, 2.1GB
# Read last 500 lines efficiently
recent = read_content("/var/log/app.log", limit=500, mode="tail")
# Count errors without loading content
error_count = search_content("/var/log/app.log", "ERROR", count_only=True, fuzzy=False)
# Find errors with regex
errors = search_content("/var/log/app.log", r"ERROR.*timeout", regex=True)Supported Languages
Tree-sitter semantic analysis for: Python, JavaScript/JSX, TypeScript/TSX, Rust, Go, Java
Other file types use text-based analysis with graceful fallback.
File Size Handling
Size | Strategy |
< 50MB | Full memory loading with AST caching |
50-500MB | Memory-mapped access |
> 500MB | Streaming (tail/head modes recommended) |
Configuration
Environment variables for tuning:
LARGEFILE_MEMORY_THRESHOLD_MB=50 # RAM loading limit
LARGEFILE_MMAP_THRESHOLD_MB=500 # Memory mapping limit
LARGEFILE_FUZZY_THRESHOLD=0.8 # Match sensitivity (0.0-1.0)
LARGEFILE_MAX_SEARCH_RESULTS=20 # Results per search
LARGEFILE_BACKUP_DIR=~/.largefile/backupsDocumentation
API Reference - Detailed tool documentation
Configuration Guide - All environment variables
Examples - More workflow examples
Design Document - Architecture details
Contributing - Development setup
Available Tools
8 toolsedit_contentADestructive
Edit large files using search/replace with fuzzy matching.
Use instead of line-based editing to avoid LLM line number errors. Fuzzy
matching handles whitespace and formatting differences automatically.
Preview mode (default) shows diff without applying. Creates automatic
backup before changes - use revert_edit to undo. Does NOT support regex
in replacement - patterns must be literal text (use fuzzy=true for
flexibility).
| Name | Required | Description | Default |
|---|---|---|---|
| absolute_file_path | Yes | Absolute path to target file | |
| changes | Yes | Array of {search, replace, fuzzy?} objects. Applied in order. | |
| fuzzy | No | Enable fuzzy matching for all changes (default: true) | |
| preview | No | Show diff preview without applying changes. Always preview first! |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint=true), the description adds that it creates automatic backups before changes, preview mode shows a diff without applying, and fuzzy matching handles whitespace/formatting differences. All disclosures are accurate and non-contradictory.
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?
Five sentences with front-loaded purpose, usage guidelines, and behavioral traits. Every sentence is informative and no redundant wording.
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 mutation tool with no output schema, the description explains preview behavior and automatic backup but does not specify the return value when changes are applied. Minor gap, but otherwise comprehensive given annotations and schema coverage.
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 covers all parameters (100%), and the description adds contextual meaning: explains that changes are search/replace objects, preview mode shows diff, and fuzzy matching handles whitespace/formatting. This adds value beyond the 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?
The description clearly states it edits large files using search/replace with fuzzy matching, distinguishing it from sibling tools like read_content (read-only) and revert_edit (undo).
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 recommends using instead of line-based editing to avoid line number errors, notes that regex is not supported, and suggests using fuzzy=true for flexibility. Also mentions revert_edit as an alternative for undoing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_overviewARead-only
Get file structure, size, and semantic outline for large files (code, logs, data).
Use FIRST when working with any file over 1000 lines or when you need to
understand file structure. Returns: line count, byte size, binary detection,
long line stats, section headings, and suggested search patterns. For code
files, uses Tree-sitter to extract functions, classes, and structure. Does
NOT return file content - use read_content or search_content for that.
| Name | Required | Description | Default |
|---|---|---|---|
| absolute_file_path | Yes | Absolute path to target file (e.g., /path/to/large_module.py) | |
| changed_lines | No | Optional list of changed line ranges from a diff. Each entry is [start, end] or [start, end, type] where type is "added", "modified", or "removed". Example: [[10, 15, "added"], [45, 52]]. Available from diffchunk list_chunks file_details output. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds key behavioral details: uses Tree-sitter for code files, returns specific metrics, and clarifies it doesn't return file content. No contradictions.
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?
5 sentences, front-loaded with purpose, then usage, output, special behavior, and exclusion. No fluff; every sentence is informative.
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 tool with 2 params and no output schema, it explains what the tool returns, its use case, and what it doesn't do. Combined with annotations, it's fully informative.
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 100%, so baseline is 3. Description adds context that the tool is for large files and provides usage guidance, but doesn't significantly enhance parameter meaning beyond the 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?
Clearly states verb 'Get' and resource 'file structure, size, and semantic outline'. Differentiates from siblings by explicitly saying 'Does NOT return file content - use read_content or search_content for that.'
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 says 'Use FIRST when working with any file over 1000 lines or when you need to understand file structure.' Also provides alternatives for content retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoryARead-only
List the contents of a directory.
Each entry has a type field: 'dir' for directories, 'file' for files.
Use max_depth > 1 to recurse into subdirectories. Automatically ignores
__pycache__, node_modules, and .git. Returns entry type, size in bytes,
and child count for directories.
| Name | Required | Description | Default |
|---|---|---|---|
| absolute_dir_path | Yes | The absolute path to the directory to list. | |
| max_depth | No | How many levels deep to recurse (default: 1 = direct children only). | |
| max_entries | No | Maximum total entries to return. Defaults to server config (200). | |
| include_hidden | No | Include entries starting with '.' (default: false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly=true), description adds important behaviors: automatic ignoring of common directories, return structure (type, size, child count). No contradictions.
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?
Three concise sentences, front-loaded purpose, no redundancy. Every sentence 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?
Describes return format (type, size, child count) despite no output schema. Mentions ignored directories. Lacks mention of ordering or potential performance issues with deep recursion, but otherwise 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 descriptions already cover all 4 parameters (100% coverage). Description repeats max_depth usage but adds no new semantics beyond schema, so baseline 3 is appropriate.
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 it lists directory contents, distinguishes from sibling tools like read_content or edit_content. Mentions type field, recursion, ignored directories, and return fields.
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 list_directory vs search_directory or other siblings. Only usage hints about max_depth recursion, no context on prerequisites or when to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_contentARead-only
Read specific portions of large files efficiently.
Use after search_content locates content, or directly with tail/head modes
for logs. Modes: 'lines' (read by offset/limit), 'semantic' (complete
functions/classes via Tree-sitter), 'tail' (last N lines - ideal for logs),
'head' (first N lines). Does NOT search - use search_content first to find
line numbers, then read_content to examine. For files over 500MB, tail/head
modes are most efficient.
| Name | Required | Description | Default |
|---|---|---|---|
| absolute_file_path | Yes | Absolute path to target file | |
| offset | No | Starting line number, 1-indexed (default: 1). Ignored in tail/head modes. | |
| limit | No | Lines to return (default 100). Reduce for files with long lines (check get_overview). | |
| pattern | No | Pattern to position read (finds match, then reads around it). Overrides offset. | |
| mode | No | Reading mode: 'lines' (by range), 'semantic' (tree-sitter chunks), 'tail' (last N), 'head' (first N) | lines |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description goes beyond these by explaining the tool's behavior in detail: it reads files efficiently, supports multiple modes (lines, semantic, tail, head), and notes that pattern overrides offset. It also explicitly states it does not search, reinforcing its non-destructive nature. No contradictions with annotations.
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 at 4 sentences with no filler. It is front-loaded with the main purpose, then provides usage guidance, then mode details, and ends with a performance tip for large files. Every sentence earns its place, and the structure is logical and easy to parse.
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 has 5 parameters, no output schema, and no enums or nested objects, the description is fairly complete. It explains all modes, behavior for each, usage order, and a performance consideration. However, it does not describe the return format (e.g., raw text lines or structured data) or error handling (e.g., file not found). While the core clarity is high, a brief note on what the output looks like would improve completeness.
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 100% for all 5 parameters, so the schema already describes them. However, the description adds essential meaning: it explains that offset is 1-indexed, that pattern overrides offset, and that tail/head modes ignore offset. It also clarifies the purpose of each mode ('semantic' for tree-sitter, 'tail' for logs). These details are not in the schema's parameter descriptions, thus adding significant value.
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 reads specific portions of large files efficiently, using a specific verb 'read' and resource 'portions of large files'. It distinguishes itself from sibling tools like search_content by explicitly stating it does NOT search, and from edit_content by implication (read vs edit). The description also names the four modes, providing a clear picture of its functionality.
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 explicit guidance on when to use this tool: 'Use after search_content locates content, or directly with tail/head modes for logs.' It also tells the agent what not to do: 'Does NOT search - use search_content first to find line numbers, then read_content to examine.' This clearly differentiates from the sibling search_content tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_enclosingARead-only
Find the enclosing function or class for a specific line number.
Given a file and line number, returns the complete enclosing definition (function, method, class, struct, etc.) containing that line. Use depth=2 to get the parent definition (e.g., the class containing a method). Falls back to a centered context window for unsupported languages or top-level code.
| Name | Required | Description | Default |
|---|---|---|---|
| absolute_file_path | Yes | Absolute path to target file | |
| line | Yes | Line number to find the enclosing function/class for | |
| depth | No | Nesting depth: 1 = innermost definition, 2 = parent (e.g., class containing a method) | |
| context_lines | No | Lines of context for fallback window when no enclosing definition is found |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive. The description adds valuable behavioral details: the depth parameter's effect and the fallback to a centered context window for unsupported languages or top-level code. No contradictions.
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?
Three sentences, each earning its place. The first states the core purpose, the second provides usage details, and the third covers fallback behavior. No redundant information.
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?
While the purpose is clear, the description does not specify the return value format, and there is no output schema. For a tool that returns a 'complete enclosing definition', the agent would benefit from knowing what fields (e.g., name, type, line range) are included.
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 100%, and the description adds meaningful guidance beyond the schema: it explains the use of depth=2 for parent definitions and describes context_lines as fallback-related. This enriches the agent's understanding of parameter usage.
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 the enclosing function or class for a specific line number, with a specific verb ('Find') and resource ('enclosing function or class'). It distinguishes from siblings like read_content by focusing on code structure rather than raw file 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 explains when to use the tool (given a file and line), how to use depth for parent definitions, and the fallback behavior for unsupported languages. It does not explicitly explain when not to use this tool, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revert_editADestructive
Restore a file to a previous state from automatic backups.
Use when edit_content made unwanted changes. Backups are created
automatically before each edit. Current state is saved as new backup
before reverting (so revert is reversible). Without backup_id, reverts to
most recent backup. Returns list of available backups with timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| absolute_file_path | Yes | Absolute path to the file to revert | |
| backup_id | No | Backup ID from response. Omit to use most recent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructive and not read-only. Description adds that current state is saved before reverting (making revert reversible) and returns a list of backups. No contradiction with annotations.
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?
Concise 5-sentence description, front-loaded with purpose, no redundant information.
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 no output schema, the description explains return behavior (list of backups with timestamps) and covers all relevant behavioral aspects for a revert operation.
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 100% with clear parameter descriptions. The description adds value by explaining how to omit backup_id to use most recent and that the response includes backup list, going beyond 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?
The description clearly states the verb 'restore' and resource 'file from automatic backups', with sufficient scope to distinguish it from sibling tools like edit_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?
Provides explicit context: 'Use when edit_content made unwanted changes'. Also explains backup creation and default behavior, but does not explicitly mention when not to use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_contentARead-only
Search large files for text patterns without loading entire content into memory.
Use when finding functions, classes, errors, log entries, or counting
occurrences. Supports: fuzzy matching (handles typos/whitespace), regex
patterns, case-insensitive search, inverted matching (like grep -v), and
count-only mode. Returns ranked matches with line numbers and context
(lines truncated to 500 chars). When count_only=True, returns
{count, pattern, fuzzy_enabled, regex_enabled, case_sensitive, inverted}
instead of the full results structure.
| Name | Required | Description | Default |
|---|---|---|---|
| absolute_file_path | Yes | Absolute path to target file | |
| pattern | Yes | Text pattern to find (e.g., 'class User', 'ERROR', or regex like r'\d{3}-\d{4}') | |
| max_results | No | Maximum results to return (1-100) | |
| context_lines | No | Lines of context before/after each match | |
| fuzzy | No | Enable fuzzy matching to handle typos and whitespace differences (default: true) | |
| regex | No | Enable regex pattern matching (e.g., r'error.*timeout'). Disables fuzzy matching. | |
| case_sensitive | No | Match exact case when true (default: false for case-insensitive) | |
| invert | No | Return lines that do NOT match the pattern (like grep -v) | |
| count_only | No | Return only the match count, not content. Efficient for large files. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes memory-efficient behavior, supports fuzzy/regex/inverted/count-only modes, mentions truncation of lines to 500 chars, and details the count-only return structure. Adds significant value beyond annotations (readOnlyHint, destructiveHint). No contradictions.
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-paragraph structure is efficient and front-loaded. First paragraph defines purpose and use cases; second paragraph details features and return behavior. Every sentence provides value, no fluff.
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 9 parameters (all described in schema) and no output schema, the description covers return format with ranking, line numbers, context, truncation, and the count-only structure. Complete for the tool's complexity.
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?
All 9 parameters have descriptions in the input schema (100% coverage). The description adds context by summarizing key options (fuzzy by default, regex disables fuzzy) and explaining the special behavior of count_only. Provides meaningful guidance beyond 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?
Clearly states the tool searches large files for text patterns without loading entire content into memory. Lists specific use cases (functions, classes, errors, log entries) and differentiates from sibling tools like search_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?
Explicitly says when to use: 'Use when finding functions, classes, errors, log entries, or counting occurrences.' Provides clear context but doesn't explicitly state when not to use, though sibling names imply alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_directoryARead-only
Search for a text pattern across all files in a directory.
Returns results grouped by file with line numbers and context. Use
include_pattern to filter by file extension (e.g. '*.py'). Automatically
ignores __pycache__, node_modules, and .git. Prefer fuzzy=False (default)
for multi-file search performance.
| Name | Required | Description | Default |
|---|---|---|---|
| absolute_dir_path | Yes | The absolute path to the directory to search. | |
| pattern | Yes | Text pattern to search for. | |
| include_pattern | No | fnmatch glob matched against file names (default: '*'). Examples: '*.py', '*.md', '*.ts'. | * |
| max_results | No | Total match cap across all files. Defaults to server config (100). | |
| context_lines | No | Lines of context before/after each match (default: 2). | |
| fuzzy | No | Enable fuzzy matching (default: false, expensive for many files). | |
| regex | No | Enable Python regex matching (default: false). | |
| case_sensitive | No | Case-sensitive search (default: false). | |
| invert | No | Return non-matching lines, like grep -v (default: false). | |
| include_hidden | No | Include dot-files and dot-dirs (default: false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true) already disclose non-destructiveness. Description adds value by revealing automatic directory ignores (__pycache__, node_modules, .git) and performance implications of fuzzy matching. This goes beyond annotations without contradicting them.
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?
Four sentences, each with distinct value: purpose, return format, filtering/ignores, and performance tip. Front-loaded with core purpose. No redundancy or irrelevant details.
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 10 parameters (2 required) with full schema coverage, the description sufficiently covers usage context. It explains return format (grouped by file with line numbers and context) and automatic ignores, which are not in schema. No output schema exists, but the description fills the gap.
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 100%, so baseline is 3. Description adds minimal parameter-specific info beyond the schema (e.g., include_pattern example, fuzzy performance note). These are helpful but not essential for understanding parameter meaning.
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?
Clear verb+resource scope: searches for a text pattern across all files in a directory. Distinguishes from sibling tools like search_content (likely single-file) and list_directory (listing vs searching). The description explicitly states the scope and output format.
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?
Provides clear usage guidance: recommends using include_pattern to filter extensions and defaults to fuzzy=False for performance. However, it does not explicitly tell when to prefer this tool over search_content or other alternatives, so it lacks explicit exclusions.
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
v0.3.0- First observed
edit_content - First observed
get_overview - First observed
list_directory - First observed
read_content - First observed
read_enclosing - First observed
revert_edit - First observed
search_content - First observed
search_directory
TDQS
Each tool has a clearly distinct purpose: editing, overview, reading, searching, listing, reverting, and structural analysis. No two tools overlap in functionality, making it easy for an agent to select the correct one.
All tools follow a consistent verb_noun pattern in snake_case (e.g., edit_content, get_overview, list_directory), with no mixed conventions or vague names.
8 tools is well-scoped for the domain of handling large files. Each tool addresses a specific need (reading, searching, editing, reverting, etc.) without unnecessary extras.
The tool set covers core operations for large files: overview, reading, searching, editing, reverting, and directory listing. Minor gaps like missing file creation or deletion are acceptable given the server's focus on large, existing files.
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
Securely search and manage workspace context files for AI agents and teams.
Shared memory for coding agents. Stop re-explaining your codebase every session.
Project memory, semantic code search, and grounded agent context.
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Related MCP Servers
- AlicenseAqualityCmaintenanceA line-oriented text file editor. Optimized for LLM tools with efficient partial file access to minimize token usage.6199MIT
- AlicenseAqualityNot gradedmaintenanceEnables agents to quickly find and edit code in a codebase with surgical precision. Find symbols, edit them everywhere with tools for reading code blocks, searching/replacing text, and making precise line-based modifications.311-
- AlicenseAqualityDmaintenanceProvides LLM-optimized filesystem access with intelligent file pagination for large files, lightning-fast ripgrep-powered code search with regex support, and security sandboxing to safely explore and search codebases.791MIT
- AlicenseAqualityBmaintenanceEnables intelligent handling of large files through smart chunking, search with regex support, line navigation, and streaming capabilities without loading entire files into memory.63819MIT
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/peteretelej/largefile'
If you have feedback or need assistance with the MCP directory API, please join our Discord server