mcp-server-bash

mcp-server-bash

11

This project is a minimalistic Model Context Protocol server implemented using shell script. It focuses on lifecycle phases and allows command-line interface testing for various methods. The server is designed for testing and integration with LLM hosts.

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

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