Skip to main content
Glama
GongRzhe

Terminal Controller for MCP

by GongRzhe

MCP용 터미널 컨트롤러

표준화된 인터페이스를 통해 안전한 터미널 명령 실행, 디렉토리 탐색 및 파일 시스템 작업을 가능하게 하는 MCP(모델 컨텍스트 프로토콜) 서버입니다.

대장간 배지

특징

  • 명령 실행 : 시간 초과 제어 및 포괄적인 출력 캡처를 통해 터미널 명령 실행

  • 디렉토리 관리 : 직관적인 서식으로 디렉토리 콘텐츠를 탐색하고 나열합니다.

  • 보안 조치 : 위험한 명령 및 작업에 대한 내장형 보호 장치

  • 명령 기록 : 최근 명령 실행을 추적하고 표시합니다.

  • 크로스 플랫폼 지원 : Windows 및 UNIX 기반 시스템 모두에서 작동합니다.

  • 파일 작업 : 행 수준 정밀도로 파일 내용을 읽고, 쓰고, 업데이트하고, 삽입하고, 삭제합니다.

Related MCP server: MCP Server

설치

Smithery를 통해 설치

Smithery를 통해 Claude Desktop용 Terminal Controller를 자동으로 설치하려면:

지엑스피1

필수 조건

  • 파이썬 3.11+

  • MCP 호환 클라이언트(예: Claude Desktop)

  • UV/UVX 설치됨(선택 사항, UVX 방식의 경우)

방법 1: PyPI 설치(권장)

PyPI에서 직접 패키지를 설치하세요:

pip install terminal-controller

또는 UV를 사용하는 것을 선호하는 경우:

uv pip install terminal-controller

방법 2: 소스에서

소스에서 설치를 선호하는 경우:

  1. 이 저장소를 복제하세요:

    git clone https://github.com/GongRzhe/terminal-controller-mcp.git
    cd terminal-controller-mcp
  2. 설치 스크립트를 실행합니다.

    python setup_mcp.py

클라이언트 구성

클로드 데스크탑

Claude Desktop에서 Terminal Controller를 사용하도록 구성하는 방법은 두 가지가 있습니다.

옵션 1: UVX 사용(권장)

Claude Desktop 구성 파일에 다음을 추가하세요.

"terminal-controller": {
  "command": "uvx",
  "args": ["terminal_controller"]
}

옵션 2: Python 직접 사용

"terminal-controller": {
  "command": "python",
  "args": ["-m", "terminal_controller"]
}

구성 경로는 운영 체제에 따라 다릅니다.

  • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json

  • 윈도우 : %APPDATA%\Claude\claude_desktop_config.json

커서

커서의 경우 Claude Desktop과 비슷한 구성 설정을 사용합니다.

다른 MCP 클라이언트

다른 클라이언트의 경우 외부 MCP 서버를 구성하는 방법에 대한 설명서를 참조하세요.

용법

구성이 완료되면 MCP 클라이언트를 통해 자연어를 사용하여 터미널과 상호 작용할 수 있습니다.

  • "현재 디렉토리에서 ls -la 명령을 실행하세요"

  • "내 문서 폴더로 이동"

  • "내 다운로드 디렉토리의 내용을 보여주세요"

  • "최근 명령 내역을 보여주세요"

  • "config.json의 내용을 읽어보세요"

  • "script.py 파일의 5번째 줄을 'print("Hello World")'로 업데이트하세요."

  • "로그 파일에서 10-15번째 줄을 삭제하세요"

  • "텍스트 파일의 시작 부분에 새 줄을 삽입합니다"

API 참조

터미널 컨트롤러는 다음과 같은 MCP 도구를 제공합니다.

execute_command

터미널 명령을 실행하고 결과를 반환합니다.

매개변수:

  • command : 실행할 명령줄 명령

  • timeout : 명령 시간 초과(초) (기본값: 30)

보고:

  • stdout, stderr 및 실행 상태를 포함한 명령 실행 출력

get_command_history

최근 명령 실행 기록을 가져옵니다.

