Skip to main content
Glama
omalleyandy

kenpom

by omalleyandy

KenPom Client

A Python API client and MCP server for KenPom basketball analytics. Get direct access to efficiency ratings, game predictions, and advanced stats through Claude or the command line.

Features

  • MCP Server: 11 tools for interactive analysis with Claude

  • Full API Coverage: All 9 KenPom API endpoints

  • Smart Analytics: Matchup comparisons, top team rankings

  • Resilience: Rate limiting, retries, and caching built-in

  • Multi-Format Export: CSV, JSON, and Parquet

Related MCP server: College Basketball Stats MCP Server

Quick Start

cd kenpom-client
uv venv && uv sync
cp .env.example .env  # Add your KENPOM_API_KEY

MCP Server Setup (Claude Code)

The MCP server lets Claude directly query KenPom data during conversations.

Step 1: Project Configuration

The .mcp.json file is already included in this project:

{
  "mcpServers": {
    "kenpom": {
      "command": "uv",
      "args": [
        "--directory",
        "C:/Users/omall/Documents/python_projects/kenpom-client",
        "run",
        "kenpom-mcp"
      ]
    }
  }
}

Step 2: Enable Project MCP Servers

Add this to your Claude Code settings (~/.claude/settings.json):

{
  "enableAllProjectMcpServers": true
}

Or manually approve the server when prompted by Claude Code.

Step 3: Restart Claude Code

Start a new session in the kenpom-client directory. The MCP server will load automatically.

Available MCP Tools

Tool

Description

kenpom_ratings

Current efficiency ratings (AdjOE, AdjDE, AdjEM)

kenpom_predictions

Game predictions with spreads and win probability

kenpom_matchup

Head-to-head comparison of two teams

kenpom_top_teams

Top N teams by any metric

kenpom_fourfactors

Four Factors analytics (eFG%, TO%, OR%, FT Rate)

kenpom_pointdist

Point distribution (% from FT, 2P, 3P)

kenpom_height

Height, experience, and continuity

kenpom_miscstats

Shooting %, blocks, steals, assists

kenpom_teams

Team rosters with coach and arena

kenpom_conferences

Conference list

kenpom_archive

Historical ratings from past dates

Example Queries

Once configured, ask Claude naturally:

  • "What are Duke's efficiency ratings?"

  • "Compare Auburn and Alabama head-to-head"

  • "Show me the top 10 teams by AdjEM"

  • "What games are predicted for today?"

  • "Which teams have the best four factors on offense?"

CLI Commands

For batch data collection and ML pipelines:

# Core data
uv run kenpom teams --y 2025
uv run kenpom conferences --y 2025
uv run kenpom ratings --y 2025 --date 2024-12-21

# Game predictions
uv run kenpom fanmatch --date 2024-12-21

# Advanced analytics
uv run kenpom fourfactors --y 2025
uv run kenpom pointdist --y 2025
uv run kenpom height --y 2025
uv run kenpom miscstats --y 2025

# Historical data
uv run kenpom archive --date 2024-12-21

# Real market odds (overtime.ag)
uv run fetch-odds

Output File Naming

All files follow: kenpom_{data_type}_{identifiers}.{ext}

Command

Example Output

teams

kenpom_teams_2025.csv

conferences

kenpom_conferences_2025.csv

ratings

kenpom_ratings_2025_2024-12-21.csv

fanmatch

kenpom_predictions_2024-12-21.csv

fourfactors

kenpom_fourfactors_2025.csv

pointdist

kenpom_pointdist_2025.csv

height

kenpom_height_2025.csv

miscstats

kenpom_miscstats_2025.csv

archive

kenpom_archive_2024-12-21.csv

Each command exports three formats: .csv, .json, and .parquet

Configuration

Set in .env:

Variable

Required

Default

Description

KENPOM_API_KEY

Yes

-

Your KenPom API key

KENPOM_RATE_LIMIT_RPS

No

2.0

Requests per second

KENPOM_CACHE_TTL_SECONDS

No

21600

Cache TTL (6 hours)

