MCP Hub
Back to servers

claude-tools-mcp

MCP server that exposes Claude Code's file and shell tools (bash, read, write, edit, glob, grep) over HTTP for remote use by any MCP client

GitHub
Stars
13
Forks
1
Updated
Mar 11, 2026
Validated
Mar 12, 2026

Claude Tools MCP Server

An MCP (Model Context Protocol) server that exposes Claude Code's file and shell manipulation tools over HTTP, allowing any MCP client to use these tools remotely.

Features

This server provides the following tools:

  • bash: Execute shell commands with timeout support and background execution
  • bash_output: Retrieve output from background shell processes
  • kill_shell: Terminate background shell processes
  • read: Read files with line offset/limit support
  • write: Write files to disk
  • edit: Perform exact string replacements in files
  • glob: Find files using glob patterns
  • grep: Search file contents using ripgrep (regex support, multiple output modes)

Installation

From Source

go build -o claude-tools-mcp ./cmd/claude-tools-mcp

With Docker

docker build -t claude-tools-mcp .
docker run -p 8080:8080 claude-tools-mcp

Docker Build Optimization

The Docker image uses a pre-built runtime base image (Dockerfile.runtime) that contains all development tools and dependencies. This runtime image is automatically built and published to GitHub Container Registry (GHCR) whenever Dockerfile.runtime or the workflow file changes.

Benefits:

  • Significantly faster builds (only compiles Go binary, not installing all tools)
  • Consistent runtime environment across deployments

Building the runtime image locally:

# Build the runtime base image
docker build -f Dockerfile.runtime -t claude-tools-runtime .

# Build the main image using local runtime
docker build -t claude-tools-mcp .

The published runtime image is available at: ghcr.io/mathematic-inc/claude-tools-mcp-runtime:latest

Usage

Starting the Server

# Default (localhost:8080)
./claude-tools-mcp

# Custom address
./claude-tools-mcp --addr localhost:9000

With Docker

# Default port (8080)
docker run -p 8080:8080 claude-tools-mcp

# Custom port
docker run -e PORT=9000 -p 9000:9000 claude-tools-mcp

Configuration

The server runs in stateless mode, allowing each HTTP request to be handled independently. This enables horizontal scaling and simpler deployment.

Security Features

  • Timeout protection: Prevents slowloris attacks with ReadHeaderTimeout and IdleTimeout
  • Graceful shutdown: Responds to SIGINT/SIGTERM, allowing in-flight requests to complete
  • Path validation: Rejects relative paths to prevent directory traversal
  • File size limits: 10MB max file size, ~100k token max output
  • Result limits: Maximum 1000 lines for grep/glob results

Architecture

The server uses the MCP Go SDK to expose tools over HTTP. All tools are stateless except for:

  • File modification tracking: Detects when files are edited externally
  • Background shell management: Tracks long-running bash processes

See CLAUDE.md for detailed architecture documentation.

Development

Running Tests

# All tests
go test ./...

# Specific package
go test ./internal/tools

# Specific test
go test -run TestFunctionName ./internal/tools

Dependencies

  • Go 1.25.1+
  • MCP Go SDK
  • Cobra for CLI
  • mimetype for file type detection
  • ripgrep (rg) must be installed for the grep tool

Repository

github.com/mathematic-inc/claude-tools-mcp

License

Apache-2.0 License. Copyright (c) Mathematic Inc. See LICENSE for details.

This project is free and open-source work by a 501(c)(3) non-profit. If you find it useful, please consider donating.

Reviews

No reviews yet

Sign in to write a review