Skip to main content
Glama
lenwood

cfbd-mcp-server

by lenwood

대학 풋볼 데이터 MCP 서버

Claude Desktop 내의 College Football Data API 에서 얻은 대학 축구 통계에 대한 액세스를 제공하는 MCP 서버 구현입니다.

파이썬 버전 CFBD API 버전 MIT 라이센스 대장간 배지

개요

이 모델 컨텍스트 프로토콜(MCP) 서버를 통해 AI 어시스턴트와 애플리케이션은 다음을 수행할 수 있습니다.

  • 종합적인 대학 축구 통계 및 데이터 쿼리

  • 경기 결과, 팀 기록 및 선수 통계에 액세스하세요

  • 경기별 데이터 분석 및 요약 작성

  • 순위와 승리 확률 지표 보기

  • 팀 성과를 비교하고 통찰력을 얻으세요

사용자는 자연어를 사용하여 쿼리를 실행할 수 있습니다.

Related MCP server: Clash Royale MCP Server

샘플 출력

Q. 2014 시즌 FCS 경기 중 가장 큰 이변은 무엇이었나요?

A. 2014년 FCS에서 가장 큰 이변을 일으킨 경기를 찾는 데 도움을 드리겠습니다. 경기 데이터를 살펴보고, FCS 팀 간의 경기 중 팀 전력에 큰 차이가 있었고 예상치 못한 결과가 나온 경기에 초점을 맞추겠습니다.

데이터에 따르면 2014년 FCS에서 주목할 만한 이변이 여러 차례 있었지만, 그중에서도 가장 눈에 띄는 것은 2014년 9월 6일 이스턴 워싱턴이 워싱턴을 52-59로 이긴 경기였습니다. 이 경기가 특히 중요했던 이유는 다음과 같습니다.

  1. 워싱턴은 Pac-12 컨퍼런스의 FBS 팀이었습니다.

  2. 이 경기는 워싱턴의 홈구장(허스키 스타디움)에서 열렸습니다.

  3. 경기 후 통계에 따르면 동부 워싱턴의 승리 확률은 1.4%에 불과했습니다.

  4. Eastern Washington이 득점한 59점은 Pac-12 상대팀을 상대로 FCS 팀이 기록한 역대 최다 득점이었습니다.

  5. 워싱턴은 경기 시작 전 여러 점수로 유리한 입장에 있었습니다.

그 시즌의 다른 주목할 만한 FCS 이변은 다음과 같습니다.

  • 노스다코타주립대, 아이오와주립대 34-14로 승리

  • 베순-쿠크먼, FIU 14-12 승리

  • 노던 아이오와, 아이오와를 거의 이길 뻔 (31-23 패배)

그러나 다음을 고려해보면 동부 워싱턴이 워싱턴을 이긴 것이 2014 FCS 시즌에서 가장 큰 이변인 것으로 보인다.

  • 부문별 차이(FCS 대 FBS)

  • FBS 상대팀(파워5 컨퍼런스)의 규모

  • 약팀의 득점 차이와 공격력

  • Power 5 팀을 상대로 한 FCS 최고 득점 승리 중 하나로서 역사적 중요성

  • 그것은 적대적인 환경의 도로에서 일어났다는 사실

필수 조건

설치

Smithery를 통해 설치

Smithery 를 통해 Claude Desktop용 College Football Data Server를 자동으로 설치하려면:

지엑스피1

  1. 이 저장소를 복제하세요:

git clone https://github.com/yourusername/cfbd-mcp-server
cd cfbd-mcp-server
  1. 가상 환경을 만들고 활성화하세요.

uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 종속성 설치:

uv pip install -e .
  1. 프로젝트 루트에 .env 파일을 만들고 API 키를 추가하세요.

CFB_API_KEY=your_api_key_here

수동 설치

  1. 이 저장소를 복제하세요:

