import { Tool } from '@modelcontextprotocol/sdk/types.js';
import {
toMCPSchema,
GetTeamInputSchema,
GetTeamEventsInputSchema,
GetTeamAwardsInputSchema,
GetTeamMatchesInputSchema,
GetEventsInputSchema,
GetEventInputSchema,
GetEventTeamsInputSchema,
GetEventRankingsInputSchema,
GetEventMatchesInputSchema,
GetEventAlliancesInputSchema,
GetEventInsightsInputSchema,
GetEventDistrictPointsInputSchema,
GetTeamYearsParticipatedInputSchema,
GetTeamDistrictsInputSchema,
GetTeamRobotsInputSchema,
GetTeamMediaInputSchema,
GetTeamEventMatchesInputSchema,
GetTeamsInputSchema,
GetStatusInputSchema,
GetMatchInputSchema,
GetEventOprsInputSchema,
GetEventAwardsInputSchema,
GetTeamAwardsAllInputSchema,
GetTeamEventsAllInputSchema,
GetTeamEventStatusInputSchema,
GetDistrictsInputSchema,
GetDistrictRankingsInputSchema,
GetTeamsSimpleInputSchema,
GetTeamsKeysInputSchema,
GetTeamsByYearInputSchema,
GetTeamsByYearSimpleInputSchema,
GetTeamsByYearKeysInputSchema,
GetTeamSimpleInputSchema,
GetEventSimpleInputSchema,
GetEventsSimpleInputSchema,
GetEventsKeysInputSchema,
GetMatchSimpleInputSchema,
GetTeamEventsSimpleInputSchema,
GetTeamEventsKeysInputSchema,
GetTeamEventAwardsInputSchema,
GetTeamMatchesSimpleInputSchema,
GetTeamMatchesKeysInputSchema,
GetTeamSocialMediaInputSchema,
GetTeamMediaByTagInputSchema,
GetTeamMediaByTagYearInputSchema,
GetEventTeamsSimpleInputSchema,
GetEventTeamsKeysInputSchema,
GetEventMatchesSimpleInputSchema,
GetEventMatchesKeysInputSchema,
GetEventPredictionsInputSchema,
GetMatchZebraInputSchema,
GetTeamHistoryInputSchema,
GetTeamEventStatusesInputSchema,
GetTeamEventMatchesSimpleInputSchema,
GetTeamEventMatchesKeysInputSchema,
GetDistrictEventsInputSchema,
GetDistrictEventsSimpleInputSchema,
GetDistrictEventsKeysInputSchema,
GetDistrictTeamsInputSchema,
GetDistrictTeamsSimpleInputSchema,
GetDistrictTeamsKeysInputSchema,
} from './schemas.js';
export const tools: Tool[] = [
{
name: 'get_team',
description: 'Get detailed information about a specific FRC team',
inputSchema: toMCPSchema(GetTeamInputSchema),
},
{
name: 'get_team_events',
description: 'Get events that a team has participated in for a given year',
inputSchema: toMCPSchema(GetTeamEventsInputSchema),
},
{
name: 'get_team_awards',
description: 'Get awards won by a team in a specific year',
inputSchema: toMCPSchema(GetTeamAwardsInputSchema),
},
{
name: 'get_team_matches',
description: 'Get matches played by a team in a specific year',
inputSchema: toMCPSchema(GetTeamMatchesInputSchema),
},
{
name: 'get_events',
description: 'Get all FRC events for a specific year',
inputSchema: toMCPSchema(GetEventsInputSchema),
},
{
name: 'get_event',
description: 'Get detailed information about a specific event',
inputSchema: toMCPSchema(GetEventInputSchema),
},
{
name: 'get_event_teams',
description: 'Get teams participating in a specific event',
inputSchema: toMCPSchema(GetEventTeamsInputSchema),
},
{
name: 'get_event_rankings',
description: 'Get team rankings for a specific event',
inputSchema: toMCPSchema(GetEventRankingsInputSchema),
},
{
name: 'get_event_matches',
description: 'Get matches for a specific event',
inputSchema: toMCPSchema(GetEventMatchesInputSchema),
},
{
name: 'get_event_alliances',
description: 'Get elimination alliances for a specific event',
inputSchema: toMCPSchema(GetEventAlliancesInputSchema),
},
{
name: 'get_event_insights',
description: 'Get event-specific insights and statistics',
inputSchema: toMCPSchema(GetEventInsightsInputSchema),
},
{
name: 'get_event_district_points',
description: 'Get district points for teams at an event',
inputSchema: toMCPSchema(GetEventDistrictPointsInputSchema),
},
{
name: 'get_team_years_participated',
description: 'Get years that a team has participated in competition',
inputSchema: toMCPSchema(GetTeamYearsParticipatedInputSchema),
},
{
name: 'get_team_districts',
description: 'Get district history for a team',
inputSchema: toMCPSchema(GetTeamDistrictsInputSchema),
},
{
name: 'get_team_robots',
description: 'Get robot names for a team by year',
inputSchema: toMCPSchema(GetTeamRobotsInputSchema),
},
{
name: 'get_team_media',
description: 'Get media for a team in a specific year',
inputSchema: toMCPSchema(GetTeamMediaInputSchema),
},
{
name: 'get_team_event_matches',
description: 'Get matches for a team at a specific event',
inputSchema: toMCPSchema(GetTeamEventMatchesInputSchema),
},
{
name: 'get_teams',
description: 'Get list of teams with pagination',
inputSchema: toMCPSchema(GetTeamsInputSchema),
},
{
name: 'get_status',
description: 'Get TBA API status information',
inputSchema: toMCPSchema(GetStatusInputSchema),
},
{
name: 'get_match',
description: 'Get detailed information about a specific match',
inputSchema: toMCPSchema(GetMatchInputSchema),
},
{
name: 'get_event_oprs',
description: 'Get OPR, DPR, and CCWM ratings for teams at an event',
inputSchema: toMCPSchema(GetEventOprsInputSchema),
},
{
name: 'get_event_awards',
description: 'Get awards from a specific event',
inputSchema: toMCPSchema(GetEventAwardsInputSchema),
},
{
name: 'get_team_awards_all',
description: 'Get all awards won by a team across all years',
inputSchema: toMCPSchema(GetTeamAwardsAllInputSchema),
},
{
name: 'get_team_events_all',
description: 'Get all events a team has participated in across all years',
inputSchema: toMCPSchema(GetTeamEventsAllInputSchema),
},
{
name: 'get_team_event_status',
description: 'Get team competition rank and status at a specific event',
inputSchema: toMCPSchema(GetTeamEventStatusInputSchema),
},
{
name: 'get_districts',
description: 'Get all districts for a specific year',
inputSchema: toMCPSchema(GetDistrictsInputSchema),
},
{
name: 'get_district_rankings',
description: 'Get team rankings within a district',
inputSchema: toMCPSchema(GetDistrictRankingsInputSchema),
},
{
name: 'get_teams_simple',
description: 'Get simplified list of teams with pagination',
inputSchema: toMCPSchema(GetTeamsSimpleInputSchema),
},
{
name: 'get_teams_keys',
description: 'Get list of team keys with pagination',
inputSchema: toMCPSchema(GetTeamsKeysInputSchema),
},
{
name: 'get_teams_by_year',
description: 'Get teams that competed in a specific year',
inputSchema: toMCPSchema(GetTeamsByYearInputSchema),
},
{
name: 'get_teams_by_year_simple',
description: 'Get simplified teams that competed in a specific year',
inputSchema: toMCPSchema(GetTeamsByYearSimpleInputSchema),
},
{
name: 'get_teams_by_year_keys',
description: 'Get team keys that competed in a specific year',
inputSchema: toMCPSchema(GetTeamsByYearKeysInputSchema),
},
{
name: 'get_team_simple',
description: 'Get simplified information about a specific team',
inputSchema: toMCPSchema(GetTeamSimpleInputSchema),
},
{
name: 'get_event_simple',
description: 'Get simplified information about a specific event',
inputSchema: toMCPSchema(GetEventSimpleInputSchema),
},
{
name: 'get_events_simple',
description: 'Get simplified list of events for a year',
inputSchema: toMCPSchema(GetEventsSimpleInputSchema),
},
{
name: 'get_events_keys',
description: 'Get list of event keys for a year',
inputSchema: toMCPSchema(GetEventsKeysInputSchema),
},
{
name: 'get_match_simple',
description: 'Get simplified information about a specific match',
inputSchema: toMCPSchema(GetMatchSimpleInputSchema),
},
{
name: 'get_team_events_simple',
description: 'Get simplified events for a team in a specific year',
inputSchema: toMCPSchema(GetTeamEventsSimpleInputSchema),
},
{
name: 'get_team_events_keys',
description: 'Get event keys for a team in a specific year',
inputSchema: toMCPSchema(GetTeamEventsKeysInputSchema),
},
{
name: 'get_team_event_awards',
description: 'Get awards won by a team at a specific event',
inputSchema: toMCPSchema(GetTeamEventAwardsInputSchema),
},
{
name: 'get_team_matches_simple',
description: 'Get simplified matches for a team in a specific year',
inputSchema: toMCPSchema(GetTeamMatchesSimpleInputSchema),
},
{
name: 'get_team_matches_keys',
description: 'Get match keys for a team in a specific year',
inputSchema: toMCPSchema(GetTeamMatchesKeysInputSchema),
},
{
name: 'get_team_social_media',
description: 'Get social media information for a team',
inputSchema: toMCPSchema(GetTeamSocialMediaInputSchema),
},
{
name: 'get_team_media_by_tag',
description: 'Get media for a team filtered by tag',
inputSchema: toMCPSchema(GetTeamMediaByTagInputSchema),
},
{
name: 'get_team_media_by_tag_year',
description: 'Get media for a team filtered by tag and year',
inputSchema: toMCPSchema(GetTeamMediaByTagYearInputSchema),
},
{
name: 'get_event_teams_simple',
description: 'Get simplified teams participating in an event',
inputSchema: toMCPSchema(GetEventTeamsSimpleInputSchema),
},
{
name: 'get_event_teams_keys',
description: 'Get team keys participating in an event',
inputSchema: toMCPSchema(GetEventTeamsKeysInputSchema),
},
{
name: 'get_event_matches_simple',
description: 'Get simplified matches for an event',
inputSchema: toMCPSchema(GetEventMatchesSimpleInputSchema),
},
{
name: 'get_event_matches_keys',
description: 'Get match keys for an event',
inputSchema: toMCPSchema(GetEventMatchesKeysInputSchema),
},
{
name: 'get_event_predictions',
description: 'Get TBA-generated predictions for an event',
inputSchema: toMCPSchema(GetEventPredictionsInputSchema),
},
{
name: 'get_match_zebra',
description: 'Get Zebra MotionWorks data for a match',
inputSchema: toMCPSchema(GetMatchZebraInputSchema),
},
{
name: 'get_team_history',
description: 'Get historical data for a team across all years',
inputSchema: toMCPSchema(GetTeamHistoryInputSchema),
},
{
name: 'get_team_event_statuses',
description: 'Get team event statuses for all events in a year',
inputSchema: toMCPSchema(GetTeamEventStatusesInputSchema),
},
{
name: 'get_team_event_matches_simple',
description: 'Get simplified matches for a team at a specific event',
inputSchema: toMCPSchema(GetTeamEventMatchesSimpleInputSchema),
},
{
name: 'get_team_event_matches_keys',
description: 'Get match keys for a team at a specific event',
inputSchema: toMCPSchema(GetTeamEventMatchesKeysInputSchema),
},
{
name: 'get_district_events',
description: 'Get events in a specific district',
inputSchema: toMCPSchema(GetDistrictEventsInputSchema),
},
{
name: 'get_district_events_simple',
description: 'Get simplified events in a specific district',
inputSchema: toMCPSchema(GetDistrictEventsSimpleInputSchema),
},
{
name: 'get_district_events_keys',
description: 'Get event keys in a specific district',
inputSchema: toMCPSchema(GetDistrictEventsKeysInputSchema),
},
{
name: 'get_district_teams',
description: 'Get teams in a specific district',
inputSchema: toMCPSchema(GetDistrictTeamsInputSchema),
},
{
name: 'get_district_teams_simple',
description: 'Get simplified teams in a specific district',
inputSchema: toMCPSchema(GetDistrictTeamsSimpleInputSchema),
},
{
name: 'get_district_teams_keys',
description: 'Get team keys in a specific district',
inputSchema: toMCPSchema(GetDistrictTeamsKeysInputSchema),
},
];