Shotgun MCP
MCP server that exposes aggregated Shotgun event sales, net revenue, ticket quotas, and audience stats to AI assistants via natural language queries.
README
<p align="center"> <a href="https://shotgun.live"> <img src="https://www.google.com/s2/favicons?domain=shotgun.live&sz=128" alt="Shotgun" width="72" height="72"> </a> </p>
<h1 align="center">đïž Shotgun MCP</h1>
<p align="center"> Serveur <b>MCP</b> (Model Context Protocol) <b>non officiel</b> qui expose les ventes de tes Ă©vĂ©nements <a href="https://shotgun.live">Shotgun</a> Ă un assistant IA : billets, revenu net, remboursement potentiel, quotas par tarif et audience â le tout en <b>donnĂ©es agrĂ©gĂ©es</b>. </p>
<p align="center"> <a href="https://modelcontextprotocol.io">đ Model Context Protocol</a> · <a href="https://shotgun.live">đ Shotgun</a> </p>
⚠Ce que ça fait
Un serveur MCP en HTTP streamable que tu ajoutes comme connecteur dans un client compatible (Claude, etc.). L'assistant peut alors interroger tes ventes en langage naturel : « oĂč en sont les ventes de ce soir ? », « quel est mon CA net ? », « combien de filles/gars ? ».
đ ïž Outils exposĂ©s
| Outil | Description |
|---|---|
list_events |
ĂvĂ©nements active (Ă venir / en cours), past (terminĂ©s) ou all |
event_report |
Rapport de ventes complet d'un événement (accepte un id, slug ou nom) |
dashboard |
Vue agrégée de tous les événements actifs (ventes, CA, CA net, restants) |
đ event_report renvoie
- Ventes : vendus, valides, scannés (détectés via
ticket_scanned_at), annulés, restants, taux de remplissage - Revenu : brut, frais Shotgun, net, remboursement potentiel ce soir (payés non scannés)
- Rythme : ventes sur la derniĂšre heure / 24 h
- Tarifs : vendus / quota par type de billet, avec statut sold-out
- Audience (agrégée) : répartition filles/gars, top villes
â ïž Aucune donnĂ©e personnelle n'est renvoyĂ©e â tout est agrĂ©gĂ© (compteurs, pourcentages).
đ Installation
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
cp .env.example .env # puis renseigne tes identifiants
Configuration (.env)
SHOTGUN_TOKEN=ton_token_shotgun
SHOTGUN_ORGANIZER_ID=ton_id_organisateur
# Jeton d'authentification exigé des clients (Authorization: Bearer <token>)
MCP_AUTH_TOKEN=un_secret_long_et_aleatoire
MCP_HOST=127.0.0.1
MCP_PORT=8790
# HĂŽte public derriĂšre le reverse proxy (anti-DNS-rebinding)
MCP_PUBLIC_HOST=shotgun-mcp.exemple.tld
OĂč trouver le SHOTGUN_TOKEN / SHOTGUN_ORGANIZER_ID : dans ton
dashboard organisateur â intĂ©gration > API.
â¶ïž Lancer
./venv/bin/python server.py
# â http://127.0.0.1:8790/mcp
En production (PM2) :
pm2 start ecosystem.config.js
pm2 save
đ Exposition HTTPS (reverse proxy)
Le serveur écoute en local ; place un reverse proxy HTTPS devant (nginx/Caddy). Points importants pour le transport SSE du MCP :
location / {
proxy_pass http://127.0.0.1:8790;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_buffering off; # SSE : pas de buffering
proxy_read_timeout 3600s; # connexions longues
chunked_transfer_encoding on;
}
Renseigne l'hĂŽte public dans MCP_PUBLIC_HOST (sinon la protection
anti-DNS-rebinding du MCP rejette les requĂȘtes proxifiĂ©es).
đ Ajouter le connecteur
Endpoint : https://<ton-hĂŽte>/mcp
En-tĂȘte d'authentification : Authorization: Bearer <MCP_AUTH_TOKEN>
đ SĂ©curitĂ©
- Auth par jeton : si
MCP_AUTH_TOKENest dĂ©fini, toute requĂȘte sans le bonAuthorization: Bearerreçoit401. Laisse-le vide uniquement en local. - Anti-DNS-rebinding : seuls les hĂŽtes listĂ©s (
MCP_PUBLIC_HOST+ localhost) sont acceptés. - Les secrets vivent dans
.env(non versionné). Aucune donnée personnelle des acheteurs n'est exposée.
đ§± Structure
shotgun-mcp/
âââ server.py # Serveur MCP (outils + auth + app HTTP)
âââ shotgun_client.py # Client async de l'API Shotgun (agrĂ©gation des stats)
âââ requirements.txt
âââ .env.example
âââ ecosystem.config.js # PM2
âââ README.md
â ïž Avertissement / Mentions lĂ©gales
Projet personnel et non officiel, en aucun cas affilié, associé, autorisé ni soutenu par Shotgun (Shotgun Live SAS). « Shotgun », le logo et les marques associées sont la propriété exclusive de leurs détenteurs respectifs, utilisés ici à des fins d'identification uniquement. Tu es responsable du respect des conditions d'utilisation de Shotgun. Utilisation à tes risques, sans garantie.
đ Licence
MIT.
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.