git clone https://github.com/yourusername/cfbd-mcp-server
cd cfbd-mcp-server
  1. 가상 환경을 만들고 활성화하세요.

uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 종속성 설치:

uv pip install -e .
  1. 프로젝트 루트에 .env 파일을 만들고 API 키를 추가하세요.

CFB_API_KEY=your_api_key_here

용법

서버 실행

서버를 시작합니다:

uv run cfbd-mcp-server

Claude Desktop과 연결

  1. Claude Desktop 구성을 다음에서 엽니다.

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  2. 서버 구성을 추가합니다.

{
    "mcpServers": {
        "cfbd-mcp-server": {
            "command": "uv",
            "args": [
                "--directory",
                "/full/path/to/cfbd-mcp-server",
                "run",
                "cfbd-mcp-server"
            ],
            "env": {
                "CFB_API_KEY": "xxx",
                "PATH": "/full/path/to/python"
            }
        }
    }
}
  1. Claude Desktop을 닫은 후 다시 시작하세요.

재시작하면 텍스트 상자 오른쪽 하단에 작은 망치 아이콘이 표시됩니다. 아이콘 위에 마우스를 올리면 사용 가능한 MCP 도구의 개수가 표시됩니다.

성공적인 설치 스크린샷

설치 후 업데이트

  1. 업데이트된 파일을 다운로드하세요

cd cfbd-mcp-server
git pull
  1. 기존 패키지를 제거합니다.

uv pip uninstall cfbd-mcp-server
  1. 기존 빌드 아티팩트 및 메타데이터 삭제

Windows의 경우:

rmdir /s /q build dist
del /s /q *.egg-info

macOS의 경우:

rm -rf build dist *.egg-info
  1. 개정된 패키지와 해당 종속성을 설치합니다.

uv pip install -e .
uv sync --dev --all-extras
uv run cfbd-mcp-server
  1. Claude Desktop을 닫고 다시 시작하세요.

특징

자원

모든 엔드포인트에 대한 스키마 문서에 액세스하세요.

  • schema://games - 게임 정보 및 점수

  • schema://records - 팀 시즌 기록

  • schema://games/teams - 자세한 팀 게임 데이터

  • schema://plays - 플레이 바이 플레이 정보

  • schema://drives - 드라이브 요약 및 결과

  • schema://play/stats - 개별 플레이 통계

  • schema://rankings - 여론조사에 따른 팀 순위

  • schema://metrics/wp/pregame - 경기 전 승리 확률

  • schema://game/box/advanced - 고급 박스 스코어 통계

도구

직접 엔드포인트 쿼리:

  • get-games - 게임 데이터 검색

  • get-records - 팀 기록 가져오기

  • get-games-teams - 팀 게임 통계에 접근

  • get-plays - 플레이 바이 플레이 데이터 쿼리

  • get-drives - 드라이브 정보 분석

  • get-play-stats - 플레이 통계 보기

  • get-rankings - 팀 순위 확인

  • get-pregame-win-probability - 승리 확률 보기

  • get-advanced-box-score - 자세한 게임 통계 및 분석에 액세스

프롬프트

미리 작성된 분석 템플릿:

  • analyze-game - 특정 게임에 대한 자세한 분석 얻기

  • analyze-team - 포괄적인 단일 팀 분석

  • analyze-trends - 시즌별 추세 분석

  • compare-teams - 두 팀의 성과를 비교합니다

  • analyze-rivalry - 역사적 라이벌 매치업 분석

API 제한

대학 풋볼 데이터 API는 무료로 사용할 수 있지만 속도 제한이 있습니다.

  • 무료 계층: 분당 요청 수 제한

  • CFBD Patreon 구독자는 더 높은 요금 한도를 받습니다.

  • 효율적인 쿼리 패턴을 사용하여 한계에 도달하지 않도록 합니다.

  • 속도 제한 오류를 정상적으로 처리합니다.

개발

프로젝트 구조

