Skip to main content
Glama
safurrier

MCP Filesystem Server

by safurrier

MCP 파일 시스템 서버

특허

대용량 파일 및 파일 시스템과의 지능적인 상호작용에 최적화된 파일 시스템 운영을 위한 강력한 모델 컨텍스트 프로토콜(MCP) 서버입니다. 스마트한 컨텍스트 관리를 통해 파일 및 디렉터리에 대한 안전한 액세스를 제공하여 방대한 데이터 작업 시 효율성을 극대화합니다.

왜 MCP 파일 시스템을 선택해야 할까요?

  • 스마트 컨텍스트 관리 : 대용량 파일 및 파일 시스템을 효율적으로 작업합니다.

    • 관련 내용에만 집중하기 위한 부분적 읽기

    • 필요한 것을 정확히 찾을 수 있는 정확한 컨텍스트 제어

    • 페이지 분할을 통한 토큰 효율적 검색 결과

    • 요청 오버헤드를 줄이기 위한 다중 파일 작업

  • 지능형 파일 작업 :

    • 구성 가능한 컨텍스트 창을 통한 라인 대상 읽기

    • 충돌을 방지하기 위한 콘텐츠 검증을 통한 고급 편집

    • 표준 grep을 능가하는 세분화된 검색 기능

    • 정확한 파일 조작을 위한 상대적 줄 참조

Related MCP server: Filesystem MCP Server

주요 특징

  • 보안 파일 액세스 : 명시적으로 허용된 디렉토리 내에서만 작업을 허용합니다.

  • 종합적인 운영 : 전체 파일 시스템 기능 세트

    • 표준 작업(읽기, 쓰기, 나열, 이동, 삭제)

    • 향상된 작업(트리 시각화, 중복 찾기 등)

    • grep 통합을 통한 고급 검색(사용 가능한 경우 ripgrep 사용)

      • 컨텍스트 제어(grep의 -A/-B/-C 옵션과 유사)

      • 대규모 결과 집합에 대한 결과 페이지 매김

    • 콘텐츠 검증 및 상대 줄 번호를 사용한 줄별 타겟팅 작업

  • 성능 최적화 :

    • 대용량 파일과 디렉토리를 효율적으로 처리합니다

    • 매우 빠른 검색을 위한 Ripgrep 통합

    • 전체 파일 로드를 방지하기 위한 라인 대상 작업

  • 종합 테스트 : 행동 중심 접근 방식을 적용한 75개 이상의 테스트

  • 크로스 플랫폼 : Windows, macOS 및 Linux에서 작동합니다.

빠른 시작 가이드

1. 복제 및 설정

먼저, 아직 uv를 설치하지 않았다면 설치하세요.

지엑스피1

그런 다음 저장소를 복제하고 종속성을 설치합니다.

# Clone the repository
git clone https://github.com/safurrier/mcp-filesystem.git
cd mcp-filesystem

# Install dependencies with uv
uv pip sync requirements.txt requirements-dev.txt

2. 절대 경로 가져오기

저장소 위치와 액세스하려는 모든 디렉토리에 대한 절대 경로가 필요합니다.

# Get the absolute path to the repository
REPO_PATH=$(pwd)
echo "Repository path: $REPO_PATH"

# Get absolute paths to directories you want to access
realpath ~/Documents
realpath ~/Downloads
# Or on systems without realpath:
echo "$(cd ~/Documents && pwd)"

3. Claude Desktop 구성

Claude Desktop 구성 파일을 엽니다.

  • macOS의 경우: ~/Library/Application\ Support/Claude/claude_desktop_config.json

  • Windows의 경우: %APPDATA%/Claude/claude_desktop_config.json

다음 구성을 추가합니다(실제 경로로 대체):

{
  "mcpServers": {
    "mcp-filesystem": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/mcp-filesystem",
        "run",
        "run_server.py",
        "/absolute/path/to/dir1",
        "/absolute/path/to/dir2"
      ]
    }
  }
}

중요 : 모든 경로는 절대 경로(루트 디렉터리를 기준으로 한 전체 경로)여야 합니다. realpath 또는 pwd 사용하여 올바른 절대 경로를 입력했는지 확인하세요.

4. Claude Desktop을 다시 시작하세요

구성을 저장한 후 Claude Desktop을 다시 시작하면 변경 사항이 적용됩니다.

설치

용법

서버 로그 보기

Claude Desktop에서 서버 로그를 모니터링할 수 있는 방법은 다음과 같습니다.

# On macOS
tail -n 20 -f ~/Library/Logs/Claude/mcp-server-mcp-filesystem.log

# On Windows (PowerShell)
Get-Content -Path "$env:APPDATA\Claude\Logs\mcp-server-mcp-filesystem.log" -Tail 20 -Wait

이 기능은 문제를 디버깅하거나 클로드가 정확히 무엇을 요청하는지 확인하는 데 특히 유용합니다.

서버 실행

특정 디렉토리에 접근하여 서버를 실행합니다.

# Using uv (recommended)
uv run run_server.py /path/to/dir1 /path/to/dir2

# Or using standard Python
python run_server.py /path/to/dir1 /path/to/dir2

# Example with actual paths
uv run run_server.py /Users/username/Documents /Users/username/Downloads

옵션

  • --transport 또는 -t : 전송 프로토콜(stdio 또는 sse, 기본값: stdio)

  • --port 또는 -p : SSE 전송을 위한 포트(기본값: 8000)

  • --debug 또는 -d : 디버그 로깅을 활성화합니다.

  • --version 또는 -v : 버전 정보 표시

MCP Inspector와 함께 사용

MCP Inspector를 사용하여 대화형 테스트 및 디버깅을 수행하려면 다음을 수행합니다.

# Basic usage
npx @modelcontextprotocol/inspector uv run run_server.py /path/to/directory

# With SSE transport
npx @modelcontextprotocol/inspector uv run run_server.py /path/to/directory --transport sse --port 8080

# With debug output
npx @modelcontextprotocol/inspector uv run run_server.py /path/to/directory --debug

이 서버는 최신 MCP 모범 사례에 더욱 부합하도록 FastMCP SDK를 기반으로 구축되었습니다. 효율적인 컴포넌트 캐싱 시스템과 직접 데코레이터 패턴을 사용합니다.

Claude 데스크톱 통합

MCP-Filesystem을 통합하려면 Claude Desktop 구성 파일을 편집하세요.

구성 파일 위치:

  • macOS의 경우: ~/Library/Application\ Support/Claude/claude_desktop_config.json

  • Windows의 경우: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mcp-filesystem": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-filesystem/repo",
        "run",
        "run_server.py"
      ]
    }
  }
}

특정 디렉토리에 대한 액세스를 허용하려면 추가 인수로 추가하세요.

{
  "mcpServers": {
    "mcp-filesystem": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-filesystem/repo",
        "run",
        "run_server.py",
        "/Users/yourusername/Projects",
        "/Users/yourusername/Documents"
      ]
    }
  }
}

