模型上下文协议服务器

Banbury Cloud MCP Server是一个提供访问Banbury后端服务的模型上下文协议服务器,支持LLM和AI应用。

  • by Banbury-inc
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 banbury-inc/banbury-mcp-server

使用说明

班伯里云MCP服务器

一种模型上下文协议(MCP)服务器,为LLM和AI应用程序提供对Banbury后端服务的访问。

快速开始

用于前端集成(HTTP模式)

# Run on default port 3001
./run-http.sh

# Run on custom port
./run-http.sh 8080

然后添加到前端 .env:

REACT_APP_MCP_SERVER_URL=http://localhost:3001

适用于克劳德桌面(标准模式)

# Default stdio mode
./run.sh

添加到Claude桌面配置:

{
  "mcpServers": {
    "banbury-mcp": {
      "command": "/path/to/banbury-mcp-server/run.sh"
    }
  }
}

运输方式

HTTP传输

  • 用于:前端集成、web应用程序、API访问
  • 端口:可配置(默认值:3001)
  • 端点:
    • POST /tool -执行MCP工具
    • GET /health -服务器运行状况和信息

标准运输

  • 用于:Claude Desktop,直接进程通信
  • 沟通:stdin/stdout
  • 整合:MCP客户端库

环境变量

# Transport mode: 'http' or 'stdio' (default: stdio)
export MCP_TRANSPORT=http

# HTTP port (default: 3001)  
export MCP_HTTP_PORT=8080

# Banbury environment: 'dev' or 'prod' (default: dev)
export BANBURY_ENV=dev

可用工具

认证

  • banbury-login -使用Banbury凭据进行身份验证

设备管理

  • banbury-get-device-info -获取设备信息
  • banbury-update-device -更新设备数据
  • banbury-declare-online -在线申报设备

文件管理

  • banbury-get-files -从特定路径获取文件
  • banbury-get-scanned-folders -获取扫描文件夹列表

任务管理

  • banbury-get-sessions -获取用户会话
  • banbury-add-task -添加新任务

模型管理

  • banbury-add-model -将模型添加到设备

实用工具

  • add -简单添加(测试)
  • get-joke -随机笑话(娱乐)

使用示例

HTTP模式

# Health check
curl http://localhost:3001/health

# Get a joke
curl -X POST http://localhost:3001/tool \
  -H "Content-Type: application/json" \
  -d '{"tool": "get-joke", "parameters": {}}'

# Login to Banbury  
curl -X POST http://localhost:3001/tool \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "banbury-login", 
    "parameters": {
      "username": "your-username",
      "password": "your-password",
      "environment": "dev"
    }
  }'

# Get device info using Authorization header
curl -X POST http://localhost:3001/tool \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-auth-token" \
  -d '{
    "tool": "banbury-get-device-info",
    "parameters": {
      "device_name": "your-device",
      "environment": "dev"
    }
  }'

# Get device info using X-API-Key and Authorization Bearer headers
curl -X POST http://localhost:3001/tool \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-auth-token" \
  -H "X-API-Key: your-mcp-server-api-key" \
  -d '{
    "tool": "banbury-get-device-info",
    "parameters": {
      "device_name": "your-device",
      "environment": "dev"
    }
  }'

# Get device info using parameters (legacy method)
curl -X POST http://localhost:3001/tool \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "banbury-get-device-info",
    "parameters": {
      "token": "your-auth-token", 
      "apiKey": "your-api-key",
      "device_name": "your-device",
      "environment": "dev"
    }
  }'

前端集成

MCP服务器与Banbury前端无缝集成:

  1. 设置环境变量: REACT_APP_MCP_SERVER_URL=http://localhost:3001
  2. 前端自动使用存储的Banbury凭据
  3. 身份验证标头会自动包含在所有请求中:
    • X-Auth-Token:用户的Banbury代币
    • X-Username:用户的Banbury用户名
    • Authorization:MCP服务器API密钥(如果已配置)
  4. 人工智能对话可以自然地调用Banbury工具
  5. 实时状态指示器显示连接/身份验证状态

发展

项目结构

banbury-mcp-server/
├── main.ts           # Main server code
├── run.sh           # Stdio mode runner
├── run-http.sh      # HTTP mode runner  
├── package.json     # Dependencies
└── README.md        # Documentation

添加新工具

  1. 在中添加工具定义 main.ts:
server.tool("my-new-tool", {
  token: z.string(),
  my_param: z.string(),
  environment: z.enum(['dev', 'prod']).default('dev')
}, async ({ token, my_param, environment }) => {
  // Implementation
});
  1. 添加HTTP处理程序案例:
case 'my-new-tool':
  result = await handleMyNewTool(parameters);
  break;

测试

# Install dependencies
npm install

# Run in development
npm run dev

# Type checking
npm run type-check

安全

  • 所有Banbury API调用都需要身份验证令牌
  • 启用CORS以实现前端集成
  • 没有记录或缓存敏感数据
  • Banbury后端处理的令牌验证

故障排除

连接问题

  • 验证服务器是否正在运行: curl http://localhost:3001/health
  • 检查HTTP模式的防火墙设置
  • 确保Banbury后端URL可访问

身份验证错误

  • 验证Banbury凭据是否有效
  • 支票令牌尚未过期
  • 确保正确的环境(dev/prod)选择

工具执行错误

  • 检查服务器日志以获取详细的错误消息
  • 验证是否提供了所需的参数
  • 确保令牌具有适当的权限

如需更多帮助,请查看服务器日志或Banbury前端集成指南。

身份验证方法

MCP服务器支持以下优先级顺序的多种身份验证方法:

  1. 认证头: Authorization: Bearer <token> (Primary-匹配axios全局标头)
  2. X-Auth-Token标头: X-Auth-Token: <token> (后退)
  3. X-API-Key集管: X-API-Key: <api-key> (对于MCP服务器API密钥)
  4. X用户名标题: X-Username: <username> (用于用户上下文)
  5. 请求参数:包括 token 和 apiKey 在参数对象(Legacy)中

前端通过以下方式自动发送Banbury用户令牌 Authorization: Bearer <token> header,遵循与axios全局headers实现相同的模式。