cfbd-mcp-server/
├── README.md
├── pyproject.toml
└── src/
    └── cfbd_mcp_server/
        ├── .env
        ├── __init__.py
        ├── cfbd_schema.py
        ├── schema_helpers.py
        └── server.py

개발 설정

  1. 저장소를 복제합니다

  2. 개발 종속성 설치:

uv pip install -e ".[dev]"
  1. 테스트 실행:

pytest

기여하다

  1. 저장소를 포크하세요

  2. 기능 브랜치 생성

  3. 변경 사항을 커밋하세요

  4. 포크로 밀어주세요

  5. 풀 리퀘스트 제출

문제 해결

일반적인 문제

  1. API 키 오류

    • .env 및 claude_desktop_config.json 파일 모두에 API 키가 올바르게 설정되었는지 확인하세요.

    • collegefootballdata.com에서 키가 유효한지 확인하세요.

  2. 속도 제한

    • 가능하면 요청 간격을 넓히세요

    • 더 높은 한도를 위해 Patreon 구독을 고려하세요

    • 자주 액세스되는 데이터에 대한 캐싱 구현

  3. 연결 문제

    • 인터넷 연결 확인

    • collegefootballdata.com에서 API 상태를 확인하세요

    • 코드에서 적절한 오류 처리를 보장하세요

도움 받기

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

감사의 말

Available Tools

9 tools
get-advanced-box-scoreC

Note: When using this tool, please explicitly mention that you are retrieving data from the College Football Data API. You must mention "College Football Data API" in every response.

Get advanced box score data for college football games.
        Required: gameId
        Example valid queries:
        - gameId=401403910
        
ParametersJSON Schema
NameRequiredDescriptionDefault
gameIdYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions a mandatory attribution requirement, which is useful context, but fails to describe other key behaviors such as whether this is a read-only operation, potential rate limits, error handling, or the format of returned data. This leaves significant gaps for an agent to understand how to use it effectively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, but it includes an attribution note that is more of a usage constraint than part of the tool's functional description. The example is helpful but could be integrated more smoothly. Overall, it's moderately concise but has some structural inefficiencies.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of retrieving sports data, no annotations, no output schema, and poor schema coverage, the description is incomplete. It lacks details on authentication, data format, error cases, and how this tool differs from siblings. The mandatory attribution note adds some context but doesn't compensate for the overall gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, meaning the input schema provides no useful parameter documentation. The description adds minimal semantics by stating 'Required: gameId' and giving an example, but it doesn't explain what a gameId is, how to obtain it, or its valid range. With one parameter and no schema help, this is insufficient compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'Get advanced box score data for college football games,' which is a specific verb+resource combination. However, it doesn't explicitly differentiate this tool from sibling tools like 'get-games' or 'get-plays,' which might also retrieve game-related data, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get-games' or 'get-plays.' It includes a mandatory attribution requirement ('College Football Data API') but this is not usage guidance. Without any context on when this tool is appropriate, the score is low.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-drivesB

Note: When using this tool, please explicitly mention that you are retrieving data from the College Football Data API. You must mention "College Football Data API" in every response.