참고: --directory 플래그는 uv가 run_server.py가 포함된 저장소의 위치를 찾을 수 있도록 알려주므로 중요합니다. /path/to/mcp-filesystem/repo 시스템에서 저장소를 복제한 실제 경로로 바꾸세요.

개발

테스트 실행

# Run all tests
uv run -m pytest tests/

# Run specific test file
uv run -m pytest tests/test_operations_unit.py

# Run with coverage
uv run -m pytest tests/ --cov=mcp_filesystem --cov-report=term-missing

코드 스타일 및 품질

# Format code
uv run -m ruff format mcp_filesystem

# Lint code
uv run -m ruff check --fix mcp_filesystem

# Type check
uv run -m mypy mcp_filesystem

# Run all checks
uv run -m ruff format mcp_filesystem && \
uv run -m ruff check --fix mcp_filesystem && \
uv run -m mypy mcp_filesystem && \
uv run -m pytest tests --cov=mcp_filesystem

사용 가능한 도구

기본 파일 작업

  • read_file : 파일의 전체 내용을 읽습니다.

  • read_multiple_files : 여러 파일을 동시에 읽습니다.

  • write_file : 새 파일을 생성하거나 기존 파일을 덮어씁니다.

  • create_directory : 새 디렉토리를 생성하거나 디렉토리가 존재하는지 확인합니다.

  • list_directory : 파일 및 디렉토리의 자세한 목록을 가져옵니다.

  • move_file : 파일 및 디렉토리를 이동하거나 이름을 바꿉니다.

  • get_file_info : 파일이나 디렉토리에 대한 자세한 메타데이터를 검색합니다.

  • list_allowed_directories : 서버가 액세스할 수 있는 디렉토리를 나열합니다.

라인 타겟 운영

  • read_file_lines : 오프셋/제한 매개변수를 사용하여 특정 줄 범위를 읽습니다.

  • edit_file_at_line : 콘텐츠 검증 및 상대 줄 번호를 사용하여 정확한 편집을 수행합니다.

    • 오래된 콘텐츠 편집을 방지하기 위한 콘텐츠 검증 지원

    • 지역별 편집을 더 쉽게 하기 위한 상대적 줄 번호

    • 여러 편집 작업(바꾸기, 삽입_앞에, 삽입_뒤에, 삭제)

  • head_file : 텍스트 파일의 처음 N줄을 읽습니다.

  • tail_file : 텍스트 파일의 마지막 N줄을 읽습니다.

고급 검색

  • grep_files : 강력한 옵션을 사용하여 파일에서 패턴을 검색합니다.

    • 성능을 위한 Ripgrep 통합(Python 대체 기능 포함)

    • 세분화된 컨텍스트 제어(grep의 -A/-B/-C 옵션과 유사)

    • 대규모 검색 결과에 대한 결과 페이지 매김

    • 대소문자 구분 및 전체 단어 옵션이 포함된 RegEx 지원

  • search_files : 콘텐츠 검색 패턴과 일치하는 파일을 검색합니다.

  • directory_tree : 파일 및 디렉토리의 재귀적 트리 뷰를 가져옵니다.

분석 및 보고

  • calculate_directory_size : 디렉토리의 총 크기를 계산합니다.

  • find_duplicate_files : 콘텐츠를 비교하여 중복 파일을 찾습니다.

  • compare_files : 두 개의 텍스트 파일을 비교하고 차이점을 표시합니다.

  • find_large_files : 지정된 크기보다 큰 파일을 찾습니다.

  • find_empty_directories : 빈 디렉토리 찾기

사용 예

파일 줄 읽기

Tool: read_file_lines
Arguments: {
  "path": "/path/to/file.txt",
  "offset": 99,        # 0-based indexing (line 100)
  "limit": 51,         # Read 51 lines
  "encoding": "utf-8"  # Optional encoding
}

Grep을 사용하여 콘텐츠 검색

Tool: grep_files
Arguments: {
  "path": "/path/to/search",
  "pattern": "function\\s+\\w+\\(",
  "is_regex": true,
  "context_before": 2,       # Show 2 lines before each match (like grep -B)
  "context_after": 5,        # Show 5 lines after each match (like grep -A)
  "include_patterns": ["*.js", "*.ts"],
  "results_offset": 0,       # Start from the first match
  "results_limit": 20        # Show at most 20 matches
}

라인 타겟 편집

Tool: edit_file_at_line
Arguments: {
  "path": "/path/to/file.txt",
  "line_edits": [
    {
      "line_number": 15,
      "action": "replace",
      "content": "This is the new content for line 15\n",
      "expected_content": "Original content of line 15\n" # Verify content before editing
    },
    {
      "line_number": 20,
      "action": "delete"
    }
  ],
  "offset": 0,                           # Start considering lines from this offset
  "relative_line_numbers": false,        # Whether line numbers are relative to offset
  "abort_on_verification_failure": true, # Stop on verification failure
  "dry_run": true                        # Preview changes without applying
}

중복 파일 찾기

Tool: find_duplicate_files
Arguments: {
  "path": "/path/to/search",
  "recursive": true,
  "min_size": 1024,
  "format": "text"
}

대용량 파일 및 파일 시스템을 위한 효율적인 워크플로

MCP-Filesystem은 대용량 파일 및 복잡한 파일 시스템과의 지능적인 상호작용을 위해 설계되었습니다.

  1. 스마트 컨텍스트 검색

    • grep_files 사용하면 정확한 컨텍스트 제어로 필요한 것을 정확하게 찾을 수 있습니다.

    • 일치 전후 컨텍스트 줄에 대한 세밀한 제어로 토큰 낭비를 방지합니다.

    • 과도한 토큰 제한 없이 효율적으로 대규모 결과 세트를 페이지별로 분할합니다.

    • Ripgrep 통합은 수백만 개의 파일과 줄이 있는 대규모 파일 시스템을 처리합니다.

  2. 타겟 독서

    • offset/limit을 사용하여 read_file_lines 가 있는 관련 섹션만 검사합니다.

    • 정확한 콘텐츠 검색을 위한 간단한 오프셋/제한 매개변수를 사용한 0 기반 인덱싱

    • 토큰 효율성을 극대화하기 위해 정확히 몇 줄을 읽어야 하는지 제어합니다.

    • 왕복 시간을 줄이기 위해 여러 파일을 동시에 읽습니다.

  3. 정확한 편집

    • 콘텐츠 검증을 통해 edit_file_at_line 으로 타겟 편집을 수행합니다.

    • 충돌을 방지하기 위해 편집하기 전에 콘텐츠가 변경되지 않았는지 확인하세요.

    • 복잡한 파일에서 지역 편집을 위해 상대 줄 번호를 사용하세요.

    • 복잡한 변경 사항에 대해 단일 작업에서 여러 편집 작업을 수행합니다.

    • 변경 사항을 적용하기 전에 미리 볼 수 있는 드라이런 기능

  4. 고급 분석

    • find_duplicate_filescompare_files 와 같은 특수 도구를 사용하세요.

    • 빠른 탐색을 위해 directory_tree 로 디렉토리 트리를 생성합니다.

    • find_large_filesfind_empty_directories 사용하여 문제가 있는 영역을 식별합니다.

