本项目是一个使用纯Bash编写的轻量级MCP服务器实现,遵循Model Context Protocol (MCP) 规范,通过Stdio支持JSON-RPC 2.0协议。它可以作为LLM应用的后端,提供外部工具调用、资源访问等上下文服务。
主要功能点
- 支持JSON-RPC 2.0协议通信。
- 实现完整的MCP协议规范。
- 通过命名约定动态发现和注册工具。
- 支持通过JSON文件进行外部配置。
- 易于扩展自定义工具。
安装步骤
- 确保系统安装了Bash shell和'jq' (一个处理JSON的命令行工具)。如果没有,请安装'jq' (例如在macOS上使用 'brew install jq')。
- 克隆项目仓库:'git clone https://github.com/muthuishere/mcp-server-bash-sdk'
- 进入项目目录:'cd mcp-server-bash-sdk'
- 赋予服务器脚本执行权限:'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与计算