MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

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

创建于 1/6/2026
更新于 3 days ago
Repository documentation and setup instructions

TeamSnap MCP Server

A Model Context Protocol (MCP) server that connects Claude to your TeamSnap account. Access your teams, rosters, events, and availability data directly from Claude Desktop or CLI.

Features

  • Teams: List and view all your TeamSnap teams
  • Rosters: Get player and coach information
  • Events: View games, practices, and other events
  • Availability: Check who's available for events
  • Secure: OAuth 2.0 authentication with encrypted token storage
  • AWS Deployment: Optional serverless deployment with permanent HTTPS callback URL

Quick Start

1. Get TeamSnap OAuth Credentials

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

2. Choose Your Deployment

Option A: Local MCP Server

For local development with a tunnel for OAuth callback.

git clone https://github.com/yourusername/TeamSnapMCP.git
cd TeamSnapMCP
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"
      }
    }
  }
}

Redirect URI: Use a tunnel like cloudflared tunnel --url http://localhost:8374 for HTTPS callback.

Option B: AWS Serverless (Recommended)

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

cd aws
npm install

Set environment variables:

export AWS_ACCESS_KEY_ID=your-aws-key
export AWS_SECRET_ACCESS_KEY=your-aws-secret
export AWS_REGION=us-west-2
export TEAMSNAP_CLIENT_ID=your-client-id
export TEAMSNAP_CLIENT_SECRET=your-client-secret

Deploy:

node scripts/deploy.cjs

This creates:

  • API Gateway with permanent HTTPS URL
  • Lambda function for MCP server
  • DynamoDB table for token storage

Then use the wrapper for Claude Desktop:

{
  "mcpServers": {
    "teamsnap": {
      "command": "node",
      "args": ["/path/to/TeamSnapMCP/dist/wrapper.js"],
      "env": {
        "TEAMSNAP_MCP_ENDPOINT": "https://your-api-id.execute-api.us-west-2.amazonaws.com/mcp"
      }
    }
  }
}

3. Authenticate

Tell Claude: "Connect to TeamSnap"

A browser will open for OAuth login. Once complete, you're connected!

Available Tools

| Tool | Description | |------|-------------| | teamsnap_auth | Connect to TeamSnap | | teamsnap_auth_status | Check connection status | | teamsnap_logout | Disconnect from TeamSnap | | teamsnap_list_teams | List all your teams | | teamsnap_get_team | Get team details | | teamsnap_get_roster | Get players and coaches | | teamsnap_get_events | Get team events | | teamsnap_get_event | Get event details | | teamsnap_get_availability | Get event availability |

Example Prompts

  • "What teams do I have in TeamSnap?"
  • "Show me the roster for the Jr Kraken"
  • "What games do we have scheduled this month?"
  • "Who's available for Saturday's game?"

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    AWS (Optional)                           │
│  ┌──────────────┐    ┌──────────────┐    ┌───────────────┐ │
│  │ API Gateway  │───▶│   Lambda     │───▶│   DynamoDB    │ │
│  │   (HTTPS)    │    │ (MCP Server) │    │   (Tokens)    │ │
│  └──────────────┘    └──────────────┘    └───────────────┘ │
└─────────────────────────────────────────────────────────────┘
         ▲
         │ HTTP/SSE
         ▼
   ┌───────────┐         ┌───────────────┐
   │  Wrapper  │◀───────▶│ Claude Desktop│
   │  (stdio)  │         │               │
   └───────────┘         └───────────────┘

Security

  • OAuth tokens encrypted with AES-256-GCM (local) or stored in DynamoDB (AWS)
  • Only read access requested from TeamSnap
  • No credentials stored in code

Development

# Install dependencies
npm install

# Build
npm run build

# Run locally
node dist/index.js

# Run wrapper (connects to AWS)
node dist/wrapper.js

License

MIT

快速设置
此服务器的安装指南

安装包 (如果需要)

npx @modelcontextprotocol/server-teamsnapmcp

Cursor 配置 (mcp.json)

{ "mcpServers": { "mrelph-teamsnapmcp": { "command": "npx", "args": [ "mrelph-teamsnapmcp" ] } } }