이 워크플로는 대용량 파일 및 파일 시스템을 처리해야 하는 AI 기반 도구에 특히 유용합니다. 예를 들어, Claude와 같은 고급 AI 비서는 이러한 기능을 활용하여 토큰 효율성을 유지하면서 코드베이스를 효율적으로 탐색하고, 로그 파일을 분석하고, 대용량 텍스트 기반 데이터 세트를 처리할 수 있습니다.

표준 파일 시스템 MCP 서버에 비해 장점

기본 파일 시스템 MCP 서버와 달리 MCP-Filesystem은 다음을 제공합니다.

  1. 토큰 효율성

    • 스마트한 라인 타겟 작업은 전체 파일을 컨텍스트에 로드하지 않습니다.

    • 대용량 결과에 대한 페이지 매김 제어로 컨텍스트 오버플로 방지

    • 컨텍스트 제어를 통한 정확한 grep(전체 파일 검색만이 아님)

    • 다중 파일 읽기로 왕복 요청 감소

  2. 지능형 편집

    • 편집 충돌을 방지하기 위한 콘텐츠 검증

    • 전체 파일이 필요하지 않은 라인 대상 편집

    • 지역별 편집을 더 쉽게 하기 위한 상대적 줄 번호 지원

    • 변경 사항을 적용하기 전에 미리 볼 수 있는 드라이런 기능

  3. 고급 검색

    • 대규모 파일 시스템 성능을 위한 Ripgrep 통합

    • 컨텍스트 인식 결과(단순 일치가 아님)

    • 반환되는 항목에 대한 세부적인 제어

    • 제외 지원을 통한 패턴 기반 파일 찾기

  4. 추가 유틸리티

    • 파일 비교 및 중복 제거

    • 디렉토리 크기 계산 및 분석

    • 빈 디렉토리 식별

    • 트리 기반 디렉토리 시각화

  5. 보안 초점

    • 강력한 경로 검증 및 샌드박싱

    • 경로 탐색 공격에 대한 보호

    • 심볼릭 링크 검증 및 보안

    • 민감한 노출 없이 자세한 오류 보고

알려진 문제 및 제한 사항

  • 경로 확인 : 가장 일관된 결과를 얻으려면 항상 절대 경로를 사용하세요. 상대 경로는 허용된 디렉터리가 아닌 서버의 작업 디렉터리를 기준으로 해석될 수 있습니다.

  • 성능 : 대규모 디렉토리의 경우 find_duplicate_files 나 재귀 검색과 같은 작업을 완료하는 데 상당한 시간이 걸릴 수 있습니다.

  • 권한 처리 : 서버는 서버를 실행하는 사용자와 동일한 권한으로 작동합니다. 서버가 액세스해야 하는 디렉터리에 대한 적절한 권한을 가지고 있는지 확인하세요.

보안

서버는 허용된 디렉토리 외부의 액세스를 방지하기 위해 엄격한 경로 검증을 시행합니다.

  • 명시적으로 허용된 디렉토리 내에서만 작업이 허용됩니다.

  • 경로 탐색 공격으로부터 보호 기능을 제공합니다.

  • 허용된 디렉토리 외부를 가리키지 않는지 확인하기 위해 심볼릭 링크를 검증합니다.

  • 민감한 정보를 노출하지 않고 의미 있는 오류 메시지를 반환합니다.

성능 고려 사항

grep 기능을 사용하여 최상의 성능을 얻으려면:

  • ripgrep ( rg ) 설치

  • 서버는 Python 대체 수단과 함께 사용 가능한 경우 ripgrep을 자동으로 사용합니다.

특허

MIT 라이센스

Available Tools

21 tools
calculate_directory_sizeB

Calculate the total size of a directory recursively.

Args:
    path: Directory path
    format: Output format ('human', 'bytes', or 'json')
    ctx: MCP context

Returns:
    Directory size information
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
formatNohuman

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks behavioral details. It mentions recursion but doesn't disclose performance implications for large directories, error handling for invalid paths, or whether it follows symlinks. The return format options are listed but not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (Args, Returns) and front-loaded purpose. It's concise but could be slightly tighter by integrating the format options into the main sentence rather than a separate list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters, no annotations, and no output schema, the description covers the basics but lacks depth. It explains parameters adequately but doesn't detail return values beyond 'Directory size information', leaving ambiguity about output structure for different formats.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clearly explains 'path' as 'Directory path' and 'format' with its three options, adding essential meaning beyond the bare schema. The 'ctx' parameter is mentioned but not explained, slightly reducing completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('calculate the total size') and resource ('directory recursively'), distinguishing it from siblings like 'get_file_info' (single file) or 'list_directory' (listing contents). The verb 'calculate' with 'recursively' precisely defines the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'get_file_info' (for single files) or 'find_large_files' (for identifying large items). The description only states what it does, not when it's appropriate compared to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_filesB

Compare two text files and show differences.

Args:
    file1: First file path
    file2: Second file path
    encoding: Text encoding (default: utf-8)
    format: Output format ('text' or 'json')
    ctx: MCP context

Returns:
    Comparison results
ParametersJSON Schema
NameRequiredDescriptionDefault
file1Yes
file2Yes
encodingNoutf-8
formatNotext

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions the tool 'shows differences' but doesn't disclose important behavioral traits: what type of comparison is performed (line-by-line, character-level?), whether it's read-only or modifies files, what happens with binary files, error handling, or performance characteristics. The description is minimal beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and concise. It starts with the core purpose, then lists parameters with clear explanations, and ends with the return statement. Every sentence earns its place with no wasted words. The bullet-like format for parameters is efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters with no schema descriptions and no output schema, the description does a reasonable job explaining parameters but leaves gaps. It doesn't describe the comparison algorithm, error conditions, or what the output looks like (beyond mentioning 'text' or 'json' format). For a comparison tool with behavioral complexity, more context about the comparison method and output structure would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate, and it does so effectively. It clearly explains all 4 parameters: 'file1' and 'file2' as file paths, 'encoding' with its default, and 'format' with valid values. This adds significant meaning beyond the bare schema. The only minor gap is not explaining what 'text' vs 'json' format outputs look like.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Compare two text files and show differences.' This is a specific verb ('compare') with clear resources ('two text files') and outcome ('show differences'). However, it doesn't explicitly differentiate from sibling tools like 'find_duplicate_files' or 'search_files', which might involve file comparison in different contexts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With many sibling tools for file operations (e.g., 'find_duplicate_files', 'grep_files', 'search_files'), there's no indication of when this specific comparison tool is appropriate versus other file analysis tools. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_directoryA