KENPOM_MAX_RETRIES

No

5

Max retry attempts

KENPOM_OUT_DIR

No

data

Output directory

OV_CUSTOMER_ID

For odds

-

overtime.ag customer ID

OV_PASSWORD

For odds

-

overtime.ag password

Automated Odds Fetching

The project includes automated scraping of real market odds from overtime.ag for NCAA Basketball games.

Setup

  1. Install Playwright browser:

    uv run playwright install chromium
  2. Add credentials to .env:

    OV_CUSTOMER_ID=your_customer_id
    OV_PASSWORD=your_password
    KENPOM_API_KEY=your_kenpom_api_key

Manual Usage

Fetch current odds and generate predictions:

uv run fetch-odds

This will:

  1. Scrape NCAA Basketball odds from overtime.ag

  2. Save odds to CSV in data/ directory

  3. Automatically generate game predictions using KenPom data

Automated Workflows

A GitHub Actions workflow is available at .github/workflows/odds_workflow.yaml that:

  • Runs daily at 4:00 AM PST (12:00 PM UTC)

  • Fetches odds from overtime.ag

  • Generates KenPom predictions

  • Calculates betting edge

  • Uploads results as artifacts

Setup:

  1. Add GitHub Secrets:

    • OV_CUSTOMER_ID - overtime.ag customer ID

    • OV_PASSWORD - overtime.ag password

    • KENPOM_API_KEY - KenPom API key

  2. The workflow runs automatically on schedule or can be triggered manually via workflow_dispatch

View results:

  • Go to Actions tab in GitHub repository

  • Download artifacts from completed workflow runs

Option 2: Windows Task Scheduler (Local)

For local Windows machines, set up Task Scheduler (runs daily at 4:00 AM PST):

powershell -File setup_task_xml.ps1

The scheduled task runs with automatic retry logic:

  • Retries every 10 minutes if odds not yet available

  • Stops after 2 hours or successful fetch

  • Logs all activity to logs/odds_fetch.log

View logs:

Get-Content logs\odds_fetch.log -Tail 50

Manage task:

# Check status
schtasks /query /tn "FetchOvertimeCollegeBasketballOdds" /fo LIST

# Run manually
Start-ScheduledTask -TaskName 'FetchOvertimeCollegeBasketballOdds'

# Stop task
Stop-ScheduledTask -TaskName 'FetchOvertimeCollegeBasketballOdds'

# Delete task
schtasks /delete /tn "FetchOvertimeCollegeBasketballOdds" /f

See docs/ODDS_WORKFLOW.md for complete documentation.

Project Structure

kenpom-client/
├── src/kenpom_client/
│   ├── mcp_server.py         # MCP server (11 tools)
│   ├── client.py             # API wrapper
│   ├── cli.py                # Command-line interface
│   ├── overtime_scraper.py   # overtime.ag odds scraper
│   ├── models.py             # Pydantic models
│   ├── config.py             # Settings
│   ├── cache.py              # File-based caching
│   ├── http.py               # Rate limiting & retries
│   └── exceptions.py         # Custom exceptions
├── docs/                     # API documentation
│   ├── _index.md             # Documentation index
│   ├── ratings.md            # Ratings endpoint
│   ├── ratings_archive.md    # Archive endpoint
│   ├── fanmatch.md           # FanMatch endpoint
│   ├── four_factors.md       # Four Factors endpoint
│   ├── height.md             # Height endpoint
│   ├── misc_stats.md         # Misc Stats endpoint
│   ├── point_distribution.md # Point Distribution endpoint
│   ├── teams.md              # Teams endpoint
│   ├── conferences.md        # Conferences endpoint
│   ├── ODDS_WORKFLOW.md      # Automated odds fetching guide
│   └── DAILY_SLATE_API.md    # Daily slate output contract
├── schemas/                  # JSON Schemas
│   ├── ratings.schema.json
│   ├── ratings_archive.schema.json
│   ├── fanmatch.schema.json
│   ├── four_factors.schema.json
│   ├── height.schema.json
│   ├── misc_stats.schema.json
│   ├── point_distribution.schema.json
│   ├── teams.schema.json
│   ├── conferences.schema.json
│   ├── daily_slate_row.json
│   └── daily_slate_table.json
├── fetch_odds_scheduled.bat  # Windows scheduled task script
├── setup_task_xml.ps1        # Task Scheduler setup
├── .mcp.json                 # MCP server configuration
├── data/                     # Output directory (gitignored)
├── logs/                     # Task logs (gitignored)
├── .cache/                   # API cache (gitignored)
└── .env                      # API keys (gitignored)

