项目简介
这是一个基于Python和FastMCP框架构建的Model Context Protocol (MCP) 服务器实现。它的主要功能是将操作系统的命令行执行能力封装为一个MCP工具(Tool),使得连接到该服务器的LLM客户端能够通过标准MCP协议调用并执行系统命令。
主要功能点
- 命令行执行工具: 暴露一个名为 'shell_command' 的工具,允许LLM客户端传入字符串命令并在服务器端执行。
- MCP协议支持: 基于FastMCP框架,处理标准的MCP请求和响应。
- SSE传输协议: 服务器配置为使用Server-Sent Events (SSE) 作为与客户端通信的传输协议。
- 基本配置: 支持通过环境变量配置应用名称、端口、调试模式、日志级别和API密钥。
- 可选API密钥认证: 提供了基于请求头 'x-api-key' 的简单API密钥认证中间件(默认注释掉,不启用)。
安装步骤
-
克隆仓库: 打开终端,执行以下命令克隆项目代码:
git clone https://github.com/mark-oori/mcpserve.git cd mcpserve注意: README中的克隆地址和命令可能不准确,请使用上面的标准命令。
-
安装Python依赖: 确保您已安装Python环境。然后安装项目所需的依赖库:
# 假设你需要安装fastmcp和python-dotenv pip install fastmcp python-dotenv # 如果项目包含requirements.txt文件,请使用: # pip install -r requirements.txt -
配置环境变量 (可选): 您可以在项目根目录创建 '.env' 文件来配置服务器参数,例如:
APP_NAME=MyShellServer APP_PORT=8006 MCP_API_KEY=your_secure_key如果未设置,将使用代码中的默认值。
-
启动服务器: 在项目根目录执行以下命令启动MCP服务器:
python main.py服务器启动后,会显示监听的端口信息(默认为8005)。
服务器配置 (供MCP客户端使用)
该MCP服务器启动后,MCP客户端需要相应的配置信息才能连接和交互。根据此服务器的实现,您可以在您的MCP客户端配置中填写如下信息:
- 服务器名称 ('name'): 服务器运行时使用的名称,取决于'APP_NAME'环境变量或代码默认值(默认为 'Terminal')。
- 启动命令 ('command'): 客户端启动该服务器进程时使用的命令,通常是 'python' (前提是Python环境已安装并可执行)。
- 命令参数 ('args'): 传递给启动命令的参数列表,对于此项目,指向主程序文件,例如 '["main.py"]' (假设从仓库根目录启动)。
- 连接地址 ('address'): 服务器监听的地址,默认为 'http://localhost:8005' (取决于'APP_PORT'环境变量和本地启动)。
- 传输协议 ('transport'): 服务器配置使用的传输协议,此项目为 'sse'。
MCP客户端将使用这些信息来启动该服务器进程(如果尚未运行)并建立连接,通常在客户端的JSON配置文件中进行设置。
基本使用方法
- 按照上述步骤安装并启动MCP服务器。
- 使用一个支持Model Context Protocol的LLM客户端。
- 在客户端的配置中添加该服务器的连接信息(如上所述)。
- 连接成功后,客户端可以发现服务器提供的工具列表,其中包括 'shell_command'。
- LLM可以通过调用 'shell_command' 工具并传入包含要执行的命令行字符串作为参数来执行远程命令。例如,调用 'shell_command' 并传入 '"ls -l"' 将在服务器端执行 'ls -l' 并将结果返回给LLM。
信息
分类
开发者工具