kenpom-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kenpom-mcpget the Pomeroy ratings for Duke"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
KenPom MCP Server ๐
Production-ready async MCP server for KenPom basketball analytics.
Note: Requires a paid KenPom subscription (kenpom.com) - email/password login, no API key needed.
โจ Project Status: Production Ready
โ 100% Test Coverage โ 61 tests covering all parsers and scraper
โ CI/CD Pipeline โ GitHub Actions running tests, linting, and formatting
โ Code Quality โ Pre-commit hooks with ruff enforcement
โ Network Resilience โ Retry logic with exponential backoff
โ Dual Transport โ Local (STDIO) and self-hosted HTTP/SSE support
Related MCP server: nba-stats-mcp
Features
๐ Async Architecture โ Built with httpx for non-blocking requests
โ๏ธ Self-Hostable โ Optional HTTP/SSE server for remote access
๐พ Smart Caching โ KV-based caching to reduce scraping frequency
๐ง Dual Transport โ Local (STDIO) and Remote (SSE) support
๐ 13+ Data Tools โ Full coverage of KenPom stats
๐ Retry Logic โ Automatic retry with backoff for network failures
๐งช Well Tested โ Comprehensive unit and integration tests
Quick Start (Local)
cd /path/to/mcp_kenpom
cp .env.example .env # Add your credentials
uv sync
uv run kenpom-mcpMCP Client Configuration
Local Mode
{
"mcpServers": {
"kenpom": {
"command": "uv",
"args": ["--directory", "/path/to/mcp_kenpom", "run", "kenpom-mcp"]
}
}
}Remote Mode (Self-Hosted)
If you run the HTTP server on your own infrastructure:
{
"mcpServers": {
"kenpom": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-server-url/sse"
]
}
}
}Available Tools
Tool | Description |
| Pomeroy ratings (rank, adj efficiency, tempo) |
| Efficiency and tempo stats |
| eFG%, TO%, OR%, FTRate |
| Miscellaneous team stats (offense/defense) |
| Player leaders by metric |
| Height/experience data |
| Game predictions by date |
| Arena information |
| Top games by attribute (excitement, upsets) |
| Historical program rankings |
| Player of the Year standings |
| Scoring breakdown by shot type |
| Home court advantage data |
Architecture
src/kenpom_mcp/
โโโ server.py # FastMCP server with 13 tools (STDIO transport)
โโโ http_server.py # Starlette server (HTTP/SSE transport)
โโโ tools.py # Unified tool registry (single source of truth)
โโโ scraper.py # Async httpx scraper with retry logic
โโโ parsers/ # HTML parsing modules
โโโ ratings.py # Pomeroy ratings
โโโ efficiency.py # Efficiency and tempo stats
โโโ stats.py # Team and player stats
โโโ fanmatch.py # Game predictions
โโโ misc.py # Arena, HCA, program ratings, KPOY
tests/
โโโ conftest.py # Pytest fixtures
โโโ fixtures/ # 14 HTML sample files
โโโ test_fixtures.py # Fixture loading tests
โโโ test_parsers.py # 33 parser unit tests
โโโ test_scraper.py # 14 scraper integration testsDevelopment
Setup
# Install dependencies
uv sync
# Copy environment template
cp .env.example .env # Add your KenPom credentials
# Install pre-commit hooks (optional but recommended)
uv run pre-commit installRunning
# Local dev (STDIO)
uv run kenpom-mcp
# HTTP dev server (port 8000)
uv run uvicorn kenpom_mcp.http_server:app --reload
# Test with MCP inspector
npx @modelcontextprotocol/inspector uv --directory . run kenpom-mcpTesting & Quality
# Run all tests
uv run pytest tests/
# Run tests with coverage
uv run pytest tests/ --cov=kenpom_mcp
# Run specific test file
uv run pytest tests/test_parsers.py -v
# Lint and format
uv run ruff check src/ tests/
uv run ruff format src/ tests/
# Run pre-commit hooks manually
uv run pre-commit run --all-files๐ค Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
This project uses:
pytest for testing with async support
ruff for linting and formatting
pre-commit for automated quality checks
GitHub Actions for CI/CD
All PRs must pass tests and linting checks.
๐ Security
For security issues, please see SECURITY.md for responsible disclosure guidelines.
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
KenPom (kenpom.com) - Ken Pomeroy's advanced basketball analytics
FastMCP (github.com/jlowin/fastmcp) - MCP server framework
MCP Protocol (modelcontextprotocol.io) - Model Context Protocol specification
๐ Support
Issues: GitHub Issues
Discussions: GitHub Discussions
Security: See SECURITY.md
Made with โค๏ธ for basketball analytics enthusiasts
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceAn 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.
- AlicenseBqualityDmaintenanceProvides comprehensive NBA statistics via Model Context Protocol, enabling queries for player stats, game scores, team info, and advanced analytics through natural language.2110MIT
- AlicenseAqualityCmaintenanceExposes the StatsPlus API as tools for MCP-compatible clients, enabling users to query player/team statistics, contracts, ratings, and game history via natural language.154MIT
- FlicenseBqualityDmaintenanceA Python MCP server providing 11 tools for querying KenPom basketball analytics, including efficiency ratings, game predictions, four factors, and more through Claude.15
Related MCP Connectors
Sports Game Odds MCP โ wraps the Sports Game Odds API (sportsgameodds.com)
Read-only fantasy analysis for ESPN, Yahoo, and Sleeper leagues via MCP
API Ninjas MCP โ wraps the multi-endpoint API Ninjas data API (api-ninjas.com)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/dburge86/kenpom-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server