Create a new directory or ensure a directory exists.

Args:
    path: Path to the directory
    parents: Create parent directories if they don't exist
    exist_ok: Don't raise an error if directory already exists
    ctx: MCP context

Returns:
    Success or error message
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
parentsNo
exist_okNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It mentions the tool can 'ensure a directory exists' and describes parameter behaviors (parents creation, error handling with exist_ok), which adds useful context beyond just 'create.' However, it doesn't disclose permissions needed, whether it's idempotent, or what specific error messages might be returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It starts with a clear purpose statement, then lists parameters with helpful explanations, and ends with return information. Every sentence earns its place, though the 'ctx: MCP context' parameter explanation is somewhat redundant since MCP context is typically implicit.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters with 0% schema coverage and no output schema, the description does a good job explaining parameters but could be more complete. It mentions return is a 'Success or error message' but doesn't specify format or examples. For a mutation tool with no annotations, more behavioral context about permissions, side effects, or error conditions would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides excellent parameter semantics beyond the input schema, which has 0% description coverage. It clearly explains what each parameter does: 'path: Path to the directory', 'parents: Create parent directories if they don't exist', 'exist_ok: Don't raise an error if directory already exists'. This fully compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Create a new directory or ensure a directory exists.' This specifies the verb (create/ensure) and resource (directory). However, it doesn't explicitly differentiate from sibling tools like 'list_directory' or 'directory_tree' beyond the obvious creation vs. listing distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites, when not to use it, or how it compares to sibling tools like 'move_file' or 'find_empty_directories' that might involve directory operations. Usage is implied by the name but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

directory_treeA

Get a recursive tree view of files and directories.

Args:
    path: Root directory
    max_depth: Maximum recursion depth
    include_files: Whether to include files (not just directories)
    pattern: Optional glob pattern to filter entries
    exclude_patterns: Optional patterns to exclude
    format: Output format ('text' or 'json')
    ctx: MCP context

Returns:
    Formatted directory tree
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
max_depthNo
include_filesNo
patternNo
exclude_patternsNo
formatNotext

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions recursion depth and filtering capabilities, it doesn't disclose important behavioral traits like: whether this operation is read-only or has side effects, performance characteristics for large directories, permission requirements, error handling, or what happens with symbolic links. The description provides basic functionality but lacks critical operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, Args, Returns) and front-loads the core functionality. The 'Args' section could be more concise by grouping related parameters, but overall it's efficient with minimal wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter tool with no annotations and no output schema, the description provides adequate parameter documentation but lacks important contextual information. It doesn't explain the return format details (what 'Formatted directory tree' actually contains), error conditions, performance considerations, or how it differs meaningfully from simpler sibling tools like 'list_directory'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates well by explaining all 6 parameters in the 'Args' section. Each parameter gets a brief semantic explanation beyond just naming them (e.g., 'Maximum recursion depth' for max_depth, 'Optional glob pattern to filter entries' for pattern). However, it doesn't provide format details for patterns or depth constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('recursive tree view of files and directories'). It distinguishes from sibling tools like 'list_directory' (which likely lists without recursion) and 'calculate_directory_size' (which focuses on size calculation rather than tree structure).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining hierarchical directory views but doesn't explicitly state when to use this versus alternatives like 'list_directory' or 'search_files'. No guidance is provided about when not to use it or about performance considerations with deep recursion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_fileA

Make line-based edits to a text file.

Args:
    path: Path to the file
    edits: List of {oldText, newText} dictionaries
    encoding: Text encoding (default: utf-8)
    dry_run: If True, return diff but don't modify file
    ctx: MCP context

Returns:
    Git-style diff showing changes
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
editsYes
encodingNoutf-8
dry_runNo

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the tool can perform dry runs and returns Git-style diffs, which are valuable behavioral traits. However, it doesn't mention error conditions, file locking behavior, permission requirements, or what happens with non-existent files - significant gaps for a file mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and front-loaded: the first sentence states the core purpose, followed by clearly labeled Args and Returns sections. Every sentence earns its place - no redundant information, no wasted words. The formatting with clear section headers enhances readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a file mutation tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description does a decent job but has gaps. It explains parameters well and mentions the return format, but doesn't cover error handling, permission requirements, or edge cases. Given the complexity of file editing operations, more behavioral context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates well by explaining all 4 parameters in the Args section. It clarifies that 'edits' expects dictionaries with 'oldText' and 'newText' keys, specifies the default for 'encoding' and 'dry_run', and explains what 'dry_run' does. The only gap is not explaining the 'ctx' parameter's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Make line-based edits') and resource ('to a text file'), distinguishing it from siblings like 'edit_file_at_line' (which implies different editing granularity) and 'write_file' (which likely overwrites entire files). The phrase 'line-based edits' provides precise scope information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool (for making line-based edits to text files) but doesn't explicitly state when NOT to use it or name specific alternatives. It distinguishes from 'edit_file_at_line' by implying different editing approaches, but doesn't provide explicit guidance on choosing between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_file_at_lineA

Edit specific lines in a text file.

Args:
    path: Path to the file
    line_edits: List of edits to apply. Each edit is a dict with:
        - line_number: Line number to edit (0-based if relative_line_numbers=True, otherwise 1-based)
        - action: "replace", "insert_before", "insert_after", "delete"
        - content: New content for replace/insert operations (optional for delete)
        - expected_content: (Optional) Expected content of the line being edited for verification
    offset: Line offset (0-based) to start considering lines
    limit: Maximum number of lines to consider
    relative_line_numbers: Whether line numbers in edits are relative to offset
    abort_on_verification_failure: Whether to abort all edits if any verification fails
    encoding: Text encoding (default: utf-8)
    dry_run: If True, returns what would be changed without modifying the file
    ctx: MCP context

Returns:
    Edit results summary
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
line_editsYes
offsetNo
limitNo
relative_line_numbersNo
abort_on_verification_failureNo
encodingNoutf-8
dry_runNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It does reveal that this is a file mutation tool (implied by 'Edit'), describes the dry_run option for safe testing, and mentions verification failure handling. However, it doesn't cover important behavioral aspects like error conditions, permission requirements, atomicity of edits, or what happens with concurrent access.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with purpose statement followed by organized parameter documentation. While somewhat lengthy due to the complex parameter set, every sentence adds value. The structure is logical with clear sections for Args and Returns, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation tool with 8 parameters, 0% schema coverage, and no output schema, the description does a good job explaining parameters but leaves gaps. It doesn't describe the return format ('Edit results summary' is vague), doesn't explain error handling, and lacks context about file system permissions or edge cases. The parameter documentation is strong, but overall completeness is limited.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description provides comprehensive parameter documentation that fully compensates. It explains all 8 parameters with clear semantics, including detailed breakdown of the complex 'line_edits' array structure, default values, and behavioral implications of flags like 'relative_line_numbers' and 'abort_on_verification_failure'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Edit') and resource ('specific lines in a text file'), distinguishing it from sibling tools like 'edit_file' (which likely edits entire files) and 'write_file' (which overwrites files). The description immediately establishes this is a line-level editing operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'edit_file' or 'write_file'. While it's clear this tool edits specific lines, there's no mention of use cases, prerequisites, or comparison to sibling tools that might handle similar file operations differently.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_duplicate_filesA