Programmatic Usage

from kenpom_client.client import KenPomClient
from kenpom_client.config import Settings

settings = Settings.from_env()
client = KenPomClient(settings)

# Get ratings
ratings = client.ratings(y=2025)
for team in ratings[:5]:
    print(f"{team.TeamName}: AdjEM {team.AdjEM}")

# Get predictions
games = client.fanmatch(d="2024-12-21")
for game in games:
    spread = game.HomePred - game.VisitorPred
    print(f"{game.Visitor} @ {game.Home}: {spread:+.1f}")

# Compare teams
four_factors = client.four_factors(y=2025)
height_data = client.height(y=2025)
misc_stats = client.misc_stats(y=2025)

client.close()

API Endpoints Reference

Endpoint

Method

Description

Ratings

ratings(y, team_id, c)

Current season efficiency ratings

Archive

archive(d, preseason, y)

Historical point-in-time ratings

Four Factors

four_factors(y)

eFG%, TO%, OR%, FT Rate

Point Dist

point_distribution(y)

Scoring breakdown by shot type

Height

height(y)

Height, experience, continuity

Misc Stats

misc_stats(y)

Shooting %, blocks, steals, assists

FanMatch

fanmatch(d)

Game predictions and spreads

Teams

teams(y, c)

Team rosters with arena info

Conferences

conferences(y)

Conference metadata

Documentation

Full API documentation and JSON schemas are available in the docs/ and schemas/ directories.

API Endpoints: See docs/_index.md for the complete documentation index.

Workflows & Contracts:

Document

Description

ODDS_WORKFLOW.md

Automated odds fetching workflow

WORKFLOW_MONITORING.md

GitHub Actions workflow monitoring guide

DAILY_SLATE_API.md

Daily slate output contract

daily_slate_row.json

JSON Schema: single prediction

daily_slate_table.json

JSON Schema: prediction array

Development:

Document

Description

RUN_TESTS.md

Guide for running the test suite

Development

Automated Validation Hooks

This project uses automated hooks for quality assurance:

  • Pre-commit hook - Validates code before commits (format, lint, type check, tests)

  • Post-edit hook - Type checks after Claude edits files

  • Session start hook - Syncs dependencies on session start

See HOOKS.md for complete documentation.

Manual Commands

uv run ruff format .      # Format
uv run ruff check .       # Lint
pyrefly check             # Type check
uv run pytest             # Test

# Full validation (what pre-commit runs)
powershell -ExecutionPolicy Bypass -File scripts/hooks/validate-all.ps1

Available Tools

15 tools
classify_effortA

Classify a query's effort level for dynamic model routing. Returns recommended effort level (low/medium/high), model hint, and thinking budget. Use this to determine appropriate reasoning depth before executing complex tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe user query or task description to classify

TDQS

A3.9/5.0
Behavior3/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. It discloses the return values (effort level, model hint, thinking budget) but does not mention any side effects, failure modes, or limitations. As a classification tool, it is likely read-only, but the description does not explicitly confirm this.

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

Conciseness5/5

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

The description consists of two concise sentences: one stating the function and return values, the second giving usage context. Every word adds value with no redundancy or fluff.

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 simplicity (one parameter, no output schema, no annotations), the description explains the purpose and output. However, it could be more complete by explaining what the effort levels (low/medium/high) imply or how the model hint should be used. Nonetheless, it is minimally adequate.

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?

