MT

mrelph/teamsnapmcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

5 stars 5 forks 质量 64 趋势 17

MCP server for TeamSnap - access teams, rosters, and events from Claude

概览

A Model Context Protocol (MCP) server that connects Claude to your TeamSnap account. Read and manage teams, rosters, events, availability, volunteer sign-ups, and team communications directly from Claude Desktop or CLI. - — teams, rosters, events, availability, locations, contacts, announcements, assignments, opponents, standings, stats, forums, calendars, and custom fields - — set RSVPs, create/update/cancel events, create and assign tracked items (snacks, volunteers, carpools), send team messages, and send broadcast email/push announcements - — preview: true by default returns the payload without calling TeamSnap; destructive writes additionally require confirm: true; POST tools support an optional idempotency_key. See Write Tools & Safety. - — events always returned in their own timezone; optional viewer-timezone field for travel - — OAuth 2.0 with AES-256-GCM encrypted local storage or DynamoDB - — Run locally, via npx, or on AWS Lambda - Node.

README

以下为原文 README 节选,完整内容请查看原文。

TeamSnap MCP Server

A Model Context Protocol (MCP) server that connects Claude to your TeamSnap account. Read and manage teams, rosters, events, availability, volunteer sign-ups, and team communications directly from Claude Desktop or CLI.

Features

  • 21 read tools — teams, rosters, events, availability, locations, contacts, announcements, assignments, opponents, standings, stats, forums, calendars, and custom fields
  • 8 write tools — set RSVPs, create/update/cancel events, create and assign tracked items (snacks, volunteers, carpools), send team messages, and send broadcast email/push announcements
  • Safety rails on every write — preview: true by default returns the payload without calling TeamSnap; destructive writes additionally require confirm: true; POST tools support an optional idempotency_key. See Write Tools & Safety.
  • Localized event times — events always returned in their own timezone; optional viewer-timezone field for travel
  • Secure — OAuth 2.0 with AES-256-GCM encrypted local storage or DynamoDB
  • Flexible Deployment — Run locally, via npx, or on AWS Lambda

Prerequisites

Quick Start

1. Get TeamSnap OAuth Credentials

  1. Go to TeamSnap Developer Portal
  2. Create a new application
  3. Set the redirect URI (see deployment options below)
  4. Note your Client ID and Client Secret

2. Choose Your Deployment

Option A: Local MCP Server

Best for development. Requires a tunnel (e.g., Cloudflare) for the OAuth callback.

git clone https://github.com/mrelph/TeamSnapMCP.git
cd TeamSnapMCP
cp .env.example .env   # Add your credentials
npm install
npm run build

Add to Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "teamsnap": {
      "command": "node",
      "args": ["/path/to/TeamSnapMCP/dist/index.js"],
      "env": {
        "TEAMSNAP_CLIENT_ID": "your-client-id",
        "TEAMSNAP_CLIENT_SECRET": "your-client-secret",
        "TEAMSNAP_REDIRECT_URI": "https://your-tunnel-url/callback"
      }
    }
  }
}

Tip: Use cloudflared tunnel --url http://localhost:8374 to create an HTTPS callback URL.

Option B: npx (Connects to AWS Deployment)

Easiest option if the AWS backend is already deployed. No local clone needed.

{
  "mcpServers": {
    "teamsnap": {
      "command": "npx",
      "args": ["-y", "teamsnap-mcp"],
      "env": {
        "TEAMSNAP_MCP_ENDPOINT": "https://your-api-id.execute-api.us-east-1.amazonaws.com/mcp"
      }
    }
  }
}

Option C: AWS Serverless

Deploy to AWS Lambda for a permanent HTTPS callback URL — no tunnels needed.

cd aws
npm install

Set environment variables:

export AWS_ACCESS_KEY_ID=your-aws-key
在 GitHub 查看完整 README

安装

npx -y teamsnap-mcp
新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "teamsnap": { "command": "node", "args": ["/path/to/TeamSnapMCP/dist/index.js"], "env": { "TEAMSNAP_CLIENT_ID": "your-client-id", "TEAMSNAP_CLIENT_SECRET": "your-client-secret", "TEAMSNAP_REDIRECT_URI": "https://your-tunnel-url/callback" } } } }