Find duplicate files by comparing file sizes and contents.

Args:
    path: Starting directory
    recursive: Whether to search subdirectories
    min_size: Minimum file size to consider (bytes)
    exclude_patterns: Optional patterns to exclude
    max_files: Maximum number of files to scan
    format: Output format ('text' or 'json')
    ctx: MCP context

Returns:
    Duplicate file information
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
recursiveNo
min_sizeNo
exclude_patternsNo
max_filesNo
formatNotext

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the comparison method (file sizes and contents) and output format options, it doesn't disclose important behavioral traits like performance characteristics (scanning could be slow), memory usage, whether it follows symlinks, error handling, or what happens when max_files is reached. The description provides basic operational context but lacks comprehensive behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, Args, Returns) and front-loads the core purpose. The Args section is comprehensive but could be more concise - some parameter explanations are brief but effective. Overall efficient with minimal wasted space, though the 'ctx: MCP context' parameter explanation adds little value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, no annotations, and no output schema, the description provides adequate basic information but has gaps. It explains parameters well and mentions output format options, but doesn't describe the structure of returned 'Duplicate file information' or important behavioral considerations. The description is complete enough for basic usage but lacks depth for optimal agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates well by explaining all 6 parameters in the Args section, providing meaningful context beyond just parameter names. Each parameter gets a brief semantic explanation (e.g., 'Minimum file size to consider (bytes)', 'Optional patterns to exclude'), though some explanations could be more detailed (like what patterns are supported).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Find duplicate files') and method ('by comparing file sizes and contents'), distinguishing it from sibling tools like compare_files (which compares specific files) or find_large_files (which finds large files). It provides a complete purpose statement with both what it does and how it works.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context through the parameter explanations (e.g., 'Starting directory', 'Whether to search subdirectories'), but doesn't explicitly state when to use this tool versus alternatives like compare_files or search_files. No explicit when-not-to-use guidance or sibling tool comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_empty_directoriesC

Find empty directories.

Args:
    path: Starting directory
    recursive: Whether to search subdirectories
    exclude_patterns: Optional patterns to exclude
    format: Output format ('text' or 'json')
    ctx: MCP context

Returns:
    Empty directory information
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
recursiveNo
exclude_patternsNo
formatNotext

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Find empty directories' implies a read-only operation, it doesn't specify whether this requires special permissions, how it handles symbolic links, what happens with permission errors, or any rate limits. The description mentions output format options but doesn't describe the actual return structure or what 'empty directory information' includes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and well-structured with clear sections for Args and Returns. The purpose statement is front-loaded. However, the 'ctx: MCP context' parameter explanation adds no value (it's boilerplate that should be omitted), and the Returns section is vague enough that it could be more concise or informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description is insufficient. It doesn't explain what constitutes an 'empty' directory, how the search algorithm works, what the output actually contains, or provide any examples. The tool has meaningful complexity (recursive search with exclusions and format options) that isn't adequately addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds some value by listing all 4 parameters with brief explanations. However, it doesn't fully compensate for the schema gap - it doesn't explain what 'empty' means (no files at all? no regular files?), what patterns are supported for exclude_patterns, or provide examples. The parameter explanations are minimal and don't add rich semantic context beyond naming them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with 'Find empty directories' - a specific verb+resource combination. It distinguishes itself from siblings like 'list_directory' or 'directory_tree' by focusing specifically on empty directories rather than general directory listing. However, it doesn't explicitly differentiate from all siblings, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like 'list_directory' and 'directory_tree' that also provide directory information, there's no indication of when this specialized tool is preferable. No exclusions, prerequisites, or comparison to similar tools are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_large_filesB

Find files larger than the specified size.

Args:
    path: Starting directory
    min_size_mb: Minimum file size in megabytes
    recursive: Whether to search subdirectories
    max_results: Maximum number of results to return
    exclude_patterns: Optional patterns to exclude
    format: Output format ('text' or 'json')
    ctx: MCP context

Returns:
    Large file information
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
min_size_mbNo
recursiveNo
max_resultsNo
exclude_patternsNo
formatNotext

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the basic operation but doesn't cover important behavioral aspects: whether this is a read-only operation, potential performance implications for large directories, permission requirements, error handling, or what 'Large file information' specifically includes. The description provides minimal behavioral context beyond the basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It starts with a clear purpose statement, then efficiently documents parameters in a bullet-like format, and ends with return information. Every sentence serves a purpose with zero wasted words. The formatting with 'Args:' and 'Returns:' sections enhances readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter tool with no annotations and no output schema, the description provides adequate but incomplete coverage. It documents parameters well but lacks behavioral context about safety, performance, and error handling. The return description 'Large file information' is vague without an output schema. Given the complexity, it should provide more guidance on usage context and result interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate, and it does so effectively by listing all 6 parameters with brief explanations. It clarifies 'min_size_mb' is in megabytes, 'recursive' searches subdirectories, 'exclude_patterns' is optional, and 'format' has two output options. This adds substantial meaning beyond the bare schema, though it could provide more detail about pattern syntax or result formatting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Find files larger than the specified size.' This is a specific verb+resource combination that indicates it's a search/filtering operation. However, it doesn't explicitly differentiate from sibling tools like 'search_files' or 'find_duplicate_files' beyond the size-based filtering focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention sibling tools like 'search_files' for general searches, 'find_duplicate_files' for duplicate detection, or 'calculate_directory_size' for size analysis. There's no context about when this specific size-based filtering is appropriate versus other file-finding operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_file_infoC

Retrieve detailed metadata about a file or directory.

Args:
    path: Path to the file or directory
    format: Output format ('text' or 'json')
    ctx: MCP context

Returns:
    Formatted file information
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
formatNotext

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions retrieving metadata but doesn't specify what metadata is included (e.g., size, permissions, timestamps), error handling for non-existent paths, or any rate limits or authentication needs. This leaves significant gaps for a tool that likely interacts with file systems.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by structured sections for Args and Returns. It's efficient with minimal waste, though the 'ctx' parameter is mentioned without explanation, slightly reducing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of file operations, no annotations, and no output schema, the description is incomplete. It lacks details on metadata content, error cases, permissions, or return structure, making it inadequate for safe and effective use by an AI agent in this context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description lists parameters 'path', 'format', and 'ctx', adding meaning beyond the input schema (which only covers 'path' and 'format' with 0% schema description coverage). It explains 'path' as 'Path to the file or directory' and 'format' as 'Output format ('text' or 'json')', which compensates partially for the low schema coverage, but doesn't detail 'ctx' or provide examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and resource 'detailed metadata about a file or directory', which is specific and unambiguous. It distinguishes from siblings like 'read_file' (content) or 'list_directory' (listing), though it doesn't explicitly mention those distinctions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. For example, it doesn't explain when to choose 'get_file_info' over 'list_directory' for metadata or 'read_file' for content, nor does it mention prerequisites like file existence or permissions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grep_filesA

