活动票务管理服务

一个通过Eventbrite API v3提供全面活动管理和票务功能的MCP(模型上下文协议)服务器。

  • by prmichaelsen
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 prmichaelsen/eventbrite-mcp

使用说明

@普密切尔森/艾文布莱特·麦克普

MCP(模型上下文协议)服务器,通过Eventbrite API v3提供全面的事件管理和票务功能。

注意:并非此存储库中的所有工具都经过测试。支持工单创建工作流。如果其他工具失败,请为该工具创建问题。

特性

  • 事件管理:创建、更新、发布、删除、取消和复制事件
  • 票务管理:创建、更新和管理票证类
  • 订单管理:检索和列出订单
  • 与会者管理:获取并列出与会者信息
  • 组织支持:管理组织、场地和成员
  • 折扣管理:创建和管理折扣码
  • 媒体与内容:上传媒体并管理结构化内容
  • 网络钩子:创建和管理webhooks
  • 类别和格式:访问事件类别和格式
  • 库存管理:管理库存层级
  • 还有更多:共42个工具-请参阅 ./src/tools 获取完整列表

安装

使用npx(推荐)

npx @prmichaelsen/eventbrite-mcp

配置

环境变量

创建一个 .env 在项目根目录中创建文件或设置以下环境变量:

# Required
EVENTBRITE_API_TOKEN=your_eventbrite_api_token

# Optional
EVENTBRITE_API_URL=https://www.eventbriteapi.com/v3  # Default API URL
EVENTBRITE_TIMEOUT=30000                              # Request timeout in ms
EVENTBRITE_RETRIES=3                                  # Number of retry attempts

获取Eventbrite API代币

  1. 首选 Eventbrite API密钥页
  2. 登录您的Eventbrite帐户
  3. 复制您的私人令牌
  4. 将其添加到MCP客户端配置中(见下文)

注: 如果您需要访问其他用户的数据,则必须创建自己的Eventbrite OAuth应用程序。对于个人使用,私人令牌就足够了。

MCP客户端配置

添加到您的MCP客户端配置中(例如,Claude Desktop、Kilo Code):

{
  "mcpServers": {
    "eventbrite": {
      "command": "npx",
      "args": ["-y", "@prmichaelsen/eventbrite-mcp"],
      "env": {
        "EVENTBRITE_API_TOKEN": "your_eventbrite_api_token"
      }
    }
  }
}

工具示例

create_event

在Eventbrite上创建一个新活动。

参数:

  • name (必填):事件名称
  • startTime (必填):ISO 8601格式的开始时间
  • endTime (必填):ISO 8601格式的结束时间
  • timezone (必填):时区(例如,“美洲/纽约”)
  • currency (必填):货币代码(例如“USD”)
  • description (可选):事件描述(支持HTML)
  • online (可选):这是否是一个在线活动
  • listed (可选):是否公开上市
  • capacity (可选):最大容量
  • organizationId (可选):组织ID

例子:

{
  "name": "Tech Conference 2024",
  "description": "Annual technology conference",
  "startTime": "2024-12-31T09:00:00",
  "endTime": "2024-12-31T17:00:00",
  "timezone": "America/New_York",
  "currency": "USD",
  "online": false,
  "listed": true,
  "capacity": 500
}

update_事件

按事件ID更新现有事件。支持部分更新。

参数:

  • event_id (必填):事件ID
  • name (可选):具有html属性的事件名称对象
  • summary (可选):事件摘要
  • start (可选):使用时区和utc开始日期时间
  • end (可选):使用时区和utc结束日期时间
  • currency (可选):货币代码
  • online_event (可选):仅在线
  • listed (可选):可公开搜索
  • 另外还有20+个可选字段

例子:

{
  "event_id": "123456789",
  "name": { "html": "Updated Conference Name" },
  "summary": "New event description",
  "listed": true
}

create_ticket_class

为活动创建门票类别。

