班伯里云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前端无缝集成:
- 设置环境变量:
REACT_APP_MCP_SERVER_URL=http://localhost:3001 - 前端自动使用存储的Banbury凭据
- 身份验证标头会自动包含在所有请求中:
- X-Auth-Token:用户的Banbury代币 - X-Username:用户的Banbury用户名 - Authorization:MCP服务器API密钥(如果已配置)
- 人工智能对话可以自然地调用Banbury工具
- 实时状态指示器显示连接/身份验证状态
发展
项目结构
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添加新工具
- 在中添加工具定义
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
});- 添加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服务器支持以下优先级顺序的多种身份验证方法:
- 认证头:
Authorization: Bearer(Primary-匹配axios全局标头) - X-Auth-Token标头:
X-Auth-Token:(后退) - X-API-Key集管:
X-API-Key:(对于MCP服务器API密钥) - X用户名标题:
X-Username:(用于用户上下文) - 请求参数:包括
token和apiKey在参数对象(Legacy)中
前端通过以下方式自动发送Banbury用户令牌 Authorization: Bearer header,遵循与axios全局headers实现相同的模式。
