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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。