Get college football drive data.
        Required: year
        Optional: season_type, week, team, offense, defense, conference, offense_conference, defense_conference, classification
        Example valid queries:
        - year=2023
        - year=2023, team="Alabama"
        - year=2023, offense="Alabama", defense="Auburn"
        
ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
season_typeNo
weekNo
teamNo
offenseNo
defenseNo
conferenceNo
offense_conferenceNo
defense_conferenceNo
classificationNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions a formatting requirement ('mention College Football Data API in every response'), which is useful context. However, it doesn't describe critical behavioral traits like whether this is a read-only operation, potential rate limits, authentication needs, error handling, or what the return format looks like (no output schema exists).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized but not optimally structured. The first paragraph contains a formatting requirement that belongs elsewhere (not core tool functionality). The core purpose statement is clear, but the parameter information could be more front-loaded. The example queries are helpful but could be more efficiently integrated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, no annotations, no output schema), the description provides adequate but incomplete coverage. It documents parameters well but lacks behavioral context about the operation's safety, performance characteristics, or return format. The formatting requirement adds some context but doesn't address core completeness gaps for a data retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial value beyond the input schema, which has 0% description coverage. It clearly identifies which parameter is required ('year') versus optional, lists all 10 parameters by name, and provides three concrete example queries showing how parameters combine. This compensates fully for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get college football drive data.' It specifies the resource (drive data) and domain (college football), making the verb+resource combination clear. However, it doesn't explicitly differentiate this tool from its siblings like 'get-plays' or 'get-games', which would be needed for a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. While it mentions the College Football Data API in a formatting requirement, it doesn't explain when to choose 'get-drives' over sibling tools like 'get-plays' or 'get-games' for related football data queries. The example queries show parameter usage but not tool selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-gamesC

Note: When using this tool, please explicitly mention that you are retrieving data from the College Football Data API. You must mention "College Football Data API" in every response.

Get college football game data.
        Required: year
        Optional: week, season_type, team, conference, category, game_id
        Example valid queries:
        - year=2023
        - year=2023, team="Alabama"
        - year=2023, week=1, conference="SEC"
        
ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
weekNo
season_typeNo
teamNo
conferenceNo
categoryNo
game_idNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool retrieves data (implying read-only) and includes a mandatory attribution requirement, which is useful context. However, it lacks details on rate limits, authentication needs, pagination, error handling, or what the return data looks like, leaving significant gaps for a tool with 7 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized but not optimally structured. The attribution note is front-loaded but not directly about tool functionality. The core purpose is clear, and the parameter list and examples are useful, but the formatting with indentation and bullet points could be cleaner. Some sentences (like the attribution requirement) feel like they don't fully earn their place in a tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, no annotations, no output schema), the description is incomplete. It covers the basic purpose and parameters but lacks crucial context: no explanation of return values, error conditions, rate limits, or how results are filtered/structured. For a data retrieval tool with multiple filtering options, this leaves the agent with significant uncertainty about behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It lists all 7 parameters as 'Required: year' and 'Optional: week, season_type, team, conference, category, game_id,' and provides example queries. This adds meaning beyond the bare schema by indicating which parameters are required/optional and showing usage patterns, but it doesn't explain what each parameter means (e.g., what 'category' refers to) or provide enum values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get college football game data.' This is a specific verb+resource combination that tells the agent what the tool does. However, it doesn't explicitly differentiate this tool from sibling tools like 'get-games-teams' or 'get-plays,' which might also retrieve game-related data, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or explain what makes this tool different (e.g., basic game data vs. advanced stats from 'get-advanced-box-score'). The only usage context is the mandatory attribution note, which doesn't help with tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-games-teamsB

Note: When using this tool, please explicitly mention that you are retrieving data from the College Football Data API. You must mention "College Football Data API" in every response.

