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: flaim
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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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