There is only one parameter ('query') with 100% schema description coverage. The description in the tool definition ('The user query or task description to classify') adds marginal value beyond the schema's own description ('The user query or task description to classify'). Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool classifies a query's effort level for dynamic model routing, specifying the verb 'classify' and the resource 'query's effort level'. It distinguishes itself by mentioning the return values (effort level, model hint, thinking budget), which likely differentiates it from sibling tools like 'get_tool_effort'.

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 explicitly says to use this tool 'to determine appropriate reasoning depth before executing complex tasks.' This provides clear context. While it does not elaborate on when not to use it or mention alternatives, the usage guidance is sufficient for an agent to decide.

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

get_tool_effortB

Get the effort level metadata for a specific tool. Returns the tool's default effort level and whether it requires reasoning.

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_nameYesName of the tool to get effort metadata for

TDQS

B3.3/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. It only states the tool returns effort level and reasoning requirement, with no mention of side effects, permissions, or data freshness. As a read-only 'get' tool, it is likely safe, but the description does not explicitly confirm this or disclose any behavioral traits.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and returns. Every word is necessary and there is no redundancy. It is appropriately sized for the tool's simplicity.

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 simple one-parameter tool with no output schema, the description provides the essential purpose and output fields. However, it does not explain what 'effort level' means or the structure of the returned data, leaving some ambiguity that a more complete description could resolve.

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 input schema has 100% description coverage for the only parameter (tool_name). The description adds no additional meaning beyond the schema, such as formatting or examples, so it meets the baseline of 3.

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

Purpose5/5

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

The description clearly states the tool gets effort level metadata for a specific tool, specifying it returns the default effort level and whether it requires reasoning. This distinguishes it from sibling data retrieval tools like kenpom_teams, as it is meta about tools. The verb 'get' and resource 'effort level metadata' are specific.

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 explicit guidance on when to use this tool versus alternatives like classify_effort or other kenpom tools. It only implies it is for retrieving metadata, but no when-not-to-use or context is given.

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

kenpom_archiveA

Get historical ratings from a specific past date. Use this for backtesting or historical analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
archive_dateYesDate in YYYY-MM-DD format

TDQS

A3.7/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 responsibility. It only states the basic purpose without disclosing any behavioral traits such as rate limits, error handling for invalid dates, or whether the operation is read-only. This is insufficient for full transparency.

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

Conciseness5/5

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

The description is extremely concise with two sentences, no filler words, and front-loads the purpose in the first sentence. Every sentence is earned and adds value.

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?

The tool has one required parameter and no output schema or annotations. The description is brief and does not cover expected return format, date range restrictions, or error behavior. While the schema covers the parameter, the overall completeness is adequate but not thorough.

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 has 100% coverage with the single parameter 'archive_date' described as 'Date in YYYY-MM-DD format'. The description adds no additional meaning beyond this, so it meets the baseline but does not exceed it.

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

Purpose5/5

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

The description clearly states the tool retrieves historical ratings from a past date, using the verb 'Get' and specifying the resource as 'historical ratings'. It implies historical analysis, distinguishing it from current-ratings tools like kenpom_ratings.

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 explicitly states 'Use this for backtesting or historical analysis', providing clear contextual usage. However, it does not explicitly mention when not to use or which alternative sibling tool to use for current ratings, which would improve differentiation.

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

kenpom_conferencesB

Get list of conferences for a season.

ParametersJSON Schema
NameRequiredDescriptionDefault
seasonYesSeason year (e.g., 2025)

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 should disclose behavior such as authentication requirements or pagination, but it only states the basic function.

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

Conciseness5/5

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

Single sentence with no wasted words, front-loaded with the key verb and resource.

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?

For a tool with one parameter, no output schema, and no annotations, the description lacks details on return format or any constraints, leaving the agent underinformed.

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 input schema fully describes the only parameter (season), and the description adds no additional semantic value beyond the schema.

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

Purpose5/5

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

Description clearly states the tool retrieves a list of conferences for a specific season, distinguishing it from sibling tools that handle teams, ratings, or other data.

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?

