Evento Public MCP Server
MCP server to list and get events from Evento's public API using an API key.
README
Evento Public MCP Server
Local MCP server for Evento developer-facing authenticated public APIs.
It runs on your machine over stdio, authenticates every API call with your API key, and can be connected to Claude Desktop (or any MCP client that supports stdio transport).
What This Server Is
- MCP transport adapter only (stdio)
- Tool calls mapped to Evento Public API routes
- Auth injected centrally using your API key
- No database access, no Supabase, no server-side persistence in MCP layer
This follows the same architecture shape as the admin MCP pattern, with different API routes and key type.
Features
list-events- Lists user events
- Optional filters:
type,limit
get-event- Gets one event by ID
Requirements
- Node.js 18+
- npm
- Evento developer-facing API key
- MCP client (Claude Desktop, Cursor, etc.)
Quick Start
git clone https://github.com/andreneves/evento-public-mcp.git
cd evento-public-mcp
npm install
npm run build
Create your env file:
cp .env.example .env
Set at least:
PUBLIC_API_KEY
Then run:
npm start
Installable Skill (SKILL.md)
This repository includes an installable Claude skill file at:
SKILL.md
Install it locally:
mkdir -p ~/.claude/skills/evento-public-mcp
cp SKILL.md ~/.claude/skills/evento-public-mcp/SKILL.md
Canonical source and docs:
- Skill file:
https://github.com/andreneves/evento-public-mcp/blob/main/SKILL.md - Docs page:
https://docs.evento.so/mcp-server/skill
Versioning and sync policy
- Source of truth is this repository's
SKILL.md - When updating skill behavior or instructions, update
SKILL.mdfirst - Keep the docs mirror page in sync:
evento-docs/ai/skill.mdx - Bump
metadata.versioninSKILL.mdfor meaningful content changes - Verify the docs page still reflects the full file content before release
Environment Variables
Required:
PUBLIC_API_KEY- Developer-facing Evento API key used as
Authorization: Bearer <key>
- Developer-facing Evento API key used as
Optional:
EVENTO_API_BASE_URL(default:https://evento.so/api)EVENTO_API_TIMEOUT_MS(default:15000)EVENTO_API_RETRY_ATTEMPTS(default:2)EVENTO_API_RETRY_DELAY_MS(default:250)EVENTO_PUBLIC_API_KEY(legacy compatibility fallback ifPUBLIC_API_KEYis missing)EVENTO_SMOKE_USERNAME(used by smoke command)
MCP Client Configuration
Example Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"evento-public": {
"command": "node",
"args": ["/absolute/path/to/evento-public-mcp/dist/index.js"],
"env": {
"PUBLIC_API_KEY": "your-evento-api-key",
"EVENTO_API_BASE_URL": "https://evento.so/api"
}
}
}
}
Notes:
- Use an absolute path in
args - Restart Claude Desktop after config changes
Available Tools
list-events
List events for a user.
Input:
username(required, string)type(optional,upcoming | past | profile)limit(optional, number)
Route mapping:
GET /public/v1/users/{username}/events
get-event
Get event details by ID.
Input:
eventId(required, string)
Route mapping:
GET /public/v1/events/{eventId}
Architecture
Key files:
src/index.ts- process entrypoint
src/mcp-server.ts- MCP protocol handling (
tools/list,tools/call)
- MCP protocol handling (
src/public-tools.ts- single runtime registry (
PUBLIC_TOOLS) - generic executor (
executePublicTool) - auth/header injection, path interpolation, timeout/retry, normalized response
- single runtime registry (
PUBLIC_MCP.tools.json- manifest mirror of runtime tools
Execution flow:
- MCP client calls
tools/list - server returns
PUBLIC_TOOLS - MCP client calls
tools/call - server delegates to
executePublicTool(name, args) - executor validates required args, resolves path placeholders, strips path args from body
- executor calls Evento API with auth header and retry/timeout policy
- executor normalizes success/error payload back to MCP response
Local Development
Install deps:
npm install
Run directly in TypeScript:
npm run dev
Build:
npm run build
Run built server:
npm start
Testing and Verification
Run tests:
npm test
Run build + tests:
npm run verify
Smoke check (live API):
EVENTO_SMOKE_USERNAME=your-username npm run smoke
Test layers included:
- Unit:
tests/public-tools.unit.test.ts - Manifest parity:
tests/manifest-parity.test.ts - MCP stdio e2e:
tests/mcp.e2e.test.ts
Adding a New Tool
- Add a new tool definition to
PUBLIC_TOOLSinsrc/public-tools.ts- name, description, method, path, input schema
- Ensure route/path placeholders align with args
- Update
PUBLIC_MCP.tools.jsonto match - Add/extend unit tests and parity assertions
- Run
npm run verify
Error Handling and Retry Policy
- Retries on retryable statuses:
408,429,5xx - Retries on retryable network errors (timeout / DNS / connection reset classes)
- Controlled by env vars (
EVENTO_API_RETRY_*) - Returns MCP
isError: truewith structured error payload when failed
Troubleshooting
Missing API key
Symptom:
- Tool call returns missing key error
Fix:
- Set
PUBLIC_API_KEYin MCP client env config
Tools not visible in client
Fix checklist:
- Run
npm run build - Confirm
dist/index.jsexists - Confirm absolute path in MCP config
- Restart MCP client app
API errors
Fix checklist:
- Verify key is valid for authenticated public endpoints
- Verify
EVENTO_API_BASE_URL - Run smoke check with a known username
Security Notes
- Keep API keys in local env config, not source control
- This project does not store your API key beyond process env
License
ISC
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.