Get college football team game data.
        Required: year plus at least one of: week, team or conference.
        Example valid queries:
        - year=2023, team="Alabama"
        - year=2023, week=1
        - year=2023, conference="SEC
        
ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
weekNo
season_typeNo
teamNo
conferenceNo
game_idNo
classificationNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that data comes from the 'College Football Data API' and requires attribution in responses, which adds useful context about data source and output formatting. However, it lacks details on rate limits, error handling, authentication needs, or what the return data structure looks like (e.g., pagination, fields included). For a tool with 7 parameters and no annotations, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized but not optimally structured. The first sentence about API attribution is front-loaded but not core to the tool's functionality, while the essential usage rules and examples follow. Some sentences could be more efficient (e.g., the examples could be integrated more smoothly). Overall, it's clear but could be more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, no annotations, no output schema), the description is incomplete. It covers basic usage and examples but lacks details on parameter meanings, return format, error conditions, and behavioral traits like rate limits. For a data retrieval tool with multiple filtering options, this leaves too many gaps for reliable agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no parameter documentation. The description compensates by listing required parameters (year plus at least one of week, team, or conference) and giving examples, but it doesn't explain the semantics of all 7 parameters (e.g., what 'season_type', 'classification', or 'game_id' represent). This leaves most parameters undocumented, failing to fully compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get college football team game data.' It specifies the verb ('Get') and resource ('college football team game data'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get-games' or 'get-advanced-box-score', which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: it requires a year plus at least one additional parameter (week, team, or conference), and gives three example valid queries. This helps the agent understand the necessary conditions for invocation. However, it doesn't explicitly mention when not to use it or suggest alternatives among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-playsB

Note: When using this tool, please explicitly mention that you are retrieving data from the College Football Data API. You must mention "College Football Data API" in every response.

Get college football play-by-play data.
        Required: year AND week
        Optional: season_type, team, offense, defense, conference, offense_conference, defense_conference, play_type, classification
        Example valid queries:
        - year=2023, week=1
        - year=2023, week=1, team="Alabama"
        - year=2023, week=1, offense="Alabama", defense="Auburn"
        
ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
weekYes
season_typeNo
teamNo
offenseNo
defenseNo
conferenceNo
offense_conferenceNo
defense_conferenceNo
play_typeNo
classificationNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions a mandatory attribution requirement ('mention College Football Data API in every response'), which is valuable behavioral context. However, it doesn't disclose other traits like rate limits, error handling, data freshness, or response format, leaving significant gaps for a tool with 11 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized but not optimally structured. The attribution note is front-loaded, but the core purpose is buried. The parameter list and examples are helpful but could be more streamlined. Some sentences (like the detailed examples) earn their place, but overall organization could be improved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 11 parameters, the description is moderately complete. It covers parameters and attribution, but lacks details on response format, error cases, or behavioral constraints. For a data retrieval tool with many filters, more context on output structure or limitations would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates well by listing all 11 parameters, distinguishing required (year, week) from optional ones, and providing example queries that illustrate usage. It adds meaning beyond the bare schema, though it doesn't explain parameter formats (e.g., what values 'play_type' accepts).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get college football play-by-play data.' This is a specific verb ('Get') and resource ('college football play-by-play data'), though it doesn't explicitly differentiate from siblings like 'get-play-stats' or 'get-drives' which might overlap in domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through required parameters (year AND week) and optional filters, but doesn't explicitly state when to use this tool versus alternatives like 'get-games' or 'get-play-stats'. It provides example queries that suggest context, but lacks explicit guidance on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-play-statsB

Note: When using this tool, please explicitly mention that you are retrieving data from the College Football Data API. You must mention "College Football Data API" in every response.

Get college football play statistic data.
        Optional: year, week, team, game_id, athlete_id, stat_type_id, season_type, conference
        At least one parameter is required
        Example valid queries:
        - year=2023
        - game_id=401403910
        - team="Alabama", year=2023
        
ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
weekNo
teamNo
game_idNo
athlete_idNo
stat_type_idNo
season_typeNo
conferenceNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the data source ('College Football Data API') and provides example queries, but doesn't describe key behavioral traits like whether this is a read-only operation, potential rate limits, authentication requirements, error handling, or what the response format looks like. The description adds some context but leaves significant gaps for a tool with 8 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized but not optimally structured. The first sentence about mentioning the API in responses is front-loaded but seems more like a usage instruction than core tool description. The core purpose and parameter information follow, but the formatting with indentation and bullet points could be cleaner. Every sentence adds value, but the flow could be improved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no annotations, no output schema), the description is moderately complete. It covers the purpose and parameters well, but lacks information about behavioral traits, response format, and differentiation from sibling tools. For a data retrieval tool with multiple filtering options, more context about what 'play statistic data' includes would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial meaning beyond the input schema, which has 0% description coverage. It lists all 8 parameters with brief labels, clarifies that at least one is required, and provides example queries showing how parameters can be combined. This effectively compensates for the schema's lack of documentation, though it doesn't explain parameter formats or constraints in detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get college football play statistic data.' This specifies both the verb ('Get') and resource ('college football play statistic data'), making it immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'get-plays' or 'get-advanced-box-score,' which likely retrieve related football data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage guidance through the 'At least one parameter is required' statement and example queries, which suggest when to use the tool (for filtering play statistics). However, it doesn't explicitly state when to use this tool versus alternatives like 'get-plays' or 'get-advanced-box-score,' nor does it mention any prerequisites or exclusions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-pregame-win-probabilityC

Note: When using this tool, please explicitly mention that you are retrieving data from the College Football Data API. You must mention "College Football Data API" in every response.

Get college football pregame win probability data.
        Optional: year, week, team, season_type
        At least one parameter is required
        Example valid queries:
        - year=2023
        - team="Alabama"
        - year=2023, week=1
        
ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
weekNo
teamNo
season_typeNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the data source ('College Football Data API') and a requirement to cite it in responses, which adds useful context about attribution. However, it doesn't describe key behavioral traits like whether this is a read-only operation, potential rate limits, error handling, or the format of returned data (e.g., JSON structure). For a tool with no annotations, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise but includes redundant or misplaced content. The first sentence about mentioning the API in responses is important but could be integrated more smoothly. The parameter list and examples are helpful but could be structured better (e.g., bullet points for clarity). It's front-loaded with the core purpose, but some sentences don't directly enhance tool understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, 0% schema coverage, no output schema, and 4 parameters, the description is incomplete. It covers the basic purpose and parameters superficially but misses critical details: no explanation of return values, error cases, or deeper behavioral context. For a data retrieval tool with multiple filters, this leaves too much undefined for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists the parameters (year, week, team, season_type) as optional and provides example queries, which adds some meaning beyond the bare schema. However, it doesn't explain what each parameter does (e.g., what 'season_type' entails, format for 'team'), leaving semantics unclear. With 4 parameters and low coverage, this is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get college football pregame win probability data.' This specifies the verb ('Get'), resource ('college football pregame win probability data'), and distinguishes it from sibling tools that handle box scores, drives, games, etc. However, it doesn't explicitly differentiate from hypothetical similar win probability tools, keeping it at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage guidance by listing optional parameters and stating 'At least one parameter is required,' which helps understand when to use it (i.e., when you have at least one of these filters). It includes example queries for context. However, it lacks explicit when-to-use vs. alternatives (e.g., compared to sibling tools like get-games) or prerequisites, so it's not fully comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-rankingsB

Note: When using this tool, please explicitly mention that you are retrieving data from the College Football Data API. You must mention "College Football Data API" in every response.

Get college football rankings data.
        Required: year
        Optional: week, season_type
        Example valid queries:
        - year=2023
        - year=2023, week=1
        - year=2023, season_type="regular"
        
ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
weekNo
season_typeNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API source and attribution requirement, which is useful context, but doesn't describe important behavioral aspects like rate limits, authentication needs, response format, error conditions, or whether this is a read-only operation. The description focuses more on parameter usage than tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized but not optimally structured. The first paragraph contains API attribution requirements that belong elsewhere, while the actual tool description starts in the second paragraph. The example queries are helpful but could be more efficiently formatted. Overall, it's functional but could be more front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no annotations and no output schema, the description provides adequate parameter documentation but lacks important context about the tool's behavior and output. It doesn't describe what the rankings data looks like, how it's structured, or any limitations. The API attribution requirement is included, but other behavioral aspects are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant value beyond the input schema, which has 0% description coverage. It clearly identifies which parameters are required vs. optional, provides example queries showing valid parameter combinations, and gives context about what each parameter represents (year, week, season_type). This compensates well for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get college football rankings data.' This specifies both the verb ('Get') and the resource ('college football rankings data'), making it immediately understandable. However, it doesn't distinguish this tool from its siblings (like get-games or get-plays), which all retrieve different types of college football data from the same API.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage guidance through the example queries and parameter notes, showing how to structure requests. However, it lacks explicit guidance on when to use this tool versus alternatives (like get-games for game data vs. get-rankings for rankings data). The first paragraph contains API attribution requirements rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-recordsC

Note: When using this tool, please explicitly mention that you are retrieving data from the College Football Data API. You must mention "College Football Data API" in every response.

Get college football team record data.
        Optional: year, team, conference
        Example valid queries:
        - year=2023
        - team="Alabama"
        - conference="SEC"
        - year=2023, team="Alabama"
        
ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
teamNo
conferenceNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that parameters are optional and provides example queries, but doesn't cover critical aspects like rate limits, authentication needs, error handling, or what the response format looks like. For a data retrieval tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise but has structural issues. The first paragraph about mentioning the API in responses is front-loaded but not core to the tool's functionality, while the actual purpose statement comes later. The example queries are helpful but could be more efficiently integrated. Overall, it's adequate but not optimally structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It covers the basic purpose and parameters but misses behavioral details like response format, error conditions, and usage context relative to siblings. For a tool with no structured metadata, the description should provide more comprehensive guidance to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explicitly lists the three parameters (year, team, conference), notes they are optional, and provides concrete example queries that illustrate how to use them. This compensates well for the schema's lack of documentation, though it doesn't specify data formats or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get college football team record data.' This specifies the verb ('Get') and resource ('college football team record data'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get-games' or 'get-rankings', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get-games' or 'get-rankings'. It includes a note about mentioning the API in responses, but this is a presentation requirement, not usage guidance. Without context on when this tool is appropriate, the agent lacks clear direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv1.0.0
    • First observedget-advanced-box-score
    • First observedget-drives
    • First observedget-games
    • First observedget-games-teams
    • First observedget-play-stats
    • First observedget-plays
    • First observedget-pregame-win-probability
    • First observedget-rankings
    • First observedget-records

TDQS

B3.3/5.0

Scored across 9 tools

Disambiguation4/5

Each tool targets a distinct aspect of college football data (box scores, drives, games, plays, etc.), with clear boundaries. However, 'get-games' and 'get-games-teams' could cause some confusion as both relate to game data, though their descriptions clarify that 'get-games-teams' focuses on team-specific game data. Overall, the purposes are mostly distinct.

Naming Consistency5/5

All tool names follow a consistent 'get-[resource]' pattern using kebab-case, with clear and descriptive nouns (e.g., 'advanced-box-score', 'drives', 'games'). This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.

Tool Count5/5

With 9 tools, the count is well-scoped for a college football data API server. Each tool covers a specific data type (e.g., rankings, plays, records), and there are no redundant or trivial tools, making the set comprehensive yet manageable for the domain.

Completeness4/5

The tool set provides broad coverage for retrieving college football data, including games, plays, rankings, and statistics. Minor gaps exist, such as no tools for updating or creating data (which may be intentional for a read-only API) or for more niche data like player profiles, but core querying needs are well-covered.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for accessing college basketball statistics through the SportsData.io CBB v3 Stats API, enabling AI agents to retrieve and analyze college basketball data through natural language interactions.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that integrates with the official Clash Royale API to provide real-time data on players, clans, cards, and tournaments. It enables users to query battle logs, chest cycles, and global rankings directly through Claude Desktop or Claude Code.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for natural language analysis of baseball league data, enabling team statistics, standings, lineup suggestions, and scouting reports via Claude Desktop.
    -
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that connects Claude Desktop to Hudl, enabling live access to team stats, player stats, and game results through natural language queries.
    7
    -