No guidance on when to use this tool versus alternatives like kenpom_teams or kenpom_ratings, leaving the agent to infer context.

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

kenpom_fourfactorsB

Get Four Factors data: eFG%, TO%, OR%, FT Rate for offense and defense. These are the key stats that determine game outcomes.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional: Filter to specific team name
seasonYesSeason year (e.g., 2025)

TDQS

B3.3/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. However, it does not disclose any behavioral traits such as data freshness, authentication needs, rate limits, or side effects.

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

Conciseness5/5

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

The description is concise with two sentences, no redundant information, and directly delivers the 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?

The description explains what data is returned but does not mention the output format or behavior when the team parameter is omitted, which would be helpful given no output schema.

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?

Schema coverage is 100% for both parameters. The description adds context about the data (offense and defense factors) but does not enhance parameter understanding beyond schema descriptions.

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

Purpose5/5

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

The description clearly states the verb 'Get' and identifies the resource as 'Four Factors data', listing specific stats (eFG%, TO%, OR%, FT Rate) for offense and defense, distinguishing it from sibling tools like kenpom_ratings.

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 does not provide any guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions.

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

kenpom_heightB

Get height, experience, and roster continuity data for teams.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional: Filter to specific team name
seasonYesSeason year (e.g., 2025)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided. Description does not disclose traits like read-only nature, destructive potential, authentication needs, or side effects. Agent must infer behavior from tool name and context.

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

Conciseness5/5

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

Single sentence, no redundancy, front-loaded with verb. Efficiently conveys core functionality without extraneous text.

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?

Simple tool with 2 params and no output schema. Description names the data returned but lacks details on format, examples, or whether return is per team or aggregate. Adequate but not rich.

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?

Schema covers both params with descriptions. Description adds context about returned data (height, experience, continuity) beyond schema but does not enhance parameter-level meaning. Baseline 3 due to 100% schema coverage.

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

Purpose5/5

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

Clear verb 'Get' and specific resource 'height, experience, and roster continuity data for teams.' Distinct from sibling tools like kenpom_fourfactors and kenpom_miscstats, which focus on different metrics.

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?

No guidance on when to use this tool vs alternatives. Does not specify prerequisites, context, or situations where it is appropriate.

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

kenpom_matchupA

Compare two teams head-to-head with key metrics side by side. Great for analyzing upcoming games.

ParametersJSON Schema
NameRequiredDescriptionDefault
team1YesFirst team name (e.g., 'Duke')
team2YesSecond team name (e.g., 'North Carolina')
seasonNoSeason year (default: current)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description lacks behavioral details such as data freshness, error handling (e.g., missing teams), or specific metrics returned. It only vaguely mentions 'key metrics'.

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

Conciseness5/5

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

Two sentences, each earning its place. The first states the core purpose, the second provides usage context. No redundancy.

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?

With no output schema and only two sentences, the description is insufficient for a 3-parameter tool. It does not explain the returned metrics, format, or how to interpret results, leaving the agent underinformed.

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 input schema has 100% coverage with descriptions for all parameters (team1, team2, season). The description adds minimal extra value beyond reinforcing the team parameters and implying season defaults.

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

Purpose5/5

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

The description clearly states the verb ('compare') and resource ('two teams head-to-head'), distinguishing it from sibling tools like kenpom_ratings or kenpom_top_teams which focus on single-team or aggregated data.

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 gives usage context ('Great for analyzing upcoming games'), but does not explicitly state when not to use it or mention alternatives among the sibling tools.

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

kenpom_miscstatsB

Get miscellaneous stats: shooting percentages, block/steal rates, assist rates, 3-point attempt rates.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional: Filter to specific team name
seasonYesSeason year (e.g., 2025)

TDQS

B3.1/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 lacks any mention of behavioral traits like read-only nature, data freshness, or authentication requirements. The verb 'Get' implies read-only, but this is not explicit.

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

Conciseness5/5

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

