mcp-server-bash logo

mcp-server-bash

by antonum

Minimalistic MCP server written in shell script. It implements the Model Context Protocol (MCP) for interacting with tools, such as adding two numbers.

View on GitHub

Last updated: N/A

mcp-server-bash

Minimalistic MCP server written in shell script.

This repo is comlimentary to the article: Minimalistic MCP Server in bash script

The lifecycle of MCP server can be described in two phases. Initialization and Operation.

Phases of MCP

Phases of MCP

The mcp_add.sh implements all of the messages within this lifecicle, from the handshake to execution of the simple "add two numbers" tool.

To do the basic test methods right in CLI use:

# test tools/list method
echo '{"method":"tools/list","params":{},"jsonrpc":"2.0","id":2}' | bash mcp_add.sh | jq 

# test math_addition tool
echo '{"jsonrpc":"2.0","id":20, "method":"tools/call","params":{"name":"addition","arguments":{"num1":"1","num2":"2"}}}' | bash mcp_add.sh | jq 

LLM host configuration

JSON Configuration file for mcphost and Claude Desktop:

{
    "mcpServers": {
      "math": {
        "command": "/Users/anton/code/mcp-server-bash/mcp_add.sh",
        "args": []
      }
    }
  }

Test with mcphost

Add execute to bash script:

chmod +x mcp_add.sh

Run mcphost with llama3.1 and tool configuration file

mcphost -m ollama:llama3.1:latest --config /Users/anton/code/mcp-server-bash/mcp.json

...

using math tool add 10 and 88

References

  • Model Context Protocol https://www.anthropic.com/news/model-context-protocol
  • mcphost https://github.com/mark3labs/mcphost
  • jsonrpc specification: https://www.jsonrpc.org/specification
  • mcp inspector https://github.com/wong2/mcp-cli