Search for pattern in files, similar to grep.

Args:
    path: Starting directory or file path
    pattern: Text or regex pattern to search for
    is_regex: Whether to treat pattern as regex
    case_sensitive: Whether search is case sensitive
    whole_word: Match whole words only
    include_patterns: Only include files matching these patterns
    exclude_patterns: Exclude files matching these patterns
    context_lines: Number of lines to show before AND after matches (like grep -C)
    context_before: Number of lines to show BEFORE matches (like grep -B)
    context_after: Number of lines to show AFTER matches (like grep -A)
    results_offset: Start at Nth match (0-based, for pagination)
    results_limit: Return at most this many matches (for pagination)
    max_results: Maximum total matches to find during search
    max_file_size_mb: Skip files larger than this size
    recursive: Whether to search subdirectories
    max_depth: Maximum directory depth to recurse
    count_only: Only show match counts per file
    format: Output format ('text' or 'json')
    ctx: MCP context

Returns:
    Search results
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
patternYes
is_regexNo
case_sensitiveNo
whole_wordNo
include_patternsNo
exclude_patternsNo
context_linesNo
context_beforeNo
context_afterNo
results_offsetNo
results_limitNo
max_resultsNo
max_file_size_mbNo
recursiveNo
max_depthNo
count_onlyNo
formatNotext

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal some behavioral traits: the tool can search recursively, skip large files, and support pagination. However, it doesn't mention important aspects like performance characteristics, memory usage, error conditions, or whether the search is destructive (though 'grep' implies 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections for arguments and returns, but it's quite lengthy due to documenting all 18 parameters. While each parameter explanation earns its place, the front-loaded purpose statement could be more prominent. The structure is functional but not optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (18 parameters, no annotations, no output schema), the description does a reasonably complete job. It thoroughly documents all parameters and mentions the return type ('Search results'). However, without annotations or output schema, it could benefit from more detail about result format, error handling, and performance considerations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides comprehensive parameter documentation that fully compensates for the 0% schema description coverage. Each of the 18 parameters is clearly explained with meaningful context (e.g., 'like grep -C', 'for pagination', 'Skip files larger than this size'). This adds substantial value beyond what the bare schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search for pattern in files, similar to grep.' This specifies the verb ('search') and resource ('files'), making the function immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_files' or 'find_duplicate_files', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With many sibling tools for file operations (like 'search_files', 'find_duplicate_files', 'read_file_lines'), there's no indication of when grep_files is the appropriate choice versus other search or file examination tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

head_fileA

Read the first N lines of a text file.

Args:
    path: Path to the file
    lines: Number of lines to read (default: 10)
    encoding: Text encoding (default: utf-8)
    ctx: MCP context

Returns:
    First N lines of the file
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
linesNo
encodingNoutf-8

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool reads files, implying a read-only operation, but doesn't mention error handling (e.g., for missing files or encoding issues), performance characteristics, or security constraints. The description adds basic context but lacks depth for behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear purpose statement followed by organized sections for arguments and returns. Every sentence adds value without redundancy, and it's front-loaded with the core functionality. The formatting enhances readability while maintaining brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no annotations, no output schema), the description is mostly complete. It covers purpose, parameters, and returns adequately, but lacks details on error cases or behavioral nuances. For a read operation with simple inputs, this is sufficient though not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must fully compensate. It clearly explains all three parameters: 'path' (file location), 'lines' (number of lines with default), and 'encoding' (text encoding with default). This adds essential meaning beyond the bare schema, making parameter purposes and defaults explicit and understandable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Read the first N lines') and resource ('of a text file'), which directly explains what the tool does. It distinguishes from siblings like 'read_file' (reads entire file) and 'tail_file' (reads last lines), making the purpose unambiguous and well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading initial portions of files, but doesn't explicitly state when to use this tool versus alternatives like 'read_file' (for full content) or 'tail_file' (for end of file). No guidance on prerequisites or exclusions is provided, leaving usage context somewhat inferred rather than clearly articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_allowed_directoriesC

Returns the list of directories that this server is allowed to access.

Args:
    ctx: MCP context

Returns:
    List of allowed directories
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns a list but doesn't describe the format (e.g., array of strings, objects), any permissions or authentication needs, rate limits, or error conditions. This is a read-only operation implied by 'Returns,' but without annotations, the description lacks critical behavioral details for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with sections for 'Args' and 'Returns,' but it's somewhat verbose for a simple tool. The first sentence clearly states the purpose, but the additional sections could be more streamlined. It earns its place by providing basic info, but there's room for improvement in efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain the return value format (e.g., what 'List of allowed directories' entails—structure, data types) or any behavioral aspects like error handling. For a tool that interacts with server permissions, more context on output and usage constraints is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description includes an 'Args' section mentioning 'ctx: MCP context,' which adds minimal context beyond the empty schema, but this is redundant since the schema already fully defines the parameters. Baseline is 4 for zero parameters, as the description doesn't need to compensate for gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Returns the list of directories that this server is allowed to access.' It specifies the verb ('Returns') and resource ('list of directories'), making the function unambiguous. However, it doesn't differentiate from sibling tools like 'list_directory' or 'directory_tree', which also list directories but with different scopes or formats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention any prerequisites, context for usage, or exclusions. With sibling tools like 'list_directory' that list directory contents, there's no indication of how this tool differs in application, 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.

list_directoryA

Get a detailed listing of files and directories in a path.

Args:
    path: Path to the directory
    include_hidden: Whether to include hidden files (starting with .)
    pattern: Optional glob pattern to filter entries
    format: Output format ('text' or 'json')
    ctx: MCP context

Returns:
    Formatted directory listing
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
include_hiddenNo
patternNo
formatNotext

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks critical behavioral details. It mentions output formatting but doesn't disclose pagination, rate limits, error conditions, or what 'detailed listing' includes (e.g., file sizes, permissions). For a read operation with 4 parameters, this leaves significant gaps in understanding tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose statement followed by parameter explanations. Every sentence adds value, though the 'ctx: MCP context' line is redundant since MCP context is implicit. Overall efficient with minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters with no schema descriptions and no output schema, the description does well on parameters but lacks completeness. It doesn't explain return format details, error handling, or behavioral constraints. For a directory listing tool with filtering options, more context about output structure and limitations would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial meaning beyond the 0% schema coverage. It explains each parameter's purpose: path as directory location, include_hidden for dot-files, pattern as glob filter, and format as output type. This fully compensates for the schema's lack of descriptions, making parameters understandable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb ('Get a detailed listing') and resource ('files and directories in a path'), distinguishing it from siblings like directory_tree (hierarchical view) or search_files (content-based). It precisely defines what the tool does without being vague or tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the parameter explanations (e.g., pattern for filtering, format for output), but doesn't explicitly state when to use this tool versus alternatives like list_allowed_directories or directory_tree. There's no guidance on prerequisites or exclusions, leaving usage context to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_fileC