The description is a single, focused sentence that immediately states the purpose and lists example data. No unnecessary words or repetition.

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 simplicity (2 parameters, no nested objects), the description covers the basics but lacks details on output format or default behavior (e.g., returns data for one team or all teams per season). With no output schema, more context would help the agent.

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?

Input schema has 100% description coverage for both parameters (team and season). The tool description adds no additional meaning or constraints beyond the schema, resulting in a baseline score of 3.

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 retrieves miscellaneous stats like shooting percentages and rates. However, it does not differentiate from sibling tools such as kenpom_fourfactors or kenpom_ratings, which may have overlapping stats.

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?

No guidance on when to use this tool versus alternatives. The description merely lists what it does, without specifying contexts or prerequisites.

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

kenpom_pointdistB

Get point distribution data: percentage of points from FTs, 2-pointers, and 3-pointers for offense and defense.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional: Filter to specific team name
seasonYesSeason year (e.g., 2025)

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 description carries full burden. It only states what data is returned but does not disclose behavioral traits such as data freshness, authentication requirements, rate limits, or whether the data is aggregated or per-game.

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

Conciseness5/5

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

Single sentence with no wasted words. It is front-loaded with the main action and quickly provides specific details about the data returned.

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?

No output schema is present, so description should compensate by describing return structure. It mentions metrics but not how they are organized (e.g., separate for offense/defense, team-level). For a tool with 2 parameters and no output schema, the description is incomplete.

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?

Schema description coverage is 100%, meaning the schema already documents both parameters. The description adds no additional meaning beyond what the schema provides; it does not elaborate on parameter usage or valid values.

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

Purpose5/5

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

Description clearly specifies verb 'Get', resource 'point distribution data', and details the metrics (percentage of points from FTs, 2-pointers, 3-pointers for offense and defense). It distinguishes from sibling tools by focusing uniquely on point distribution.

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?

No explicit guidance on when to use this tool versus alternatives like kenpom_fourfactors or kenpom_ratings. The description implies usage for point distribution queries but does not provide when-not-to-use or context-specific recommendations.

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

kenpom_predictionsB

Get KenPom game predictions (FanMatch) for a specific date. Includes predicted scores, win probability, and spread.

ParametersJSON Schema
NameRequiredDescriptionDefault
game_dateNoDate in YYYY-MM-DD format (default: today)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states the output content but does not disclose behavioral traits such as authentication needs, rate limits, data source, or performance characteristics.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the tool's purpose and output. No unnecessary words or repetition.

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?

The description covers the basic purpose and output, but lacks information about output format (since no output schema exists) and does not mention that the parameter is optional. For a simple tool this is adequate but has gaps.

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 input schema already fully describes the only parameter (game_date) with format and default. The tool description adds no new semantics beyond restating that it is for a specific date, so baseline score of 3 is appropriate.

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 returns KenPom game predictions for a specific date, including predicted scores, win probability, and spread. It distinguishes from siblings by focusing on predictions for a single date, but does not explicitly differentiate from tools like kenpom_matchup or kenpom_slate.

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?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or comparison to sibling tools.

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

kenpom_projectC

Project game score, margin, total, and win probability for a matchup. Uses OE/DE crossover method with configurable home court advantage.

ParametersJSON Schema
NameRequiredDescriptionDefault
kNoSigmoid scaling factor for win probability (default: 11.0)
seasonNoSeason year (default: current, ignored if archive_date set)
home_advNoHome court advantage in points (default: 3.5)
home_teamYesHome team name (e.g., 'Duke')
archive_dateNoOptional: Use archive ratings from this date (YYYY-MM-DD) for backtesting. If omitted, uses current ratings.
visitor_teamYesVisitor team name (e.g., 'North Carolina')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description provides minimal behavioral disclosure. It lacks information on side effects, error handling, rate limits, or what happens with invalid team names, which is critical for a projection tool.

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

Conciseness4/5

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

The description is concise with two sentences that front-load the main outputs and method. No unnecessary words, but could benefit from bullet points for clarity.

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 output schema, the description only vaguely mentions outputs without detailing format or structure. Missing details on return values, error conditions, and behavior for missing data make it incomplete for an agent to understand the full response.

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?