매개변수:

  • count : 반환할 최근 명령 수(기본값: 10)

보고:

  • 포맷된 명령 기록 레코드

get_current_directory

현재 작업 디렉토리를 가져옵니다.

보고:

  • 현재 작업 디렉토리의 경로

change_directory

현재 작업 디렉토리를 변경합니다.

매개변수:

  • path : 전환할 디렉토리 경로

보고:

  • 작업 결과 정보

list_directory

지정된 디렉토리에 있는 파일과 하위 디렉토리를 나열합니다.

매개변수:

  • path : 내용을 나열할 디렉토리 경로(기본값: 현재 디렉토리)

보고:

  • 디렉토리 및 파일 아이콘으로 포맷된 디렉토리 내용 목록

write_file

덮어쓰기 또는 추가 옵션을 사용하여 파일에 내용을 씁니다.

매개변수:

  • path : 파일 경로

  • content : 쓸 내용

  • mode : 쓰기 모드('덮어쓰기' 또는 '추가', 기본값: '덮어쓰기')

보고:

  • 쓰기 성공 여부 검증을 포함한 작업 결과 정보

read_file

선택적으로 행을 선택하여 파일에서 콘텐츠를 읽습니다.

매개변수:

  • path : 파일 경로

  • start_row : 읽을 시작 행(0부터 시작, 선택 사항)

  • end_row : 읽을 마지막 행(0부터 시작, 포함, 선택 사항)

보고:

  • 파일 내용 또는 선택한 줄

insert_file_content

파일의 특정 행에 내용을 삽입합니다.

매개변수:

  • path : 파일 경로

  • content : 삽입할 내용

  • row : 삽입할 행 번호(0부터 시작, 선택 사항)

  • rows : 삽입할 행 번호 목록(0부터 시작, 선택 사항)

보고:

  • 작업 결과 정보

delete_file_content

파일의 특정 행의 내용을 삭제합니다.

매개변수:

  • path : 파일 경로

  • row : 삭제할 행 번호(0부터 시작, 선택 사항)

  • rows : 삭제할 행 번호 목록(0부터 시작, 선택 사항)

보고:

  • 작업 결과 정보

update_file_content

파일의 특정 행의 내용을 업데이트합니다.

매개변수:

  • path : 파일 경로

  • content : 지정된 행에 배치할 새 콘텐츠

  • row : 업데이트할 행 번호(0부터 시작, 선택 사항)

  • rows : 업데이트할 행 번호 목록(0부터 시작, 선택 사항)

보고:

  • 작업 결과 정보

보안 고려 사항

터미널 관리자는 여러 가지 보안 조치를 구현합니다.

  • 장시간 실행되는 명령을 방지하기 위한 시간 초과 제어

  • 위험한 명령어 블랙리스트(rm -rf /, format, mkfs)

  • 적절한 오류 처리 및 명령 실행 격리

  • 특별히 허가된 명령 및 디렉토리에만 액세스

제한 사항

  • 시간 초과 기간 내에 완료된 명령만 결과를 반환합니다.

  • 기본적으로 서버는 서버를 실행하는 사용자와 동일한 파일 시스템 권한에 액세스할 수 있습니다.

  • 터미널 인터페이스의 비대화적 특성으로 인해 일부 대화형 명령이 예상대로 작동하지 않을 수 있습니다.

문제 해결

문제가 발생하는 경우:

  1. Python 버전이 3.11 이상인지 확인하세요.

  2. Claude Desktop 구성이 올바른지 확인하세요

  3. 오류를 확인하려면 터미널 컨트롤러를 직접 실행해보세요.

    python -m terminal_controller
  4. UVX 관련 문제의 경우 다음을 시도해 보세요.

    uvx terminal_controller
  5. 연결 오류가 있는지 MCP 클라이언트의 로그를 검토하세요.

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

특허

MIT

Available Tools

10 tools
change_directoryC
Change current working directory

Args:
    path: Directory path to switch to

Returns:
    Operation result information
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the basic action without mentioning side effects (e.g., permission requirements, error handling, or navigational boundaries). The return value 'Operation result information' is vague.

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

