Overview
What is mcp-server-bash?
mcp-server-bash is a minimalistic MCP (Model Context Protocol) server written entirely in shell script. It implements the MCP lifecycle—initialization and operation—and provides a single tool to add two numbers, serving as a reference for learning MCP basics.
How to use mcp-server-bash?
Download the mcp_add.sh script, make it executable (chmod +x mcp_add.sh), then test it from the CLI by piping JSON-RPC messages to the script (e.g., echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | bash mcp_add.sh). For use with LLM hosts, add the script’s path to a JSON configuration file under mcpServers.
Key features of mcp-server-bash
- Written entirely in shell script (bash)
- Implements full MCP lifecycle (handshake + operation)
- Provides a single “addition” tool
- Can be tested directly from the command line
- Configurable for Claude Desktop and mcphost
- Minimal codebase for learning MCP internals
Use cases of mcp-server-bash
- Learning how an MCP server works through a minimal example
- Adding two numbers via an LLM host (e.g., Claude Desktop, mcphost)
- Testing MCP protocol messages (tools/list, tools/call) in a shell environment
- Building a foundation for custom MCP servers in shell scripts
FAQ from mcp-server-bash
What does this MCP server do?
It is a minimal shell script that implements the MCP protocol and exposes a single tool named “addition” which takes two numbers and returns their sum.
How do I test the server without an LLM host?
Pipe JSON-RPC requests directly to the script. For example, to list tools use echo '{"method":"tools/list","id":2,"jsonrpc":"2.0"}' | bash mcp_add.sh. To call the addition tool use echo '{"jsonrpc":"2.0","id":20,"method":"tools/call","params":{"name":"addition","arguments":{"num1":"1","num2":"2"}}}'.
How do I configure this server for Claude Desktop or mcphost?
Add an entry to the MCP configuration JSON with the command set to the full path of mcp_add.sh and an empty args array, as shown in the README.
What are the runtime requirements?
The server requires a Unix-like environment with bash and optionally jq for formatted output during CLI testing. The script is self-contained.
Does this server support multiple tools or resources?
No—the server provides only one tool (“addition”). It is designed as a minimal example, not a full-featured implementation.