Evento Public MCP Server

Evento Public MCP Server

MCP server to list and get events from Evento's public API using an API key.

Category
Visit Server

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.md first
  • Keep the docs mirror page in sync: evento-docs/ai/skill.mdx
  • Bump metadata.version in SKILL.md for 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>

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 if PUBLIC_API_KEY is 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)
  • src/public-tools.ts
    • single runtime registry (PUBLIC_TOOLS)
    • generic executor (executePublicTool)
    • auth/header injection, path interpolation, timeout/retry, normalized response
  • PUBLIC_MCP.tools.json
    • manifest mirror of runtime tools

Execution flow:

  1. MCP client calls tools/list
  2. server returns PUBLIC_TOOLS
  3. MCP client calls tools/call
  4. server delegates to executePublicTool(name, args)
  5. executor validates required args, resolves path placeholders, strips path args from body
  6. executor calls Evento API with auth header and retry/timeout policy
  7. 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

  1. Add a new tool definition to PUBLIC_TOOLS in src/public-tools.ts
    • name, description, method, path, input schema
  2. Ensure route/path placeholders align with args
  3. Update PUBLIC_MCP.tools.json to match
  4. Add/extend unit tests and parity assertions
  5. 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: true with structured error payload when failed

Troubleshooting

Missing API key

Symptom:

  • Tool call returns missing key error

Fix:

  • Set PUBLIC_API_KEY in MCP client env config

Tools not visible in client

Fix checklist:

  1. Run npm run build
  2. Confirm dist/index.js exists
  3. Confirm absolute path in MCP config
  4. Restart MCP client app

API errors

Fix checklist:

  1. Verify key is valid for authenticated public endpoints
  2. Verify EVENTO_API_BASE_URL
  3. 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured