Provides serverless deployment infrastructure for running the MCP server on Cloudflare's global edge network
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., "@Luma Events MCP Serversearch for upcoming AI conferences in San Francisco"
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.
Luma Events MCP Server
A Model Context Protocol (MCP) server that provides access to tech events from Luma. Built with mcp-lite and deployed on Cloudflare Workers.
Features
π― Search Tech Events: Discover upcoming tech events, conferences, and meetups
π Serverless: Runs on Cloudflare's global edge network
β‘ Fast: Built with mcp-lite for minimal overhead
π§ MCP Compatible: Works with any MCP client (Claude Desktop, etc.)
Prerequisites
Before you begin, make sure you have:
Node.js 18+ installed
pnpm package manager (or npm/yarn)
Cloudflare account (free tier works fine)
Wrangler CLI (installed automatically with dependencies)
Installation
1. Clone or Navigate to Project
cd mv-mcp-lite2. Install Dependencies
pnpm installThis will install:
mcp-lite- MCP server frameworkhono- Web framework for Cloudflare Workersaxios- HTTP client for API requestszod- Schema validationwrangler- Cloudflare Workers CLI
3. Set Up Authentication (Optional)
If you need to authenticate with Cloudflare:
pnpm wrangler loginThis will open a browser window to authorize Wrangler with your Cloudflare account.
Local Development
Start Development Server
pnpm devThis starts a local Cloudflare Workers development server at http://localhost:8787.
Test the Server
Health Check: Visit
http://localhost:8787/in your browserShould display: "Luma MCP Server (Apify) β connect via /mcp"
MCP Endpoint: The MCP server is available at
http://localhost:8787/mcp
Configure MCP Client
To use this server with an MCP client like Claude Desktop, add this to your MCP configuration file:
macOS/Linux: ~/.cursor/mcp.json or ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"luma-events": {
"url": "http://localhost:8787/mcp",
"transport": "http"
}
}
}Note: For local development, use
localhost:8787. After deployment, replace with your Cloudflare Workers URL.
Deployment to Cloudflare
1. Deploy to Cloudflare Workers
pnpm deployThis command:
Bundles your code
Minifies for production
Deploys to Cloudflare's global network
Provides you with a live URL (e.g.,
https://luma-events-mcp.your-subdomain.workers.dev)
2. Get Your Deployment URL
After deployment, Wrangler will display your Worker's URL:
Published luma-events-mcp (X.XX sec)
https://luma-events-mcp.your-subdomain.workers.dev3. Update MCP Client Configuration
Update your MCP configuration to use the production URL:
{
"mcpServers": {
"luma-events": {
"url": "https://luma-events-mcp.your-subdomain.workers.dev/mcp",
"transport": "http"
}
}
}4. Restart Your MCP Client
Restart Claude Desktop or your MCP client to connect to the deployed server.
Usage
Once configured, you can use the following tool through your MCP client:
Available Tools
search_luma_events
Searches for tech events on Luma.
Parameters:
city(optional): City name (currently not implemented in filtering)country(optional): Country name (currently not implemented in filtering)query(optional): Search keyword or topic (e.g., "hackathon", "AI", "web3")
Example prompts in Claude:
"Find tech events on Luma"
"Search for AI events on Luma"
"Show me upcoming hackathons from Luma"
"What tech events are happening soon?"
Example Response: The tool returns a JSON array of events with details like:
Event name and description
Date and time
Location (physical or virtual)
Number of attendees
Registration link
Host information
Configuration
Environment Variables
For local development, create a .dev.vars file in the project root:
# .dev.vars (for local development only)
# Add any API keys or secrets here
# EXAMPLE_API_KEY=your-key-hereFor production secrets:
# Set production secrets
pnpm wrangler secret put EXAMPLE_API_KEYWrangler Configuration
Edit wrangler.jsonc to customize:
{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "luma-events-mcp", // Worker name
"main": "src/index.ts", // Entry point
"compatibility_date": "2025-10-07" // Cloudflare compatibility date
}Project Structure
mv-mcp-lite/
βββ src/
β βββ index.ts # Main MCP server code
βββ package.json # Dependencies and scripts
βββ wrangler.jsonc # Cloudflare Workers config
βββ tsconfig.json # TypeScript configuration
βββ .dev.vars # Local environment variables (gitignored)
βββ README.md # This fileDevelopment
Available Scripts
# Start local development server
pnpm dev
# Deploy to Cloudflare Workers
pnpm deploy
# Generate TypeScript types for Cloudflare bindings
pnpm cf-typegenAdding New Tools
To add new MCP tools, edit src/index.ts:
mcp.tool("your_tool_name", {
description: "What your tool does",
inputSchema: z.object({
param1: z.string().describe("Description"),
param2: z.number().optional(),
}),
handler: async (args) => {
// Your tool logic here
return {
content: [
{
type: "text",
text: "Your response",
},
],
};
},
});Adding Resources
Resources provide URI-identified content:
mcp.resource(
"events://upcoming",
{
name: "Upcoming Events",
description: "List of upcoming tech events",
mimeType: "application/json",
},
async (uri) => ({
contents: [
{
uri: uri.href,
type: "text",
text: JSON.stringify({ events: [] }),
mimeType: "application/json",
},
],
})
);Troubleshooting
Issue: "Module not found" errors
Solution: Make sure dependencies are installed:
pnpm installIssue: Wrangler login fails
Solution: Try logging in with a different method:
pnpm wrangler login --browser=falseIssue: Deployment fails
Solution: Check your Cloudflare account limits and verify authentication:
pnpm wrangler whoamiIssue: MCP client can't connect
Solution:
Verify the URL is correct (include
/mcppath)Check if the server is running (visit the URL in browser)
Restart your MCP client after configuration changes
Check MCP client logs for connection errors
Issue: CORS errors
Solution: If accessing from a web client, add CORS middleware to src/index.ts:
import { cors } from "hono/cors";
app.use(
"/mcp",
cors({
origin: ["https://your-client-domain.com"],
credentials: true,
})
);Technical Details
Built With
mcp-lite: Lightweight MCP server framework
Hono: Fast web framework for edge computing
Cloudflare Workers: Serverless execution environment
Zod: TypeScript-first schema validation
Architecture
βββββββββββββββββββ
β MCP Client β
β (Claude, etc.) β
ββββββββββ¬βββββββββ
β HTTP/SSE
βΌ
βββββββββββββββββββ
β Cloudflare β
β Workers β
β (Edge Runtime) β
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
β mcp-lite β
β McpServer β
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
β Luma API β
β (lu.ma/tech) β
βββββββββββββββββββResources
mcp-lite Documentation: https://github.com/fiberplane/mcp-lite
Model Context Protocol: https://modelcontextprotocol.io/
Cloudflare Workers Docs: https://developers.cloudflare.com/workers/
Luma Platform: https://lu.ma
License
[Add your license here]
Contributing
Contributions welcome! Please feel free to submit a Pull Request.
Support
For issues and questions:
Check the Troubleshooting section
Review mcp-lite examples
Open an issue in this repository
Built with β€οΈ using mcp-lite