Eventbrite MCP服务器
多租户Eventbrite MCP服务器,带Firebase身份验证、包装 @普密切尔森/艾文布莱特·麦克普.
概述
该服务器为Eventbrite API提供多对映模型上下文协议(MCP)接口。它使用:
- Firebase身份验证 用于用户身份验证
- 平台API 用于安全凭据管理
- @prmichaelsen/mcp认证 用于身份验证包装
- @普密切尔森/艾文布莱特·麦克普 作为基本MCP服务器
建筑
Client (Firebase JWT)
↓
Firebase Auth Provider (validates JWT → userId)
↓
Platform Token Resolver (userId → Eventbrite token via platform)
↓
Eventbrite MCP Server (executes tools)
↓
Eventbrite API先决条件
- Node.js 20+
- 启用身份验证的Firebase项目
- 实现凭据终结点的平台API
- 存储在您平台中的Eventbrite OAuth令牌
安装
npm install配置
复制 .env.example 到 .env 并配置:
# Firebase (for JWT validation)
FIREBASE_PROJECT_ID=your-firebase-project-id
# Platform API (for token resolution)
PLATFORM_URL=https://your-platform.com
PLATFORM_SERVICE_TOKEN=your-service-token
# Server
PORT=8080
NODE_ENV=development
LOG_LEVEL=info环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
FIREBASE_PROJECT_ID | 是 | 用于JWT验证的Firebase项目ID |
PLATFORM_URL | 是 | 您的平台API的基本URL |
PLATFORM_SERVICE_TOKEN | 是 | 用于平台API身份验证的服务令牌 |
PORT | 无 | 服务器端口(默认:8080) |
NODE_ENV | 否 | 环境(开发/生产) |
LOG_LEVEL | 否 | 日志记录级别(默认值:info) |
发展
# Install dependencies
npm install
# Run in development mode with hot reload
npm run dev
# Build TypeScript
npm run build
# Run production build
npm start码头工人
构建
docker build -t eventbrite-mcp-server .跑
docker run -p 8080:8080 \
-e FIREBASE_PROJECT_ID=your-project \
-e PLATFORM_URL=https://your-platform.com \
-e PLATFORM_SERVICE_TOKEN=your-token \
eventbrite-mcp-server部署
谷歌云运行
# Build and push to GCR
docker build -t gcr.io/YOUR_PROJECT/eventbrite-mcp-server:latest .
docker push gcr.io/YOUR_PROJECT/eventbrite-mcp-server:latest
# Generate service token
SERVICE_TOKEN=$(node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))")
# Create secret
echo -n "$SERVICE_TOKEN" | gcloud secrets create platform-service-token --data-file=-
# Deploy
gcloud run deploy eventbrite-mcp-server \
--image gcr.io/YOUR_PROJECT/eventbrite-mcp-server:latest \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars="FIREBASE_PROJECT_ID=your-project,PLATFORM_URL=https://your-platform.com,NODE_ENV=production" \
--update-secrets=PLATFORM_SERVICE_TOKEN=platform-service-token:latest \
--min-instances=0 \
--max-instances=10 \
--memory=512Mi \
--cpu=1API终点
健康检查
GET /mcp/healthMCP消息端点
POST /mcp/message
Authorization: Bearer
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}测试
本地测试
# Start server
npm start
# Test health endpoint
curl http://localhost:8080/mcp/health
# Test with Firebase JWT
curl -X POST http://localhost:8080/mcp/message \
-H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'生产测试
curl -X POST https://your-server.run.app/mcp/message \
-H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'平台API要求
您的平台必须实现凭据终结点:
// GET /api/credentials/eventbrite
// Headers:
// Authorization: Bearer
// X-User-ID:
// Response:
{
"access_token": "user-eventbrite-token",
"expires_at": "2024-12-31T23:59:59Z"
}项目结构
eventbrite-mcp-server/
├── src/
│ ├── index.ts # Main server entry point
│ └── auth/
│ ├── firebase-provider.ts # Firebase JWT validation
│ └── platform-token-resolver.ts # Platform API integration
├── agent/
│ └── patterns/
│ └── bootstrap.md # Bootstrap pattern documentation
├── package.json
├── tsconfig.json
├── Dockerfile
├── .env.example
├── .gitignore
├── .dockerignore
└── README.md特性
- ✅ 多租户架构
- ✅ Firebase身份验证
- ✅ 平台管理的凭据(安全)
- ✅ 无状态服务器(无数据库)
- ✅ 令牌缓存以提高性能
- ✅ 速率限制
- ✅ 健康检查
- ✅ Docker支持
- ✅ 云运行就绪
安全
- Firebase JWT令牌在每次请求时都会进行验证
- Eventbrite代币永远不会暴露给客户
- 服务令牌对服务器到平台的通信进行身份验证
- 所有凭证均由API平台管理
- 限速防止滥用
缓存
服务器实现了两级缓存:
- 身份验证缓存:Firebase JWT验证结果(TTL:60s)
- 令牌缓存:Eventbrite访问令牌(TTL:5分钟)
缓存提高了性能并减少了外部API调用。
故障排除
TypeScript错误
在运行之前,预计会出现有关缺少模块的TypeScript错误 npm install。安装要解决的依赖项。
身份验证失败
- 验证
FIREBASE_PROJECT_ID匹配您的Firebase项目 - 确保Firebase JWT有效且未过期
- 检查JWT是否已发送到
Authorization: Bearer头球
令牌解析失败
- 验证
PLATFORM_URL是正确的 - 确保
PLATFORM_SERVICE_TOKEN有效 - 检查用户在平台中是否具有Eventbrite凭据
- 查看API平台日志中的错误
许可证
麻省理工学院
相关项目
- @普密切尔森/艾文布莱特·麦克普 -基础Eventbrite MCP服务器
- @prmichaelsen/mcp认证 -MCP身份验证包装器
- Bootstrap模式 -图案文档
支持
对于问题或疑问:
- 基本MCP服务器: @普密切尔森/事件名人mcp问题
- 此包装器:在此存储库中创建问题
