The Blue Alliance

io.github.withinfocusPublished by GitHub account withinfocusv1.4.0Updated Oct 24, 2026

The Blue Alliance MCP Server

VerifiedSTDIODesktop onlyWeb Search & ScrapingData & Analytics

Overview

AI-generated overview

Lets an assistant look up FIRST Robotics Competition data from The Blue Alliance: teams, events, matches, rankings, awards, and districts.

What you can do
Wraps The Blue Alliance API in 35+ read-only tools. It retrieves team profiles, participation history, awards and media; event details, participants, rankings, matches and elimination alliances; match scores and breakdowns; and district rankings and events. Historical queries go back to 1992, and responses are validated with Zod schemas.
When to use it
Useful when you want an assistant to answer questions about FRC teams, seasons, events or match results, or to pull competition data for analysis without leaving the chat.
Requirements
Runs locally over stdio, typically via the npm package @withinfocus/tba-mcp-server (Node.js) or the published Docker image. Requires a The Blue Alliance API key supplied through the TBA_API_KEY environment variable, and network access to The Blue Alliance API.
Before you install
The TBA_API_KEY credential is passed in the client configuration or environment, so keep it out of shared configs and repositories. The tools are read-only lookups, but queries are sent to The Blue Alliance's third-party API.

Installation

In SourceWeft

  1. Open The Blue Alliance in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

The Blue Alliance MCP Server

A Model Context Protocol (MCP) server that provides access to The Blue Alliance API for FIRST Robotics Competition data. Enables AI assistants and other MCP clients to retrieve comprehensive FRC team, event, and match information.

Features

  • Team Information: Get detailed team profiles, participation history, awards, and media
  • Event Data: Access event details, rankings, matches, and elimination alliances
  • Match Results: Retrieve match data with scores, alliances, and breakdowns
  • Historical Data: Query data from 1992 to the current year
  • Type Safety: All responses validated with Zod schemas
  • Comprehensive Coverage: 35+ tools covering all major TBA API endpoints

Installation

npm (Recommended)

bash
npm install -g @withinfocus/tba-mcp-server

Docker

Pull the image from GitHub Container Registry:

bash
docker pull ghcr.io/withinfocus/tba-mcp-server:latest

Or build locally:

bash
git clone https://github.com/withinfocus/tba-mcp-server.gitcd tba-mcp-serverdocker build -t tba-mcp-server .

Configuration

  1. Get an API key from The Blue Alliance

  2. Set your API key as an environment variable:

bash
export TBA_API_KEY=your_api_key_here

Or create a .env file:

bash
TBA_API_KEY=your_api_key_here

Usage

With npm

Add to your MCP client configuration (e.g., Claude Desktop):

json
{  "mcpServers": {    "tba": {      "command": "npx",      "args": ["-y", "@withinfocus/tba-mcp-server"],      "env": {        "TBA_API_KEY": "your_api_key_here"      }    }  }}

With Docker

Add to your MCP client configuration:

json
{  "mcpServers": {    "tba": {      "command": "docker",      "args": [        "run",        "--rm",        "-i",        "--init",        "-e",        "TBA_API_KEY=your_api_key_here",        "ghcr.io/withinfocus/tba-mcp-server:latest"      ]    }  }}

Or run directly:

bash
docker run --rm -i --init \  -e TBA_API_KEY=your_api_key_here \  ghcr.io/withinfocus/tba-mcp-server:latest

Available Tools

Team Information (24 tools)

Access comprehensive team data including profiles, participation history, events, matches, awards, and media.

Key tools: get_team, get_team_events, get_team_matches, get_team_awards, get_team_media

Event Information (19 tools)

Query event details, participants, rankings, matches, and analytics.

Key tools: get_event, get_events, get_event_teams, get_event_rankings, get_event_matches, get_event_oprs

Match Information (3 tools)

Retrieve detailed match data including scores, alliances, and robot tracking.

Key tools: get_match, get_match_simple, get_match_zebra

District Tools (8 tools)

Access district rankings, events, and team information.

Key tools: get_districts, get_district_rankings, get_district_events, get_district_teams

General/Utility Tools (6 tools)

Paginated team listings and API status information.

Key tools: get_teams, get_teams_by_year, get_status

Complete Documentation

  • All Tools - Complete reference for all 35+ tools with parameters and examples
  • Data Schemas - Detailed schema documentation for all response types

Quick Examples

Get team information

typescript
// Get detailed team profileget_team(team_key: "frc86")
// Get team's events in a yearget_team_events(team_key: "frc86", year: 2024)
// Get team's awardsget_team_awards(team_key: "frc86", year: 2024)

Analyze an event

typescript
// Get event detailsget_event(event_key: "2024casj")
// Get participating teamsget_event_teams(event_key: "2024casj")
// Get rankingsget_event_rankings(event_key: "2024casj")
// Get elimination alliancesget_event_alliances(event_key: "2024casj")

Get match data

typescript
// Get detailed match informationget_match(match_key: "2024casj_qm1")
// Get robot tracking data (if available)get_match_zebra(match_key: "2024casj_qm1")

Contributing

Contributions are welcome! See CONTRIBUTING.md for development setup, testing guidelines, and how to add new tools.

Related Links

Source: README.md at commit 1be89a9

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.4.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts