Seatgeek Mcp

Seatgeek Mcp

🚀 seatgeek - mcp

seatgeek - mcp 是一个全面的 MCP 服务器,以 TypeScript 库的形式公开了 SeatGeek 工具的注册表,涵盖活动、表演者、场馆、区域信息和推荐等内容。

🚀 快速开始

🔍 演示

![seatgeek - mcp 演示](https://github.com/user - attachments/assets/699c41da - 9d12 - 48d0 - b413 - c532c1397cad)

📋 前提条件

  • Node.js >= 18.0.0
  • npm >= 8.0.0

📦 安装指南

npm install seatgeek - mcp

💻 使用示例

基础用法

作为独立服务器使用:

# 标准输入输出传输(默认)
npm start

# HTTP 流式传输
MCP_HTTP = 1 PORT = 8080 npm start

✨ 主要特性

🛠️ 工具列表

  • find_events:可根据表演者、地点、日期或场馆搜索活动。该工具针对用户查询进行了优化,能精准查找特定活动。若查询涉及表演者,会先查找该表演者,再查找其相关活动;否则直接搜索活动,并返回包含场馆信息的结构化活动数据。
  • find_event_recommendations:根据表演者、活动或地点获取个性化活动推荐。此工具先根据查询搜索表演者和/或活动,再使用其 ID 查找类似活动,还可使用地点参数获取附近活动。
  • find_performer_recommendations:根据表演者、活动或地点获取个性化表演者推荐。该工具先根据查询搜索表演者和/或活动,再使用其 ID 查找类似表演者。
  • retrieve_event_venue_information:获取特定活动的详细座位信息,包括区域和排数。此工具先根据提供的查询搜索活动,再检索详细的场馆布局信息。

⚙️ 环境变量

属性 详情
SEATGEEK_CLIENT_ID 你的 SeatGeek API 客户端 ID(必需)
SEATGEEK_SECRET 你的 SeatGeek API 密钥(可选)
MCP_HTTP 设置为任意值以启用 HTTP 传输,而非标准输入输出
PORT 使用 HTTP 传输时监听的端口(默认:8080)

⚙️ 设置环境变量

要使用此 MCP 服务器,需在根目录创建一个 .env 文件,并填入你的 SeatGeek API 凭证:

  1. .env.example 文件复制为 .env
cp .env.example .env
  1. 编辑 .env 文件,将占位符值替换为你实际的 SeatGeek API 凭证。

你可以在 SeatGeek 平台 创建账户来获取 SeatGeek API 凭证。

🔧 技术细节

💻 开发相关

🛠️ 环境搭建

npm install

🛠️ 构建项目

npm run build

🛠️ 启动开发服务器

npm run dev

🛠️ 清理构建产物

npm run clean

🧪 测试服务器

你可以通过以下几种方式测试服务器:

  1. 使用 HTTP 传输(测试最简单的方式)
MCP_HTTP = 1 PORT = 8080 npm start
  1. 使用 curl 测试工具(遵循正确的 MCP 协议序列)
    • 初始化连接(必需的第一步):
curl -v -X POST http://localhost:8080 \
-H "Content - Type: application/json" \
-H "Accept: application/json, text/event - stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024 - 06 - 11", "capabilities": {}, "clientInfo": {"name": "curl", "version": "1.0.0"}}}'
  • 从响应头中提取会话 ID(查找 mcp - session - id
  • 使用会话 ID 进行后续请求
# 列出可用工具
curl -X POST http://localhost:8080 \
-H "Content - Type: application/json" \
-H "Accept: application/json, text/event - stream" \
-H "Mcp - Session - Id: YOUR_SESSION_ID_HERE" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'

# 调用特定工具(示例)
curl -X POST http://localhost:8080 \
-H "Content - Type: application/json" \
-H "Accept: application/json, text/event - stream" \
-H "Mcp - Session - Id: YOUR_SESSION_ID_HERE" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "find_events", "arguments": {"q": "concert", "per_page": 5}}}'

完整的工作示例请参考:

  • [examples/curl - example.sh](examples/curl - example.sh) - 展示完整请求序列的 shell 脚本
  • [examples/node - example.js](examples/node - example.js) - 展示编程式使用的 Node.js 脚本
  1. 使用测试脚本
# 运行简单的测试服务器脚本
npm run test - server

# 运行全面的工具测试(需要服务器单独运行)
npm run test - tools

该服务器实现了模型上下文协议(MCP)规范,因此可与任何兼容 MCP 的客户端一起使用。

🖥️ 与 Claude Desktop 配合使用

📋 前提条件

  • 已安装 Claude Desktop
  • 在设置 -> 开发者选项下添加了 claude_desktop_config.json

🛠️ 设置说明

mcpServers 列表中添加:

"seatgeek - mcp": {
"command": "node",
"args": ["/path - to/seatgeek - mcp/dist/server.js"],
"env": {
"SEATGEEK_CLIENT_ID": "your - client - id"
}
}

🖥️ 与 OpenWebUI 配合使用

你可以通过 mcpo(MCP Over HTTP)代理将此 MCP 服务器与 OpenWebUI 配合使用,该代理会根据你的 MCP 工具模式自动生成 OpenAPI 文档。

📋 前提条件

  • 系统上安装了 Docker(如果使用 uv 则可选)
  • 已安装并运行 OpenWebUI

🛠️ 设置说明

  1. 启动 mcpo 代理
docker run -p 8000:8000 -v $(pwd):/workspace -w /workspace ghcr.io/open - webui/mcpo:main -- npm start

或者

uvx mcpo --port 8000 -- npm start
  1. 验证代理是否正在运行
    • 打开浏览器,访问 http://localhost:8000/docs 查看自动生成的 Swagger UI 文档
    • 也可以在 http://localhost:8000/openapi.json 查看 OpenAPI 规范
  2. 连接到 OpenWebUI
    • 打开 OpenWebUI
    • 转到设置 > 工具与集成
    • 添加一个新的兼容 OpenAPI 的工具
    • 使用 URL:http://localhost:8000

💡 示例用法

连接后,你可以在 OpenWebUI 中使用这些工具进行如下请求:

  • 搜索表演者:{"q": "washington nationals", "per_page": 5}
  • 搜索场馆:{"city": "New York", "per_page": 5}

mcpo 代理会自动处理 OpenAPI REST 接口和 MCP 协议之间的转换,使你的 MCP 工具可通过标准 REST 端点访问,便于 OpenWebUI 集成。

  • 0 关注
  • 0 收藏,7 浏览
  • system 提出于 2025-09-28 04:15

相似服务问题