Schema coverage is 100%, so the description adds little extra meaning beyond the schema. The mention of 'configurable home court advantage' adds context for home_adv, but other parameters like 'k' and 'archive_date' are not elaborated.

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 it projects game score, margin, total, and win probability using the OE/DE crossover method. It distinguishes itself from sibling tools like kenpom_matchup by mentioning configurable home court advantage, but could be more explicit about its unique purpose.

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?

No guidance is provided on when to use this tool versus alternatives like kenpom_predictions or kenpom_archive. The description does not mention prerequisites, suitable contexts, or when not to use it.

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

kenpom_ratingsB

Get current efficiency ratings (AdjOE, AdjDE, AdjEM) for all teams. This is the core KenPom ranking data.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional: Filter to specific team name
seasonYesSeason year (e.g., 2025)

TDQS

B3.2/5.0
Behavior3/5

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

No annotations provided, so the description carries the transparency burden. It mentions 'current' but the schema requires a season parameter, which is slightly misleading. It does not disclose response format, pagination, or data freshness beyond 'current'. Adequate but not detailed.

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

Conciseness5/5

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

Two concise sentences with no filler. The first sentence defines the action and result, the second provides context. Every word earns its place.

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?

No output schema is provided, and the description does not explain the structure of returned data (e.g., JSON keys, ordering). Lacks information on error handling or limits. Incomplete for a tool with 2 parameters and no schema.

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?

Schema coverage is 100%, so the baseline is 3. The description adds that it returns data 'for all teams' and implies the team parameter filters, but does not explain value formats or behavior when omitted. Minimal added value.

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 verb 'Get' and the resource 'efficiency ratings (AdjOE, AdjDE, AdjEM)' and identifies itself as core KenPom ranking data. It distinguishes from siblings vaguely but could be more explicit about how it differs from tools like kenpom_top_teams or kenpom_predictions.

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?

No guidance on when to use this tool vs alternatives such as kenpom_fourfactors or kenpom_predictions. The description does not mention use cases, prerequisites, or exclusions.

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

kenpom_slateB

Build full projection slate table for a date. Returns all games with projected scores, margins, win probabilities, and optional market odds. Use backtest=true for time-correct archive features.

ParametersJSON Schema
NameRequiredDescriptionDefault
kNoSigmoid scaling factor for win probability (default: 11.0)
backtestNoUse archive features for time-correct backtesting (default: false)
home_advNoHome court advantage in points (default: 3.0)
game_dateNoDate in YYYY-MM-DD format (default: today)
join_oddsNoJoin with market odds if available (default: false)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description must disclose behaviors. It mentions optional market odds and backtest feature but does not clarify side effects, prerequisites, or data freshness. The read-only nature is implied but not stated.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence front-loads the main purpose and output. Every clause adds value.

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 5 parameters and no output schema, the description lacks details on parameter effects (e.g., k, home_adv) and output format. Does not explain how join_odds works or default behavior. Incomplete for a tool of this complexity.

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?

With 100% schema coverage, parameters already have descriptions. The description adds context that the output is a full slate table and that backtest enables archive features, but does not significantly enhance parameter semantics beyond the schema.

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

Purpose5/5

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

The description clearly states the tool builds a full projection slate table for a date, specifying returns (projected scores, margins, win probabilities, optional market odds). This differentiates it from siblings like kenpom_predictions or kenpom_matchup by focusing on the full slate for a date.

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?

Only mentions using backtest=true for archive features, but no guidance on when to use this tool vs. siblings like kenpom_predictions or kenpom_teams. No exclusions or alternatives provided.

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

kenpom_teamsB

Get team rosters with coach, arena, and conference info for a season.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional: Filter to specific team name
seasonYesSeason year (e.g., 2025 for 2024-25 season)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must carry full behavioral burden. It discloses the data returned (roster, coach, arena, conference) but omits details like data freshness, ordering, or if it supports partial data. The read-only nature is implied but not explicit.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the key action and output. No extraneous information is present.

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?

