Skip to main content
Glama
coderman002

mcp-tool-server

by coderman002

๐Ÿ”Œ MCP Tool Server

CI Python Docker License: MIT

A secure, production-grade Model Context Protocol (MCP) server that empowers LLM agents with filesystem operations, AST mathematical evaluation, and host system diagnostics.

Built using Python FastMCP SDK and containerized with Docker.


๐Ÿ—๏ธ Architecture

The Model Context Protocol (MCP) establishes a secure JSON-RPC interface over standard I/O (stdio) between a host client (like Claude Desktop or Cursor) and our server:

graph LR
    subgraph Host_App ["Host Application (Client)"]
        A[LLM Agent] <--> B[MCP Client Interface]
    end
    subgraph Server_App ["MCP Tool Server (Server)"]
        B <-->|Stdio / JSON-RPC| C[FastMCP Entrypoint]
        C <--> D[File System Tools]
        C <--> E[AST Math Tools]
        C <--> F[System Diagnostic Tools]
    end
    D <-->|Access Guards| G[(Workspace Files)]
    F <-->|psutil| H[Host OS Metrics]

Related MCP server: NATE-MCP-SERVER

โœจ Features

  • ๐Ÿ“ Secure Filesystem Access โ€” Paginated reading, directory listing, and recursive regex search with built-in path-traversal protections.

  • ๐Ÿงฎ Safe AST Calculation โ€” Evaluates mathematical expressions securely using python's ast parser (no raw eval() calls) and blocks resource exhaustion attempts.

  • ๐Ÿ–ฅ๏ธ Diagnostics Metrics โ€” Fetches CPU, RAM, and Disk space stats.

  • ๐Ÿณ Containerized โ€” Docker & Docker Compose setup for fast testing and isolation.

  • โœ… CI Validation โ€” Automated GitHub Actions verifying code linting and unit test coverage.


๐Ÿ› ๏ธ Exposed Tools

The server registers and exposes the following tools to clients:

Tool Name

Parameters

Description

calculate_expression

expression: str

Safely evaluates arithmetic and core math functions (sin, cos, pi, e, etc.).

list_directory

path: str = "."

Lists files and subdirectories. Locked to workspace boundaries.

read_file_content

path: str, start_line: int, end_line: int

Reads a target file securely with line-bound pagination.

search_text_pattern

pattern: str, path: str = "."

Performs recursive grep-like text search in workspace files.

check_system_resources

None

Returns instant system metrics (CPU load, RAM usage, storage space).


๐Ÿš€ Quick Start

Run the server instantly in an isolated environment:

# Build and run the stdio server
docker-compose up --build

# Run the test suite inside the container
docker-compose run tests

Option B: Running with Local Python

If you prefer to run it locally without Docker:

# Install dependencies
pip install -r requirements.txt

# Run the server on stdio
python mcp_server.py

๐Ÿ”Œ Host Client Integration

1. Claude Desktop

To integrate this server with Claude Desktop, add the configuration below to your claude_desktop_config.json (on Windows, located at %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "mcp-tool-server": {
      "command": "python",
      "args": ["C:/Github Code/mcp-tool-server/mcp_server.py"],
      "env": {
        "MCP_WORKSPACE_DIR": "C:/Github Code"
      }
    }
  }
}

2. Cursor IDE

  1. Open Cursor Settings โ†’ Features โ†’ MCP.

  2. Click + Add New MCP Server.

  3. Fill details:

    • Name: mcp-tool-server

    • Type: stdio

    • Command: python "C:/Github Code/mcp-tool-server/mcp_server.py"

  4. Save and let Cursor auto-detect the registered tools!


๐Ÿงช Running Tests Locally

To install testing dependencies and run the pytest suite:

pip install -r requirements-dev.txt
pytest tests/ -v

๐Ÿ“„ License

MIT License. See LICENSE for details.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that equips AI agents with real-world tools including file operations, read-only MySQL queries, web summarization, safe calculations, and system info. It uses stdio transport and enforces safety guardrails like SELECT-only database access and AST-based math evaluation.
    MIT