Eventor MCP Server
Click on "Deploy 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., "@Eventor MCP Serverlist all published events"
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.
eventor-cli
Cliente headless da Management API do Eventor (/api/v1), desenhado com um agente de IA como usuário primário. Monorepo com três pacotes sobre um SDK tipado único:
Pacote | O que é | Status |
Cliente HTTP tipado (auth, retry, paginação, upload). Núcleo. | ✅ 9.B | |
Binário | ✅ 9.C | |
| Servidor MCP com tools auto-geradas do spec. | ⏳ 9.E |
A fonte de verdade é o OpenAPI 3.1 em openapi/eventor-v1.json (gerado pelo backend Laravel). Os tipos do SDK são gerados dele — endpoint novo na API = tipo novo no cliente, sem código escrito à mão.
Requisitos
Node ≥ 20 (usa
fetch/FormDatanativos — zero dependência de runtime)pnpm 10
Related MCP server: Microsoft Events MCP Server
Setup
pnpm install
pnpm gen # regenera os tipos a partir de openapi/eventor-v1.json
pnpm build # compila os pacotes
pnpm test # roda os testes
pnpm typecheckSDK em 30 segundos
import { EventorClient, createClient } from '@eventor-run/sdk';
// credencial em camadas: flag → EVENTOR_API_KEY → ~/.config/eventor/config.json
const sdk = createClient({ apiKey: process.env.EVENTOR_API_KEY });
// request tipado (path/query/body inferidos do OpenAPI):
const event = await sdk.request('get', '/events/{event}', { path: { event: 'MAR2026' } });
// paginação automática:
const all = await sdk.all('/events', { query: { status: 'published' } });
// upload por caminho local (sem montar multipart na mão):
await sdk.upload('post', '/events/{event}/logo', { path: { event: 'MAR2026' }, file: './logo.png' });
// escape hatch sem tipos (cobre 100% do spec):
await sdk.api('POST', '/events', { body: { name: 'Maratona' } });O que o SDK entrega (9.B)
Tipos gerados do OpenAPI (
request/all/paginate/uploadtotalmente tipados).Credencial em camadas (flag → env → config file
0600→ erroexit 4).Retry/backoff exponencial em
429/5xx, respeitandoRetry-After.POST/PATCHnão re-tentam em5xx(evita duplicar escrita);429re-tenta sempre.Paginação via
meta.last_page(all()/paginate()).Upload por caminho de arquivo (lê do disco, monta multipart).
Erros preservam o envelope
{error,message,details}+hintacionável e expõem exit code semântico (EventorApiError.exitCode) pro CLI.
CLI (eventor) — 9.C
Desenhado com stdout = dados, stderr = humanos. Sem TTY (pipe/agente) o stdout é JSON puro.
eventor auth login --api-key sk_live_... # valida em /me e grava ~/.config/eventor/config.json (0600)
eventor event list --json | jq '.data[].code' # dados no stdout
eventor event setup --from spec.json --dry-run # mostra o plano (would_create/would_update/unchanged)
eventor event setup --from spec.json # executa idempotente (organizer→event→races→batches→…)
eventor event publish --event MAR2026
eventor api GET /events --all # escape hatch: cobre 100% do spec, --all pagina tudoExit codes semânticos:
0ok ·1genérico/5xx ·2uso ·3not_found ·4unauthorized ·5conflict.Erro acionável: todo erro vira
{"error":{"code","message","hint"}}no stderr; o agente lêcode(decide) ehint(próximo comando).event setup: workflow consolidado e idempotente;race_pricesaceita o nome da prova (resolvido prarace_id) e, pra limitar vagas,{ "price", "pool" }com o nome do pacote declarado emvacancy_pools(resolvido prapool_id, ADR #19);--dry-runsó faz GETs.registration export: gera o lote de inscritos pra produção (resposta trazdownload_url);--previewfaz o dry-run (contagens de novos/alterados/cancelados) sem gravar;--scope deltaexige um lote anterior.Destrutivo (
api DELETE) exige--yes(agente em CI nunca fica pendurado).eventor skill installinstala oSKILL.mdem~/.claude/skills/eventor/— ensina o agente quando/como usar o CLI.--helpem qualquer comando traz exemplos copiáveis + a tabela de exit codes.
Publicando no npm (@eventor-run/cli + @eventor-run/sdk)
A publicação é automática ao empurrar uma tag vX.Y.Z (workflow release.yml). Pré-requisitos, uma vez:
Criar a org
eventorno npmjs.com (grátis para pacotes públicos).Gerar um automation token (Account → Access Tokens → Granular/Automation, só publish) e salvá-lo como secret
NPM_TOKENdo repositório (Settings → Secrets → Actions). É revogável — não é a credencial pessoal.
Depois, a cada release:
# bump das versões em packages/sdk e packages/cli, commit, então:
git tag v0.1.0 && git push origin v0.1.0 # dispara o workflow → publica sdk depois cliO pnpm -r publish publica em ordem (sdk antes do cli) e converte workspace:* na versão real. O binário instalado chama-se eventor independentemente do nome do pacote (npx @eventor-run/cli ... para uso pontual).
Decisões (PRD cli-eventor-headless §13–14)
Repo separado do backend Laravel; CLI antes do MCP; commander; OpenAPI como fonte de verdade.
Base URL default:
https://eventor.run/api/v1(sobrescrevível por--base-url/EVENTOR_BASE_URL).Distribuição npm (
@eventor-run/cli): decisão da 9.D.
This server cannot be deployed
Maintenance
Related MCP Connectors
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Independent directory of agentic AI tools — search, compare & recommend via MCP. Read-only.
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI agents to dynamically discover and interact with APIs through Swagger/OpenAPI specifications and Postman collections using a strategic four-tool approach. It streamlines API integration by providing universal tools for endpoint discovery, detailed request information, and authenticated execution.1-
- AlicenseAqualityCmaintenanceEnables AI assistants to search, filter, and analyze Microsoft events (conferences, workshops, webinars) using the Microsoft Events API.42MIT
- FlicenseNot gradedqualityCmaintenanceExposes Garmin Connect data and workout management to AI agents, supporting tools, resources, and prompts for health data, workout creation, and coaching workflows.1-
- AlicenseNot gradedqualityFmaintenanceProvides AI assistants with access to OpenAPI specifications, enabling API discovery, schema retrieval, and direct API execution with support for OAuth 2.0 and other authentication methods.7 npm1MIT