Seatgeek Mcp

Seatgeek Mcp

🚀 seatgeek-mcp

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

🚀 快速开始

🔍 演示

seatgeek-mcp-demo

📋 前提条件

  • 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
    
  2. 编辑 .env 文件,将占位符值替换为实际的 SeatGeek API 凭证。

可通过在 SeatGeek Platform 创建账户获取 SeatGeek API 凭证。

📚 详细文档

💻 开发相关

🔧 环境搭建

npm install

🏗️ 构建项目

npm run build

👨‍💻 开发服务器

npm run dev

🧹 清理构建

npm run clean

🧪 测试服务器

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

  1. 使用 HTTP 传输(测试最简单的方式)

    MCP_HTTP=1 PORT=8080 npm start
    
  2. 使用 curl 测试工具(遵循正确的 MCP 协议序列)

    MCP 协议要求使用带有正确头部的特定请求序列:

    a. 初始化连接(必需的第一步):

    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"}}}'
    

    b. 从响应头部提取会话 ID(查找 mcp-session-id

    c. 使用会话 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 - 演示完整请求序列的 shell 脚本
  • 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
    
  2. 验证代理是否运行

    • 打开浏览器,访问 http://localhost:8000/docs 查看自动生成的 Swagger UI 文档
    • 也可在 http://localhost:8000/openapi.json 查看 OpenAPI 规范
  3. 连接到 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 收藏,8 浏览
  • system 提出于 2025-09-28 04:18

相似服务问题