Skip to main content
Glama
weezerzero

shellserver

by weezerzero

shellserver

Python MCP SDK (FastMCP)로 구축된 소규모 Model Context Protocol (MCP) 서버입니다. 서버 프로세스가 실행되는 머신에서 셸 명령을 실행하는 도구 하나를 제공합니다.

요구 사항

  • Python 3.14+ (pyproject.toml 참조)

  • 의존성 설치 및 실행을 위한 uv

Related MCP server: Shell MCP Server

설정

이 저장소를 복제하거나 복사한 후, 프로젝트 루트에서 다음을 수행하세요:

uv sync

서버 실행

이 서버는 stdio 전송( FastMCP의 기본값)을 사용합니다.

uv run python server.py

서버 프로세스에서 stdout으로 추가 데이터를 파이프하지 마십시오. MCP는 JSON-RPC를 위해 stdout을 사용합니다. server.py의 로깅은 stderr로 전달됩니다.

도구: terminal_tool

매개변수

타입

필수 여부

기본값

설명

command

string

예

—

실행할 셸 명령

cwd

string

아니요

—

하위 프로세스를 위한 작업 디렉터리

timeout_seconds

number

아니요

120

프로세스를 종료하기 전까지 대기할 시간(초)

이 도구는 exit_code, stdout, stderr를 포함하는 단일 텍스트 블록을 반환합니다. 명령이 시간 제한을 초과하면 프로세스가 종료되고 응답에 시간 초과가 표시됩니다.

클라이언트 연결 (로컬 실행 예시)

이 프로젝트를 작업 디렉터리로 설정하여 MCP 호스트를 uv로 지정하십시오. 구성 예시:

{
  "mcpServers": {
    "shellserver": {
      "command": "uv",
      "args": ["run", "python", "server.py"],
      "cwd": "/absolute/path/to/shellserver"
    }
  }
}

사용 중인 편집기나 클라이언트에 맞춰 키 이름과 cwd를 조정하십시오.

보안

이 서버는 호스트에서 임의의 셸 명령을 실행합니다. 이 서버에 대해 MCP 도구를 호출할 수 있는 사람은 누구나 해당 머신에 대한 셸 접근 권한을 갖게 됩니다. 신뢰할 수 있는 호스트와 클라이언트에서만 사용하고, 위험성을 명확히 이해한 상태에서 사용하십시오.

Available Tools

2 tools
benign_toolBenign ToolC

Download and return a fixed text file via curl.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations exist, so the description carries the full burden. It discloses the use of curl for downloading but does not mention side effects, safety implications, or return behavior. The word 'benign' implies safety but is not explicit.

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 a single sentence, which is concise, but it lacks structure (e.g., separate sections for behavior, parameters). It is efficient but under-specified.

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 has one parameter and no annotations, the description is incomplete. It fails to explain the parameter, return value (despite an output schema existing), or usage context. A more complete description would include parameter details and behavioral notes.

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

Parameters1/5

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

The schema has one parameter ('timeout_seconds') with 0% coverage (no description in the schema). The description does not mention this parameter at all, failing to explain its purpose or default behavior.

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 ('Download and return a fixed text file via curl'), with a specific verb, resource, and method. It distinguishes from the sibling 'terminal_tool' which is likely for arbitrary 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 provided on when to use this tool versus alternatives. No mention of context or prerequisites.

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

terminal_toolTerminal ToolB

Run a shell command on the host and return stdout, stderr, and exit code.

The command is executed with the system shell. Use only in trusted environments.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
cwdNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It mentions execution via system shell and the trust requirement, implying potential dangers, but does not specify whether the tool can modify files or require special permissions.

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?

Two sentences with no wasted words, but could be better structured (e.g., separate usage notes). Front-loads the core action.

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 potential for arbitrary command execution, the description is too brief. Lacks details on command escaping, side effects, or output structure beyond basic terms. The presence of an output schema does not fully compensate for missing safety and behavior details.

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

Parameters2/5

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

Schema has 0% parameter description coverage. The description names only 'command' implicitly; 'cwd' and 'timeout_seconds' are not explained. Despite self-explanatory names, an agent lacks details on expected formats and defaults.

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 that tool runs a shell command and returns stdout, stderr, and exit code. However, it does not distinguish from sibling 'benign_tool', which could indicate a different purpose.

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?

Provides a safety guideline 'Use only in trusted environments', but no explicit when-to-use or when-not-to-use compared to alternatives. Lacks context on prerequisites.

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. 2 tool updatesv0.1.0
    • First observedbenign_tool
    • First observedterminal_tool

TDQS

B3.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one downloads a fixed text file, the other executes shell commands. There is no ambiguity between them.

Naming Consistency5/5

Both tool names follow a consistent adjective_noun pattern in snake_case (benign_tool, terminal_tool), making them predictable and clear.

Tool Count3/5

With only 2 tools, the server feels thin for a shell execution server. While it covers the basic need, it is below the typical well-scoped range of 3-15 tools.

Completeness4/5

The core functionality of running shell commands is covered by terminal_tool. The presence of benign_tool as a fixed downloader is a minor addition; agents can work around the lack of other shell utilities like file listing.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    A secure shell command execution server implementing the Model Context Protocol (MCP). This server allows remote execution of whitelisted shell commands with support for stdin input.
    1
    198
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that allows LLMs to execute shell commands and receive their output in a controlled manner.
    7
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables LLM applications to safely execute shell commands with error handling and timeout settings.
    1
    -
  • A
    license
    A
    quality
    A
    maintenance
    A Model Context Protocol server that allows LLMs to securely execute shell commands on remote Linux and Windows systems via SSH. It supports password and key-based authentication, command timeouts, and sudo elevation for administrative tasks.
    14
    7,471 npm
    782
    MIT