MCP Eleven
Click on "Deploy 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., "@MCP ElevenFind creative midfielders with 5+ assists and 3+ goals"
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.
MCP Eleven
An open-source MCP server that turns any AI assistant into a football data analytics and scouting platform.
Demo
https://github.com/user-attachments/assets/783f91cd-1143-4060-bc0d-edbd11757ff9
Related MCP server: nfl-mcp
What It Does
Finding football stats usually means jumping between websites, dealing with filters, and copy-pasting data. MCP Eleven lets you skip all that — connect it to any AI assistant, ask in plain language, and get real data back from 40+ stats, 20+ leagues, and 10,000+ players.
"Find me a creative playmaker with 8+ assists, 85%+ pass accuracy, and at least 3 goals this season" — that's it. No SQL, no filters, no scraping.
Tools
Tool | Description | Source |
| Query 40+ stats across 20+ leagues with flexible filters | Database |
| Deep scouting dossier — market value, injuries, transfers, personality | Web search |
| Team analysis — tactics, coach, form, transfer targets | Web search |
| Find highlight videos from YouTube, Instagram, TikTok | Web search |
Scouting Workflow
The tools are designed to be used together, the same way a real scout works:
Analyze the team —
get_team_contextto understand tactics, weaknesses, and what positions need reinforcingSearch for candidates —
search_playersto find players that match the profile statisticallyDeep dive on the best fit —
get_player_contextto check market value, injuries, contract, and personalityWatch them play —
get_player_highlightsto find video evidence before making a decision
Usage Example
Scouting Flow: "Real Madrid needs a creative midfielder"
Step 1 — Analyze the team
"Get context on Real Madrid in La Liga"
Uses get_team_context. You understand the squad, tactics, coach philosophy, current form, and transfer targets. Now you know what they need.
Step 2 — Search for candidates
"Find creative midfielders across top leagues: min 5 assists, min 25 key passes, min 3 goals, pass accuracy above 82%"
Uses search_players. You get a shortlist of candidates with real stats:
Player | Team | Assists | Key Passes | Pass % | Goals |
Michael Olise | Bayern Munich | 16 | 56 | 85.0% | 10 |
Bruno Fernandes | Manchester United | 12 | 78 | 83.3% | 6 |
Federico Dimarco | Inter | 11 | 63 | 82.2% | 5 |
Nico Paz | Como | 6 | 40 | 82.8% | 8 |
Step 3 — Deep dive on the best fit
"Get full scouting context on Nico Paz from Como"
Uses get_player_context. You get market value, injuries, transfer history, awards, personality — everything to make a decision.
Step 4 — Watch him play
"Get highlight videos of Nico Paz"
Uses get_player_highlights. You get YouTube/Instagram/TikTok links to actually see the player in action.
The story: Team context (what do they need?) → Player search (who fits?) → Scouting report (is he available, healthy, affordable?) → Highlights (does the eye test match the data?)
Architecture
Ingest Pipeline

Build & Deploy Pipeline

Client Request Flow

See docs/v1/specs/architecture.md for detailed breakdowns.
Project Structure & Tech Stack
mcp-eleven/
├── main.py # Entry point
├── server.py # MCP instance + auth middleware
├── tools/ # One file per MCP tool
│ ├── search_players.py
│ ├── player_context.py
│ ├── team_context.py
│ └── player_highlights.py
├── services/ # Business logic
│ └── web_search/
│ ├── config.py # Search categories, video domains
│ ├── prompts.py # LLM instructions per tool
│ └── search.py # Tavily search functions
├── config/ # Settings, DB config, leagues
├── model/ # Player stats schema, filters, API key
├── db/ # Query engine (SQLite / Azure SQL)
├── auth/ # API key validation
├── scripts/ # Data loading, key generation
├── docs/ # Versioned documentation (v1/, v2/)
└── tests/ # HTTP and unit testsComponent | Technology | Purpose |
Language | Python 3.12 | Core runtime |
MCP Framework | FastMCP 2.13.3 | Exposes tools to AI assistants |
ORM | SQLModel 0.0.27 | Type-safe database operations |
Web Search | Tavily | Real-time scouting context |
Data Source | ScraperFC (Sofascore) | Football statistics |
Database | SQLite / Azure SQL | Player stats storage |
Auth | API key (hashed + tracked) | Access control |
Container | Docker | Reproducible deployment |
CI/CD | GitHub Actions | Auto build + deploy |
Hosting | Azure App Service | Production server |
Leagues Supported
Top 5 | Continental | Americas | Other |
Premier League | Champions League | MLS | Saudi Pro League |
La Liga | Europa League | Copa Libertadores | Turkish Super Lig |
Bundesliga | Conference League | Argentina Liga | World Cup |
Serie A | Euros | USL Championship | Women's World Cup |
Ligue 1 | Liga 1 Peru | Gold Cup |
Quick Start
1. Clone and install
git clone https://github.com/ivan-escribano/mcp-eleven.git
cd mcp-eleven
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt2. Configure environment
cp .env.example .envEdit .env with your values:
APIKEY_SALT=your-random-salt-here
HOST=0.0.0.0
PORT=8000
TAVILY_API_KEY=tvly-your-api-key-here
# Azure SQL (optional — uses local SQLite by default)
# DATABASE_URL=mssql+pyodbc://user:pass@server.database.windows.net:1433/dbname?driver=ODBC+Driver+18+for+SQL+Server3. Load data and create API key
python scripts/load_data.py
python scripts/create_api_key.py4. Run the server
python main.pyServer starts at http://localhost:8000. Health check at /health.
5. Connect an MCP client
Claude Desktop (needs mcp-remote bridge — requires Node.js):
{
"mcpServers": {
"mcp-eleven": {
"command": "npx",
"args": [
"mcp-remote@latest",
"http://localhost:8000/mcp?api_key=YOUR_API_KEY",
"--allow-http"
]
}
}
}Config file location:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
VSCode / Cursor (direct HTTP — no bridge needed):
{
"mcpServers": {
"mcp-eleven": {
"url": "http://localhost:8000/mcp?api_key=YOUR_API_KEY"
}
}
}Documentation
All docs are versioned. See docs/DOCS_GUIDE.md for the structure.
Version | Content |
Original architecture, diagrams, overview | |
Specs, implementation plans, explanations, changelog |
Roadmap
Player search with 40+ statistical filters
Deep player scouting via web search
Team tactical analysis via web search
Video highlights search
Project reorganization (tools/ folder, versioned docs)
Player comparison tool
Historical season-over-season tracking
Streaming responses for large queries
License
MIT
Connect
This server cannot be deployed
Maintenance
Related MCP Connectors
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
An MCP server that integrates with Discord to provide AI-powered features.
One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn open-source MCP server that connects to the SoccerDataAPI to deliver up-to-date football match information via natural language interactions.39MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that provides access to over 12 years of NFL play-by-play data through a local DuckDB database. It enables users to query player performance, team statistics, and situational efficiency metrics like EPA and WPA using natural language.8MIT
- AlicenseAqualityCmaintenanceMCP server that connects AI assistants to the Statos football analytics platform, enabling natural language queries for match predictions, betting picks, league information, and admin market-suppression controls.79 npmMIT
- FlicenseBqualityCmaintenanceAn MCP server that helps an AI agent run a Sleeper fantasy football team from draft night through the championship. It syncs league data, imports FantasyPros rankings, and recommends draft picks, lineups, waivers, and trades.33-