Conciseness4/5

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

The description is short and straightforward, with a clear header and an Args section. It avoids unnecessary text, though placing the key purpose first is good practice but not explicitly front-loaded due to the structure.

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 lack of annotations and output schema, the description should provide more context about return values, error cases, and interaction with sibling tools. It does not mention that other tools like get_current_directory complement this operation.

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 schema has 0% parameter description coverage, so the description compensates slightly by naming the parameter 'path' and adding 'Directory path to switch to'. However, it does not specify path types (absolute/relative), validation, or format, leaving ambiguity beyond the parameter name.

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 'Change current working directory', which is a specific verb+resource (change directory) that directly conveys the action. However, it does not explicitly differentiate from sibling tools like execute_command or list_directory, though the purpose is unambiguous.

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 such as get_current_directory or execute_command. The description does not mention prerequisites or scenarios where this tool is appropriate.

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

delete_file_contentA
Delete content at specific row(s) from a file

Args:
    path: Path to the file
    row: Row number to delete (0-based, optional)
    rows: List of row numbers to delete (0-based, optional)
    substring: If provided, only delete this substring within the specified row(s), not the entire row (optional)

Returns:
    Operation result information
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
rowNo
rowsNo
substringNo

TDQS

A3.6/5.0
Behavior3/5

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

The description discloses that substring deletion only removes the substring within the row, not the entire row. However, with no annotations, it fails to mention destructive nature, error handling, or index behavior (e.g., shifting after deletion).

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 structured with Args and Returns, and each parameter is explained in a single line. It is not overly verbose, though it could omit 'Args:' and 'Returns:' for brevity.

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 destructive tool with no annotations and no output schema, the description omits important details: error cases (e.g., invalid row), behavior when both row and rows are provided, and return value. This leaves significant gaps for an agent.

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?

Schema coverage is 0%, but the description adds full meaning: row is 0-based integer, rows is list, substring optional for partial deletion. This compensates entirely for the missing schema explanations.

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 deletes content at specific rows from a file, using a specific verb and resource. It distinguishes from siblings like update_file_content and insert_file_content by focusing on deletion.

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 explicit guidance on when to use this tool versus alternatives such as update_file_content or write_file. The description lacks context for choosing between row deletion and substring deletion.

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

execute_commandB
Execute terminal command and return results

Args:
    command: Command line command to execute
    timeout: Command timeout in seconds, default is 30 seconds

Returns:
    Output of the command execution
ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
timeoutNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided. The description lacks disclosure of safety, side effects, or return format. For a command execution tool, this is insufficient 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?

Very concise with a clear Args/Returns structure. Every sentence is meaningful and there is no wasted text.

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 potentially dangerous tool, the description is too minimal. It lacks information on error handling, return format, timeout behavior, and prerequisites.

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 coverage is 0%, but the description adds basic meaning: 'command' is a command line string, 'timeout' is in seconds with default 30. This helps but doesn't specify constraints or format details.

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: executing terminal commands and returning results. It distinguishes itself from sibling tools like file operations and directory navigation.

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 on when to use this tool versus alternatives. Sibling tools are listed but the description gives no context for choosing execute_command over them.

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

get_command_historyB
Get recent command execution history

Args:
    count: Number of recent commands to return

Returns:
    Formatted command history record
ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided; description only states it gets history without disclosing data freshness, persistence, or side effects. Unclear what 'recent' means.

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?

Concise single sentence followed by technical docstring. Front-loaded main action with minimal redundancy.

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?

No output schema; description says returns 'Formatted command history record' which is vague. Missing details on whether it returns a list, string, or structured data.

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?

Adds explanation for 'count' parameter beyond schema, specifying it controls how many commands to return. Schema coverage is 0%, so this is helpful, though could be more precise.

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?

Clearly states it retrieves recent command execution history. Distinct from sibling execute_command which runs commands.

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 on when to use this tool versus alternatives like execute_command. Lacks context about prerequisites or scope.

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

get_current_directoryA
Get current working directory

