使用说明

项目简介

本项目是一个基础的MCP (Model Context Protocol) 服务器,展示了如何使用SSE (Server-Sent Events) 传输协议构建MCP服务器。它包括可选的基本身份验证机制,以增强服务器的安全性。该服务器提供了一个可以执行系统命令的工具。

主要功能点

  • 实现了基于 'mcp' 库的基础MCP服务器。
  • 支持SSE传输协议,用于与MCP客户端通信。
  • 提供可选的基本身份验证,用于安全访问。
  • 注册了一个 "execute_command" 工具,允许客户端在服务器上运行系统命令。
  • 提供了一个客户端示例,演示如何与服务器进行交互。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/daikw/mcp-transport-auth.git
    cd mcp-transport-auth
  2. 安装依赖: (假设 'mcp' 库已安装。如果未安装,请先安装)
    # 假设 mcp 库已安装,如果未安装,请先安装 mcp 库
    # 例如: pip install mcp

服务器配置 (MCP 客户端)

要将MCP客户端连接到此服务器,您需要在客户端中配置服务器的连接信息。以下是一个 JSON 格式的配置示例:

{
  "serverName": "mcp-basic-auth-transport",
  "command": "uv",
  "args": ["run", "mcp-transport-auth/server.py", "--port", "8000"]
}
  • 'serverName': MCP 服务器的名称,与服务器代码中定义的名称一致 ('Server("mcp-basic-auth-transport")')。
  • 'command': 启动服务器的命令。这里使用 'uv' 运行 'server.py' 脚本。
  • 'args': 命令的参数数组。
    • 'run mcp-transport-auth/server.py': 执行服务器脚本。
    • '--port 8000': 指定服务器监听的端口 (默认为 8000)。

启用基本身份验证: 如果要启用基本身份验证,需要在启动服务器之前设置环境变量 'USERNAME' 和 'PASSWORD'。客户端也需要提供相同的凭据。

{
  "serverName": "mcp-basic-auth-transport",
  "command": "USERNAME=admin PASSWORD=pass uv",
  "args": ["run", "mcp-transport-auth/server.py", "--port", "8000"]
}

禁用基本身份验证: 在服务器 'args' 中添加 '--without-basic-auth' 或 '-w' 标志。

{
  "serverName": "mcp-basic-auth-transport",
  "command": "uv",
  "args": ["run", "mcp-transport-auth/server.py", "-w", "--port", "8000"]
}

基本使用方法

  1. 启动 MCP 服务器:

    • 启用基本身份验证:
      USERNAME=admin PASSWORD=pass uv run mcp-transport-auth/server.py --port 8000
    • 禁用基本身份验证:
      uv run mcp-transport-auth/server.py -w --port 8000
  2. 运行 MCP 客户端 (在另一个终端中):

    • 使用基本身份验证 (与服务器凭据匹配):
      USERNAME=admin PASSWORD=pass uv run mcp-transport-auth/client.py
    • 禁用基本身份验证 (如果服务器启动时禁用了身份验证,客户端无需凭据,但如果服务器端口更改,可能需要调整 endpoint):
      uv run mcp-transport-auth/client.py --endpoint http://localhost:8000/sse

    客户端将列出可用的工具,然后调用 'execute_command' 工具,并打印 'id -un' 命令的输出。

信息

分类

开发者工具