Move or rename files and directories.

Args:
    source: Source path
    destination: Destination path
    overwrite: Whether to overwrite existing destination
    ctx: MCP context

Returns:
    Success or error message
ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
destinationYes
overwriteNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions 'overwrite' behavior but doesn't explain what happens when overwrite=false and destination exists, whether the operation is atomic, if it preserves metadata/permissions, or what specific error messages might be returned. For a file system mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with clear sections (purpose, args, returns). The first sentence states the core functionality, followed by parameter documentation. However, the inclusion of 'ctx: MCP context' in the args section seems extraneous since it doesn't appear in the input schema, slightly reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a file system mutation tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is insufficient. It doesn't explain error conditions, return value format beyond 'success or error message', path semantics, or how renaming versus moving differs. The mismatch between described parameters (4 including 'ctx') and schema parameters (3) creates confusion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists all three parameters with brief explanations, adding meaning beyond the bare schema. However, it doesn't explain path format requirements, what 'ctx' parameter does (appears to be an undocumented fourth parameter in the description), or provide examples. The coverage partially compensates but remains incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Move or rename files and directories.' This is a specific verb+resource combination that distinguishes it from siblings like 'copy_file' (if it existed) or 'delete_file'. However, it doesn't explicitly differentiate from similar operations in the sibling list, which includes file manipulation tools like edit_file, write_file, and create_directory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like 'edit_file', 'write_file', and 'create_directory', there's no indication of when moving/renaming is appropriate versus editing content or creating new files. No prerequisites, exclusions, or alternative tools are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_fileA

Read the complete contents of a file.

Args:
    path: Path to the file
    encoding: File encoding (default: utf-8)
    ctx: MCP context

Returns:
    File contents as a string
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
encodingNoutf-8

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the core behavior (reading complete contents) and mentions a default encoding, but doesn't address important behavioral aspects like error handling (e.g., what happens if file doesn't exist), performance implications for large files, or security constraints. It adds some context but leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, args, returns) and uses only essential sentences. However, the 'ctx: MCP context' parameter mention is redundant since it's not in the actual input schema, slightly reducing efficiency. Overall, it's appropriately sized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (file reading with encoding), no annotations, and no output schema, the description is minimally adequate. It covers basic purpose and parameters but lacks important context about return format details (e.g., string format for binary files), error scenarios, and performance considerations that would be needed for robust agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It successfully explains both parameters: 'path' as 'Path to the file' and 'encoding' as 'File encoding (default: utf-8)'. This adds essential meaning beyond the bare schema, though it doesn't elaborate on path format requirements or valid encoding values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Read the complete contents') and resource ('of a file'), distinguishing it from siblings like read_file_lines (partial reading) or get_file_info (metadata only). The verb+resource combination is precise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading entire file contents, but doesn't explicitly state when to choose this over alternatives like read_file_lines (for specific lines) or head_file/tail_file (for beginning/end). It provides clear context but lacks explicit sibling differentiation or exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_file_linesA

Read specific lines from a text file.

Args:
    path: Path to the file
    offset: Line offset (0-based, starts at first line)
    limit: Maximum number of lines to read (None for all remaining)
    encoding: Text encoding (default: utf-8)
    ctx: MCP context

Returns:
    File content and metadata
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
offsetNo
limitNo
encodingNoutf-8

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but lacks critical behavioral details: no mention of file size limits, error handling (e.g., for missing files or invalid encodings), performance characteristics, or what 'metadata' in the return includes. For a file I/O tool with zero annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and concise: a clear purpose statement followed by well-organized parameter explanations and return information. Every sentence earns its place, with no redundant or vague language. The information is front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (file I/O with line selection), no annotations, and no output schema, the description is partially complete. It excels at parameter documentation but lacks behavioral context (error handling, limits) and details about the return structure ('metadata' is vague). For a tool with these characteristics, more completeness would be expected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides comprehensive parameter semantics beyond the 0% schema description coverage. It explains each parameter's purpose: 'path' as file location, 'offset' as 0-based line starting point, 'limit' as maximum lines (with None meaning all remaining), and 'encoding' as text encoding with default. This fully compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Read specific lines') and resource ('from a text file'), distinguishing it from siblings like 'read_file' (which reads entire files) and 'head_file'/'tail_file' (which read from beginning/end). The verb+resource combination is precise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context through the parameter explanations (offset, limit), suggesting this tool is for selective line reading rather than full-file reading. However, it doesn't explicitly state when to choose this over alternatives like 'read_file', 'head_file', or 'tail_file', nor does it mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_multiple_filesB

Read multiple files at once.

Args:
    paths: List of file paths to read
    encoding: File encoding (default: utf-8)
    ctx: MCP context

Returns:
    Dictionary mapping file paths to contents or error messages
ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYes
encodingNoutf-8

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return format (dictionary mapping paths to contents/errors) which is helpful, but doesn't address important behavioral aspects like error handling strategy (does it fail fast or continue?), performance implications of reading many files, memory considerations, or whether it respects file permissions. The description provides basic output information but lacks comprehensive behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear purpose statement followed by organized sections for Args and Returns. Each sentence earns its place by providing essential information without redundancy. The formatting with clear section headers makes it easy to parse while maintaining brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters with 0% schema coverage and no output schema, the description does an adequate job explaining parameters and return format. However, for a file reading tool with many sibling alternatives and no annotations, it should ideally address more behavioral aspects like error handling strategy, performance considerations, and clearer differentiation from similar tools. The description meets minimum viability but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant value beyond the input schema, which has 0% description coverage. It explains that 'paths' is a 'List of file paths to read' and 'encoding' is 'File encoding (default: utf-8)', providing clear semantic meaning. For the 'ctx' parameter, it simply states 'MCP context' without elaboration, but this is likely a standard parameter. The description compensates well for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Read multiple files at once.' This specifies the verb ('read') and resource ('multiple files'), distinguishing it from the sibling 'read_file' which handles single files. However, it doesn't explicitly differentiate from other reading-related siblings like 'read_file_lines' or 'head_file/tail_file'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context through its name and purpose statement - it's for reading multiple files simultaneously rather than one at a time. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'read_file' for single files or 'grep_files' for searching content. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_filesA

