本项目是一个使用纯Bash编写的轻量级MCP服务器实现,遵循Model Context Protocol (MCP) 规范,通过Stdio支持JSON-RPC 2.0协议。它可以作为LLM应用的后端,提供外部工具调用、资源访问等上下文服务。

主要功能点

  • 支持JSON-RPC 2.0协议通信。
  • 实现完整的MCP协议规范。
  • 通过命名约定动态发现和注册工具。
  • 支持通过JSON文件进行外部配置。
  • 易于扩展自定义工具。

安装步骤

  1. 确保系统安装了Bash shell和'jq' (一个处理JSON的命令行工具)。如果没有,请安装'jq' (例如在macOS上使用 'brew install jq')。
  2. 克隆项目仓库:'git clone https://github.com/muthuishere/mcp-server-bash-sdk'
  3. 进入项目目录:'cd mcp-server-bash-sdk'
  4. 赋予服务器脚本执行权限:'chmod +x mcpserver_core.sh moviemcpserver.sh' (如果你创建了自己的服务器脚本,也需要为其赋予执行权限)

服务器配置

MCP客户端(如支持MCP协议的AI助手)需要配置如何启动这个Bash MCP服务器。配置信息通常包含在MCP客户端的设置中,格式为JSON。以下是一个示例配置结构,你需要将'command'的值替换为你服务器脚本的实际路径。

{
  "server_name": "给你的服务器起一个名字,例如 my-bash-mcp-server",
  "command": "服务器脚本的绝对路径,例如 /path/to/mcp-server-bash-sdk/moviemcpserver.sh 或 /path/to/your/weatherserver.sh",
  "args": [
    "可选的命令行参数"
  ],
  "env": {
    "可选的环境变量,例如传递API密钥": "你的API密钥值"
  },
  "type": "stdio" // 表示使用标准输入输出进行通信
}

请将上述'command'字段的值修改为你实际启动服务器脚本的路径,并根据需要添加'args'和'env'字段。

基本使用方法

该服务器通过标准输入(stdin)接收MCP客户端发送的JSON-RPC请求,并通过标准输出(stdout)返回响应。你可以手动测试,例如使用'echo'发送一个工具调用请求到'moviemcpserver.sh':

echo '{"jsonrpc": "2.0", "method": "tools/call", "params": {"name": "get_movies"}, "id": 1}' | ./moviemcpserver.sh

在实际应用中,这个脚本会被兼容MCP协议的LLM客户端启动并与之通信。例如,在VS Code中配置后,GitHub Copilot Chat可以通过'/mcp your-server-name call-method arguments'的形式与你的Bash MCP服务器交互。

信息

分类

AI与计算