Provides a multi-tenant interface to the Eventbrite API, enabling interaction with Eventbrite's event management and ticketing platform services.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Eventbrite MCP Serverlist my upcoming events for this month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Eventbrite MCP Server
Multi-tenant Eventbrite MCP server with Firebase authentication, wrapping @prmichaelsen/eventbrite-mcp.
Overview
This server provides a multi-tenant Model Context Protocol (MCP) interface to the Eventbrite API. It uses:
Firebase Authentication for user identity verification
Platform API for secure credential management
@prmichaelsen/mcp-auth for authentication wrapping
@prmichaelsen/eventbrite-mcp as the base MCP server
Architecture
Client (Firebase JWT)
↓
Firebase Auth Provider (validates JWT → userId)
↓
Platform Token Resolver (userId → Eventbrite token via platform)
↓
Eventbrite MCP Server (executes tools)
↓
Eventbrite APIPrerequisites
Node.js 20+
Firebase project with authentication enabled
Platform API that implements the credentials endpoint
Eventbrite OAuth tokens stored in your platform
Installation
npm installConfiguration
Copy .env.example to .env and configure:
# 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=infoEnvironment Variables
Variable | Required | Description |
| Yes | Firebase project ID for JWT validation |
| Yes | Base URL of your platform API |
| Yes | Service token for platform API authentication |
| No | Server port (default: 8080) |
| No | Environment (development/production) |
| No | Logging level (default: info) |
Development
# Install dependencies
npm install
# Run in development mode with hot reload
npm run dev
# Build TypeScript
npm run build
# Run production build
npm startDocker
Build
docker build -t eventbrite-mcp-server .Run
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-serverDeployment
Google Cloud Run
# 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 Endpoints
Health Check
GET /mcp/healthMCP Message Endpoint
POST /mcp/message
Authorization: Bearer <firebase-jwt>
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}Testing
Local Testing
# 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 <firebase-jwt>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'Production Testing
curl -X POST https://your-server.run.app/mcp/message \
-H "Authorization: Bearer <firebase-jwt>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'Platform API Requirements
Your platform must implement the credentials endpoint:
// GET /api/credentials/eventbrite
// Headers:
// Authorization: Bearer <service-token>
// X-User-ID: <user-id>
// Response:
{
"access_token": "user-eventbrite-token",
"expires_at": "2024-12-31T23:59:59Z"
}Project Structure
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.mdFeatures
✅ Multi-tenant architecture
✅ Firebase authentication
✅ Platform-managed credentials (secure)
✅ Stateless server (no database)
✅ Token caching for performance
✅ Rate limiting
✅ Health checks
✅ Docker support
✅ Cloud Run ready
Security
Firebase JWT tokens are validated on every request
Eventbrite tokens are never exposed to clients
Service token authenticates server-to-platform communication
All credentials are managed by the platform API
Rate limiting prevents abuse
Caching
The server implements two levels of caching:
Auth Cache: Firebase JWT validation results (TTL: 60s)
Token Cache: Eventbrite access tokens (TTL: 5min)
Caching improves performance and reduces external API calls.
Troubleshooting
TypeScript Errors
TypeScript errors about missing modules are expected before running npm install. Install dependencies to resolve.
Authentication Failures
Verify
FIREBASE_PROJECT_IDmatches your Firebase projectEnsure Firebase JWT is valid and not expired
Check that the JWT is sent in the
Authorization: Bearer <token>header
Token Resolution Failures
Verify
PLATFORM_URLis correctEnsure
PLATFORM_SERVICE_TOKENis validCheck that user has Eventbrite credentials in the platform
Review platform API logs for errors
License
MIT
Related Projects
@prmichaelsen/eventbrite-mcp - Base Eventbrite MCP server
@prmichaelsen/mcp-auth - MCP authentication wrapper
Bootstrap Pattern - Pattern documentation
Support
For issues or questions:
Base MCP server: @prmichaelsen/eventbrite-mcp issues
This wrapper: Create an issue in this repository
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.