Returns:
    Path of current working directory
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so the description bears full burden. It only states the basic function and return value but does not disclose any behavioral traits like permissions, failure modes, or side effects.

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

Conciseness5/5

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

Extremely concise: two sentences, no wasted words. The purpose is front-loaded, and every sentence adds value.

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

Completeness5/5

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

For a tool with no parameters and no output schema, this description is complete. It states what the tool does and what it returns, which is sufficient for such a simple operation.

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?

No parameters exist, and schema coverage is 100%. The description adds no parameter semantics beyond the schema, but according to rules a zero-parameter tool gets a baseline of 4.

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 'Get current working directory' which is a specific verb+resource. It distinguishes itself from sibling tools like change_directory (which changes directory) and list_directory (which lists contents).

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 provided on when to use this tool versus alternatives. There is no mention of context or exclusions, leaving the agent to infer usage from the name alone.

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

insert_file_contentB
Insert content at specific row(s) in a file

Args:
    path: Path to the file
    content: Content to insert (string or JSON object)
    row: Row number to insert at (0-based, optional)
    rows: List of row numbers to insert at (0-based, optional)

Returns:
    Operation result information
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
rowNo
rowsNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present. The description omits behavioral details such as what happens if the file does not exist, if the row index is out of range, or whether the operation can be reversed. The return value is vaguely described as 'Operation result information'.

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 short and begins with the main purpose, then lists parameters in a clear format. However, the docstring-style repetition of parameter info could be more streamlined.

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 lack of annotations and output schema, the description should provide more context about return values, error behavior, and edge cases. It only covers basic parameter semantics, leaving gaps in understanding how the tool behaves in practice.

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 by explaining each parameter's purpose, including that 'row' and 'rows' are 0-based. It also notes that 'content' can be a string or JSON object, adding value beyond the schema's type string.

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 action ('Insert content') and the resource ('at specific row(s) in a file'). This is distinct from sibling tools like 'write_file' (overwrite) or 'update_file_content' (modify existing content).

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 over alternatives such as 'write_file' or 'update_file_content'. It does not mention prerequisites or scenarios where insertion is appropriate.

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

list_directoryA
List files and subdirectories in the specified directory

Args:
    path: Directory path to list contents, default is current directory

Returns:
    List of directory contents
ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, and the description only states the basic operation. It does not disclose behaviors such as whether hidden files are listed, how errors (e.g., invalid path) are handled, or if it follows symlinks. For a simple tool, this is adequate but not thorough.

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 concise and front-loaded, with a clear statement of purpose followed by parameter details. Every sentence is informative, though the Args/Returns format is somewhat verbose for such a simple tool.

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 simplicity and the lack of output schema, the description adequately covers the input and output. It explains the single parameter and the return value (list of contents), which is sufficient for an agent to use the tool correctly.

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 meaning to the 'path' parameter by explaining its purpose and default value, which is not fully conveyed by the schema alone (which only specifies type and nullability). Schema coverage is 0%, so the description compensates well.

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 verb 'list' and the resource 'files and subdirectories' in a specified directory, which distinguishes it from sibling tools like read_file or write_file.

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 change_directory or read_file. It does not mention when not to use it or any prerequisites.

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

read_fileA
Read content from a file with optional row selection

Args:
    path: Path to the file
    start_row: Starting row to read from (0-based, optional)
    end_row: Ending row to read to (0-based, inclusive, optional)
    as_json: If True, attempt to parse file content as JSON (optional)

Returns:
    File content or selected lines, optionally parsed as JSON
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
start_rowNo
end_rowNo
as_jsonNo

TDQS

A4.2/5.0
Behavior4/5

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

Although no annotations are present, the description explains that the tool returns file content (optionally as JSON) and selects rows. It implicitly indicates a read-only operation, which is sufficient for this straightforward 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 concise, using a clean Args/Returns format. Every sentence adds value, with no redundancy or unnecessary details.

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

Completeness5/5

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