Recursively search for files and directories matching a pattern.

Args:
    path: Starting directory
    pattern: Glob pattern to match against filenames
    recursive: Whether to search subdirectories
    exclude_patterns: Optional patterns to exclude
    content_match: Optional text to search within files
    max_results: Maximum number of results to return
    format: Output format ('text' or 'json')
    ctx: MCP context

Returns:
    Search results
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
patternYes
recursiveNo
exclude_patternsNo
content_matchNo
max_resultsNo
formatNotext

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the recursive nature and parameter purposes, it doesn't disclose important behavioral traits like whether this is a read-only operation, what permissions are required, how errors are handled, whether it follows symlinks, or what happens when max_results is exceeded. The description provides basic operational context but misses critical behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose statement followed by organized parameter explanations. Every sentence earns its place, though the 'Returns: Search results' line is somewhat redundant given the tool name and could be more specific. The formatting with clear sections (Args, Returns) enhances readability without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (7 parameters, file system operations) and complete lack of annotations and output schema, the description provides adequate but incomplete coverage. It explains parameters well but misses behavioral context about permissions, error handling, and result formatting details. For a search tool with no structured safety or output information, the description should do more to compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by providing clear semantic explanations for all 7 parameters. Each parameter gets a concise explanation that adds meaning beyond the bare schema: 'path: Starting directory', 'pattern: Glob pattern to match against filenames', 'recursive: Whether to search subdirectories', etc. The description transforms the parameter list from just names to meaningful usage guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('recursively search for files and directories') and resources ('matching a pattern'), distinguishing it from siblings like list_directory (simple listing), grep_files (content-only search), or find_large_files (size-based filtering). The description explicitly mentions both file and directory search capabilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context through the mention of 'recursively search' and parameter explanations, but doesn't explicitly state when to use this tool versus alternatives like grep_files (for content-only searches) or list_directory (for simple directory listing without pattern matching). No explicit when-not-to-use guidance or sibling tool comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tail_fileA

Read the last N lines of a text file.

Args:
    path: Path to the file
    lines: Number of lines to read (default: 10)
    encoding: Text encoding (default: utf-8)
    ctx: MCP context

Returns:
    Last N lines of the file
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
linesNo
encodingNoutf-8

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the core behavior (reading last lines) and default values, but doesn't mention error conditions (e.g., file not found, insufficient permissions), performance characteristics, or what happens with very large files. It adequately describes the basic operation but lacks richer behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured: a clear purpose statement followed by organized sections for Args and Returns. Every sentence earns its place with no wasted words, and the information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no annotations, and no output schema, the description does well by explaining parameters and return values. However, for a file I/O tool, it could mention error handling or security considerations. It's mostly complete but has minor gaps in behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining all 3 parameters: path ('Path to the file'), lines ('Number of lines to read'), and encoding ('Text encoding'), including their default values. This adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Read the last N lines') and resource ('of a text file'), distinguishing it from sibling tools like head_file (which reads first lines) and read_file (which reads entire file). The purpose is unambiguous and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (reading end of files) but doesn't explicitly state when to use this vs. alternatives like head_file or read_file_lines. However, the function name 'tail_file' and description make the intended use case reasonably clear without explicit exclusions or comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_fileA

Create a new file or overwrite an existing file with new content.

Args:
    path: Path to write to
    content: Content to write
    encoding: File encoding (default: utf-8)
    create_dirs: Whether to create parent directories if they don't exist
    ctx: MCP context

Returns:
    Success or error message
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
encodingNoutf-8
create_dirsNo

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the tool can 'overwrite an existing file' which implies destructive behavior, but doesn't disclose critical details like permission requirements, whether overwrites are reversible, error handling for invalid paths, or rate limits. The return value description ('Success or error message') is vague about format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear purpose statement followed by well-organized parameter and return value sections. Every sentence adds value without redundancy, and information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides good parameter semantics but lacks sufficient behavioral context for a destructive file operation. It doesn't explain the return format, error conditions, or security implications, leaving gaps in completeness for a tool that modifies files.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides clear semantic explanations for all 4 parameters beyond their schema titles, including default values and purposes (e.g., 'encoding: File encoding (default: utf-8)', 'create_dirs: Whether to create parent directories if they don't exist'). This compensates well for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Create a new file or overwrite an existing file') and resource ('file with new content'), distinguishing it from sibling tools like read_file, edit_file, and move_file. It precisely defines the tool's function without being tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for file creation or overwriting but doesn't explicitly state when to use this tool versus alternatives like edit_file or create_directory. No guidance is provided on prerequisites, exclusions, or specific scenarios where this tool is preferred over others.

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.

  1. 1 tool updatev1.0.0
    • Addedlist_allowed_directories
  2. 20 tool updates
    • First observedcalculate_directory_size
    • First observedcompare_files
    • First observedcreate_directory
    • First observeddirectory_tree
    • First observededit_file
    • First observededit_file_at_line
    • First observedfind_duplicate_files
    • First observedfind_empty_directories
    • First observedfind_large_files
    • First observedget_file_info
    • First observedgrep_files
    • First observedhead_file
    • First observedlist_directory
    • First observedmove_file
    • First observedread_file
    • First observedread_file_lines
    • First observedread_multiple_files
    • First observedsearch_files
    • First observedtail_file
    • First observedwrite_file

TDQS

A3.7/5.0

Scored across 21 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with minimal overlap. For example, read_file reads entire files while head_file reads first lines, and edit_file makes line-based edits while edit_file_at_line targets specific lines. The find_* tools (duplicate_files, empty_directories, large_files) each target different search criteria, preventing confusion.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern with snake_case throughout. Examples include calculate_directory_size, compare_files, create_directory, and list_directory. There are no deviations in naming conventions, making the tool set predictable and easy to understand.

Tool Count4/5

With 21 tools, the count is slightly high but reasonable for a filesystem server covering a broad range of operations. It includes core file operations (read, write, move), directory management, search utilities, and specialized tools like duplicate detection. While comprehensive, it might feel heavy but remains well-scoped for the domain.

Completeness5/5

The tool set provides complete coverage for filesystem operations, including CRUD (create_directory, write_file, read_file, move_file, delete implied via move/overwrite), search (grep_files, search_files), metadata (get_file_info), and utilities (compare_files, edit_file). There are no obvious gaps, and tools support common workflows like file editing, directory traversal, and content analysis.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that allows AI models to safely access and interact with local file systems, enabling reading file contents, listing directories, and retrieving file metadata.
    6 npm
    10
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    A Model Context Protocol server that extends AI capabilities by providing file system access and management functionalities to Claude or other AI assistants.
    164 npm
    5
    -
  • A
    license
    A
    quality
    C
    maintenance
    A secure Model Context Protocol server that provides controlled filesystem access within predefined directories, enabling AI models to perform file and directory operations with strict path validation.
    16
    5 npm
    7
    MIT