参数:

  • eventId (必填):事件ID
  • name (必填):票类名称
  • quantityTotal (必填):可用门票总数
  • free (可选):门票是否免费
  • cost (可选):以小单位表示的门票费用(例如,美分)
  • currency (可选):货币代码
  • description (可选):门票描述
  • salesStart (可选):销售开始时间(ISO 8601)
  • salesEnd (可选):销售结束时间(ISO 8601)

例子:

{
  "eventId": "123456789",
  "name": "General Admission",
  "quantityTotal": 100,
  "free": false,
  "cost": 5000,
  "currency": "USD",
  "description": "Standard entry ticket"
}

发布事件

发布活动以使其直播并可用于门票销售。

参数:

  • event_id (必填):事件ID

例子:

{
  "event_id": "123456789"
}

所有可用工具

有关所有42个支持工具的完整列表,请参阅 ./src/tools 目录。

工具类别:

  • 事件(9工具)
  • 门票(4个工具)
  • 订单(2个工具)
  • 与会者(2个工具)
  • 组织(3个工具)
  • 场地(4个工具)
  • 折扣(5工具)
  • 类别和格式(6个工具)
  • Webhooks(3个工具)
  • 媒体和内容(4个工具)
  • 库存层级(5个工具)
  • 显示设置(2个工具)
  • 问题(3个工具)
  • 用户(1个工具)
  • API文档(1个工具)

用作图书馆

选项1:MCP身份验证集成(多租户)

对于多租户应用程序,使用 @prmichaelsen/mcp认证:

import { createEventbriteServer } from '@prmichaelsen/eventbrite-mcp/factory';
import { wrapServer } from '@prmichaelsen/mcp-auth';

const wrappedServer = wrapServer({
  serverFactory: (accessToken: string, userId: string) => {
    return createEventbriteServer(accessToken, userId);
  },
  authProvider: new FirebaseAuthProvider({ projectId: 'your-project' }),
  tokenResolver: new PlatformTokenResolver({
    platformUrl: 'https://your-platform.com',
    serviceToken: process.env.PLATFORM_SERVICE_TOKEN
  }),
  resourceType: 'eventbrite',
  transport: { type: 'sse', port: 8080, basePath: '/mcp' }
});

await wrappedServer.start();

选项2:个人工具使用(OpenAI代理)

在您的应用程序中导入和使用单个工具:

import { CreateEventTool, EventbriteClient, EventbriteConfig } from '@prmichaelsen/eventbrite-mcp';

// Configure the Eventbrite client
const config: EventbriteConfig = {
  apiToken: process.env.EVENTBRITE_API_TOKEN!, // Required
  apiUrl: 'https://www.eventbriteapi.com/v3',
  timeout: 30000,
  retries: 3
};

const client = new EventbriteClient(config);
const createEventTool = new CreateEventTool(client);

// Use the tool
const result = await createEventTool.execute({
  name: "My Event",
  startTime: "2024-12-31T09:00:00",
  endTime: "2024-12-31T17:00:00",
  timezone: "America/New_York",
  currency: "USD"
});

所需的环境变量:

  • EVENTBRITE_API_TOKEN:您的Eventbrite API代币(必需)

所有57个工具类和 createServer 导出工厂功能。看 src/index.ts 查看完整的出口清单。

发展

设置

# Clone the repository
git clone https://github.com/prmichaelsen/eventbrite-mcp.git
cd eventbrite-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode with watch
npm run watch

项目结构

eventbrite-mcp/
├── src/
│   ├── server.ts              # Main MCP server
│   ├── eventbrite/
│   │   └── client.ts          # Eventbrite API client
│   ├── tools/                 # MCP tool implementations (42 tools)
│   ├── types/                 # TypeScript type definitions
│   └── utils/                 # Utility functions
├── agent/                     # Development documentation
├── package.json
├── tsconfig.json
└── README.md

测试

npm test

建筑

npm run build

许可证

麻省理工学院

作者

帕特里克·迈克尔森

链接