The description is adequate for a simple list tool with two parameters and no output schema, but it lacks differentiation from sibling tools and does not specify whether all teams are returned when no team filter is provided.

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?

Schema coverage is 100%, so the input schema already documents both parameters. The description adds no additional meaning beyond restating the season context. Baseline 3 is appropriate given complete schema 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 retrieves team rosters with coach, arena, and conference info. It uses a specific verb ('Get') and identifies the resource ('team rosters'). While it doesn't explicitly differentiate from sibling tools like kenpom_ratings or kenpom_slate, the purpose is unambiguous.

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?

No guidance is provided on when to use this tool versus its many siblings (e.g., kenpom_ratings, kenpom_slate). There is no mention of prerequisites or exclusions, leaving the agent to infer usage context.

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

kenpom_top_teamsB

Get top N teams by a specific metric (AdjEM, AdjOE, AdjDE, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of teams to return (default: 25)
metricYesMetric to rank by: AdjEM, AdjOE, AdjDE, AdjTempo, SOS
seasonNoSeason year (default: current)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the basic operation without mentioning data source, freshness, pagination, error conditions, or whether the order is descending. Minimal disclosure.

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

Conciseness4/5

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

The description is a single, clear sentence with no extraneous words. It is front-loaded with the core action. However, it sacrifices information for brevity.

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?

No output schema exists, but the description does not explain the return format, units, or what fields are included. For a tool without output schema, this is insufficient for an agent to understand the result.

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?

Schema coverage is 100%, so the description adds little beyond what the enum and parameter descriptions already provide. The description merely echoes the enum values without additional context or usage hints.

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

Purpose5/5

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

Description clearly states the action: get top N teams by a specific metric. It lists example metrics (AdjEM, AdjOE, AdjDE, etc.), which distinguishes it from sibling tools that return all teams or different data.

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?

No explicit guidance on when to use this tool versus alternatives like kenpom_ratings or kenpom_teams. The description implies it's for top teams, but does not specify prerequisites, exclusions, or comparison with siblings.

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. Dates show when Glama detected each change.

  1. 15 tool updatesv0.2.0
    • First observedclassify_effort
    • First observedget_tool_effort
    • First observedkenpom_archive
    • First observedkenpom_conferences
    • First observedkenpom_fourfactors
    • First observedkenpom_height
    • First observedkenpom_matchup
    • First observedkenpom_miscstats
    • First observedkenpom_pointdist
    • First observedkenpom_predictions
    • First observedkenpom_project
    • First observedkenpom_ratings
    • First observedkenpom_slate
    • First observedkenpom_teams
    • First observedkenpom_top_teams

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes like ratings, predictions, or team rosters. However, 'kenpom_predictions' and 'kenpom_project' and 'kenpom_slate' overlap slightly in providing game forecasts, and the two effort-classification tools are unrelated to basketball data, causing potential confusion.

Naming Consistency3/5

Thirteen tools follow the 'kenpom_' prefix with noun-based names, but 'classify_effort' and 'get_tool_effort' break the pattern. Some compound names lack underscores (e.g., 'fourfactors', 'miscstats') while others use them, creating minor inconsistency.

Tool Count5/5

With 15 tools covering ratings, four factors, predictions, rosters, and more, the count is well-scoped for a college basketball analytics server. Each tool serves a clear function without redundancy.

Completeness4/5

The tool set covers core KenPom data like efficiency ratings, four factors, and game predictions. Missing are raw game results or player-level stats, but for team-level analysis the surface is nearly complete.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server providing access to college football statistics sourced from the College Football Data API within Claude Desktop.
    9
    27
    MIT
  • 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.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A general-purpose MCP server with utility tools including datetime information, safe math calculations, text statistics, JSON extraction, knowledge base search, and HTTP GET requests. It demonstrates server-side MCP implementation and can be connected to Claude Desktop or LangGraph agents.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/omalleyandy/kenpom-client'

If you have feedback or need assistance with the MCP directory API, please join our Discord server