Given no output schema, the description adequately explains return values (file content or selected lines, optionally as JSON). All four parameters are covered, and the tool's simple behavior is fully described.

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 input schema has 0% description coverage, but the description compensates by detailing each parameter's purpose, type, and defaults (e.g., 0-based rows, optional as_json). This fully clarifies parameter usage.

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 'Read content from a file' specifying the verb and resource. It is distinct from sibling tools like write, delete, or execute commands, making its purpose unambiguous.

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 relative to alternatives such as list_directory or execute_command. The description lacks context on when reading a file is appropriate.

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

update_file_contentA
Update content at specific row(s) in a file

Args:
    path: Path to the file
    content: New content to place at the specified row(s)
    row: Row number to update (0-based, optional)
    rows: List of row numbers to update (0-based, optional)
    substring: If provided, only replace this substring within the specified row(s), not the entire row

Returns:
    Operation result information
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
rowNo
rowsNo
substringNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description discloses that it updates content at specific rows, optionally only replacing a substring. It does not explicitly state that the operation is destructive or what happens to other rows, but the 'update' verb implies mutation. This is fairly transparent but could be more explicit.

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 structured as a concise docstring with clear Args and Returns sections. Each parameter is explained in a single line, and there is no wasted verbiage. It efficiently conveys the necessary information.

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?

The description covers all parameters and returns 'Operation result information', which is generic. However, it does not specify what happens when row or rows are omitted (e.g., does it update the entire file?), nor does it mention file existence or error conditions. This leaves some ambiguity for the agent.

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 JSON schema has no descriptions (0% coverage), so the description fully compensates by explaining each parameter: path, content, row (0-based optional), rows (list optional), and substring (optional replacement). This adds significant meaning beyond the 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 'Update content at specific row(s) in a file', which specifies the verb and resource. It distinguishes from siblings like delete, insert, or write by targeting specific rows, making it clear when this tool is appropriate.

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 a clear action but does not explicitly state when to use this tool over alternatives like write_file or insert_file_content. However, the focus on row-level updates implies its use case, and the description is adequate for an agent to infer appropriate usage.

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

write_fileB
Write content to a file

Args:
    path: Path to the file
    content: Content to write (string or JSON object)
    mode: Write mode ('overwrite' or 'append')

Returns:
    Operation result information
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
modeNooverwrite

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It mentions write mode (overwrite/append) but fails to clarify file creation, directory creation, permissions, error handling, or character encoding.

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?

Concise docstring with clear sections. Each sentence provides value, though the Returns section is vague. No wasted words.

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 output schema and low schema coverage, the description covers the basics but lacks details on return values, edge cases (e.g., path exists, directory missing, large files). Adequate but incomplete.

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 has no parameter descriptions (0% coverage). The description compensates by explaining each Arg, noting content can be string or JSON object, and listing mode options.

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 'Write content to a file' with a specific verb and resource. It effectively distinguishes from sibling tools like read_file, delete_file_content, etc.

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 on when to use this tool vs alternatives (e.g., append vs overwrite, or use insert_file_content for inline edits). Lacks any when-to-use or when-not-to-use context.

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. 10 tool updates
    • First observedchange_directory
    • First observeddelete_file_content
    • First observedexecute_command
    • First observedget_command_history
    • First observedget_current_directory
    • First observedinsert_file_content
    • First observedlist_directory
    • First observedread_file
    • First observedupdate_file_content
    • First observedwrite_file

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: directory change/get/list, file read/write/insert/update/delete, command execution, and history retrieval. No overlapping functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case, using imperative verbs like change, delete, execute, get, insert, list, read, update, write. The naming is predictable and uniform.

Tool Count5/5

With 10 tools, the set is well-scoped for a terminal controller, providing essential file and directory operations plus command execution without oversaturation.

Completeness4/5

The surface covers core file CRUD (create via write, read, update, delete) and directory navigation, plus command execution and history. Missing directory creation/deletion and file copy/move, but these are minor gaps for typical agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server allowing LLMs to execute commands on Windows terminals, including local shells (cmd, PowerShell, bash) and remote SSH connections with a 3-level security model.
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    A secure MCP server for shell operations, terminal management, and process control, enabling AI assistants to safely execute commands and manage interactive sessions.
    13
    172 npm
    6
    MIT