使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 标准构建的服务器,旨在为大型语言模型 (LLM) 应用提供与 Bunnyshell 云平台交互的能力。通过本服务器,LLM 可以安全、可控地访问和管理 Bunnyshell 上的项目、环境和组件等资源,实现云基础设施的智能化管理和自动化运维。

主要功能点

  • 资源管理工具: 提供一系列工具,用于查询和管理 Bunnyshell 的云资源,包括:
    • 列出组织 (Organizations)
    • 列出项目 (Projects)
    • 列出环境 (Environments)
    • 列出组件 (Components)
    • 获取组件日志 (Component Logs)
  • Bunnyshell 平台集成: 深度集成 Bunnyshell API,所有资源操作均通过 Bunnyshell 官方 API 完成,保证操作的可靠性和安全性。
  • 标准化 MCP 协议: 遵循 MCP 协议标准,易于与各种支持 MCP 协议的 LLM 客户端集成。
  • 配置灵活: 支持通过环境变量或 '.env' 文件进行详细配置,包括服务器端口、日志级别、CORS 策略和速率限制等。
  • 易于部署: 使用 Node.js 开发,跨平台兼容性好,安装和启动过程简单。

安装步骤

  1. 克隆仓库

    git clone https://github.com/aminalali8/bns-mcp-server
    cd bns-mcp-server
  2. 安装依赖

    npm install
  3. 配置环境变量 在项目根目录下创建 '.env' 文件,并根据需要配置以下环境变量:

    # Server Configuration
    PORT=3000                  # 服务器端口 (默认: 3000)
    HOST=localhost             # 服务器主机名 (默认: localhost)
    LOG_LEVEL=info             # 日志级别 (debug, info, warn, error)
    
    # Bunnyshell Configuration
    BUNNYSHELL_TOKEN=your_token_here  # 你的 Bunnyshell API Token (必填)
    
    # CORS Configuration (跨域资源共享)
    CORS_ENABLED=true            # 启用 CORS (默认: true)
    CORS_ORIGIN=*              # 允许的来源 (默认: *)
    
    # Rate Limiting (速率限制)
    RATE_LIMIT_ENABLED=true       # 启用速率限制 (默认: true)
    RATE_LIMIT_MAX_REQUESTS=100   # 窗口期内最大请求数 (默认: 100)
    RATE_LIMIT_WINDOW_MS=900000    # 速率限制窗口期,单位毫秒 (默认: 15分钟)

    注意: 'BUNNYSHELL_TOKEN' 是访问 Bunnyshell API 的凭证,必须配置

  4. 启动服务器

    npm start

    服务器默认会在 'http://localhost:3000' 启动。

服务器配置 (MCP 客户端)

为了让 MCP 客户端能够连接到 Bunnyshell MCP 服务器,您需要在客户端配置服务器的启动命令和参数。以下是一个典型的 JSON 格式配置示例,请根据您的实际情况进行调整:

{
  "serverName": "bunnyshell-mcp-server",
  "command": "npm",
  "args": ["start"]
}
  • 'serverName': 为该服务器自定义一个名称,例如 "bunnyshell-mcp-server"。
  • 'command': 启动服务器的命令。由于项目使用 'npm start' 启动,所以这里设置为 '"npm"'。
  • 'args': 命令的参数,这里使用 '["start"]' 来运行 'npm start' 脚本。

请注意: MCP 客户端通常会通过标准输入输出 (stdio) 或其他协议与 MCP 服务器通信。本项目默认使用 StdioServerTransport,因此客户端应配置为通过 stdio 与服务器交互。

基本使用方法

  1. 启动 Bunnyshell MCP 服务器后,MCP 客户端即可与之建立连接。
  2. 客户端可以发送符合 MCP 协议的 JSON-RPC 请求到服务器,调用已注册的工具。
  3. 服务器会处理请求,调用 Bunnyshell API 获取或操作资源,并将结果以 JSON-RPC 响应的形式返回给客户端。

例如,客户端可以调用 'list_projects' 工具来获取 Bunnyshell 项目列表。 具体的工具调用方法和参数定义,请参考项目代码中的 'src/index.ts' 文件,其中定义了每个工具的名称、描述和参数schema。

开发和测试

  • 构建项目: 'npm run build'
  • 运行测试: 'npm test'
  • 开发模式运行: 'npm run dev'

信息

分类

开发者工具