Feyod MCP Server

by jeroenvdmeer

333 downloads
Not rated
GitHub

About

Model Content Protocol (MCP) server for querying Feyenoord football match data using natural language.

Details

Author
jeroenvdmeer
Downloads
333
Categories
Other, AI

- Converts natural language questions to SQL queries.
- Uses LangChain for SQL generation, validation, and correction.
- Supports multiple LLM providers (e.g., OpenAI, Google).
- Public endpoint available for direct MCP client access.
- Docker container available on Docker Hub.
- Local setup with SQLite database from the feyod GitHub repository.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Feyod MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Connect via any MCP-compatible client to the public endpoint, or run the server locally using Docker (jeroenvdmeer/feyod-mcp) or Python with provided setup. The exposed tool is query_feyod_database, which converts a natural language query into SQL and returns results.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "feyod mcp server": {
            "feyod-mcp": {
                "command": "docker",
                "args": [
                    "pull",
                    "jeroenvdmeer/feyod-mcp"
                ]
            }
        }
    }
}

McpServers

{
    "feyod-mcp": {
        "command": "docker",
        "args": [
            "pull",
            "jeroenvdmeer/feyod-mcp"
        ]
    }
}

Feyod MCP Server

FastMCP-based Model Context Protocol (MCP) server for querying Feyenoord football match data using natural language. Compatible with Claude Desktop and other MCP clients.

The server is publicly available at https://mcp.feyod.nl/mcp and a Docker container is available on Docker Hub (jeroenvdmeer/feyod-mcp).

---

Overview

This MCP server provides a natural language interface to query Feyod: Feyenoord Open Data. The underlying database is maintained in the feyod GitHub repository. You will need to obtain the latest SQL file from that repository to set up the required database.

The server uses LangChain to:
1. Convert natural language questions into SQL queries (optionally leveraging few-shot examples for better accuracy).
2. Validate the generated SQL.
3. Attempt to fix invalid SQL using an LLM.
4. Execute the valid SQL against a SQLite database.
5. Return the raw query results.

LLM and embedding models are dynamically loaded based on configuration using a provider factory (llm_factory.py), allowing easy switching between providers like OpenAI, Google, etc.

---

Consumption

Using the Public Endpoint

The Feyod MCP server is publicly available at https://mcp.feyod.nl/mcp. You can connect to this endpoint from any MCP-compatible client, such as Claude Desktop.

Using the Docker Container

A Docker image of the Feyod MCP server is available on Docker Hub. You can pull and run it using the following commands:

1. Pull the Docker image:

    docker pull jeroenvdmeer/feyod-mcp

2. Run the Docker container:
You will need to provide the necessary environment variables for the LLM provider and API key. You can also mount the feyod.db file if you want to use a local database instead of the one included in the image.

    docker run -p 8000:8000 \
      -e LLM_PROVIDER="your_llm_provider" \
      -e LLM_API_KEY="your_api_key" \
      jeroenvdmeer/feyod-mcp
    
Replace your_llm_provider and your_api_key with your actual LLM configuration.

To mount a local database file:

    docker run -p 8000:8000 \
-e LLM_PROVIDER="your_llm_provider" \
-e LLM_API_KEY="your_api_key" \
-v <absolute_path_to_feyod_db>:/app/feyod/feyod.db \
jeroenvdmeer/feyod-mcp

Replace <absolute_path_to_feyod_db> with the absolute path to your feyod.db file on your host machine.

---

Tools

This server exposes MCP tools for querying the Feyenoord database. Tools are discoverable via the MCP protocol (tools/list).

- query_feyod_database: Converts a natural language query about Feyenoord matches into a SQL query, executes it, and returns the SQL query and its result.

See the MCP Inspector or Claude Desktop's tool list for details.

---

Setup

1. Clone repositories:

    # Clone this repo for the MCP server
git clone https://github.com/jeroenvdmeer/feyod-mcp.git

# Clone the Feyod database
git clone https://github.com/jeroenvdmeer/feyod.git

# Change directory into the MCP server
cd feyod-mcp


2. Create and activate a virtual environment (recommended: uv):

Refer to https://docs.astral.sh/uv/ for the installation instructions of uv.

    uv venv
    .venv\Scripts\activate  # Windows
    # or
    source .venv/bin/activate  # macOS/Linux
    
3. Install dependencies:
    # Using uv (recommended)
    uv add "mcp[cli]" langchain langchain-openai langchain-google-genai python-dotenv aiosqlite
    # Or using pip
    pip install -r requirements.txt
    
4. Set up the database:
    # Change directory to the feyod directory with the SQL file
    cd ../feyod

# Build the SQLite database using the SQL statements
sqlite3 feyod.db < feyod.sql

---

Configuration

Create a .env file in the mcp directory with the following variables:

```dotenv

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.