Skip to main content
Glama

Video Metadata MCP Server

Video Metadata MCP Server

A Model Context Protocol (MCP) server for managing video metadata with game information, teams, scores, and other sports-related data. This server uses PostgreSQL as the database backend.

Features

  • CRUD Operations: Create, read, update, and delete video metadata records
  • Advanced Search: Filter videos by game type, teams, league, season, tags, and date ranges
  • PostgreSQL Integration: Robust database with JSONB support for flexible data storage
  • MCP Protocol: Compatible with Claude Desktop and other MCP clients
  • Rich Metadata: Support for game statistics, player data, venues, and more

Database Schema

The server manages video metadata with the following fields:

  • id: Unique identifier (auto-generated)
  • title: Video title
  • game_type: Type of game (e.g., "basketball", "football", "soccer")
  • teams: Array of participating team names
  • score: Final score as a string
  • duration_seconds: Video duration in seconds
  • video_url: URL to the video file
  • thumbnail_url: URL to the thumbnail image
  • description: Video description
  • tags: Array of tags for categorization
  • player_stats: JSON object containing player statistics
  • match_date: Date when the match was played
  • venue: Location where the match took place
  • league: League or competition name
  • season: Season identifier
  • created_at / updated_at: Timestamps

Prerequisites

  • Node.js (v18 or higher)
  • PostgreSQL (v12 or higher)
  • npm or yarn

Installation

  1. Clone and setup the project:
    git clone <repository-url> cd metadata-mcp npm install
  2. Configure PostgreSQL:
    • Ensure PostgreSQL is running
    • Create a database named video_metadata (or use your preferred name)
    • Copy .env.example to .env and update the database credentials:
    cp .env.example .env
  3. Update environment variables in .env:
    POSTGRES_USER=your_username POSTGRES_PASSWORD=your_password POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_DB=video_metadata
  4. Build the project:
    npm run build
  5. Initialize the database with sample data:
    npm run setup

Usage

Running the MCP Server

npm start

The server will run on stdio and can be connected to by MCP clients.

Available Tools

The server provides the following tools:

1. list_video_metadata

Get all video metadata records.

2. get_video_metadata

Get a specific video metadata record by ID.

  • Parameters: id (number)
3. search_video_metadata

Search video metadata with filters.

  • Parameters:
    • game_type (string, optional)
    • teams (array of strings, optional)
    • league (string, optional)
    • season (string, optional)
    • tags (array of strings, optional)
    • match_date_from (ISO date string, optional)
    • match_date_to (ISO date string, optional)
4. create_video_metadata

Create a new video metadata record.

  • Required Parameters: title, game_type, teams
  • Optional Parameters: All other fields
5. update_video_metadata

Update an existing video metadata record.

  • Required Parameters: id
  • Optional Parameters: Any field to update
6. delete_video_metadata

Delete a video metadata record.

  • Parameters: id (number)
7. get_game_types

Get all unique game types from the database.

8. get_teams

Get all unique teams from the database.

9. get_leagues

Get all unique leagues from the database.

Example Usage with Claude Desktop

Add this to your Claude Desktop MCP configuration:

{ "mcpServers": { "video-metadata": { "command": "node", "args": ["/path/to/metadata-mcp/build/index.js"], "env": { "POSTGRES_USER": "your_username", "POSTGRES_PASSWORD": "your_password", "POSTGRES_HOST": "localhost", "POSTGRES_PORT": "5432", "POSTGRES_DB": "video_metadata" } } } }

Sample Data

The setup script includes sample data for:

  • NBA Finals Game 7 (Lakers vs Celtics)
  • Super Bowl LVIII (Chiefs vs 49ers)
  • Champions League Final (Real Madrid vs Liverpool)

Development

Project Structure

src/ ├── index.ts # Main MCP server implementation ├── database.ts # Database manager and schema └── setup.ts # Database initialization script build/ # Compiled JavaScript files tsconfig.json # TypeScript configuration package.json # Dependencies and scripts .env.example # Environment variables template

Building

npm run build

Adding New Features

  1. Extend the VideoMetadata interface in database.ts
  2. Add corresponding database schema changes in initializeSchema()
  3. Implement new tools in the MCP server (index.ts)
  4. Add validation schemas using Zod

Database Indexes

The following indexes are automatically created for optimal performance:

  • idx_video_metadata_game_type: On game_type field
  • idx_video_metadata_teams: GIN index on teams JSONB array
  • idx_video_metadata_tags: GIN index on tags JSONB array
  • idx_video_metadata_match_date: On match_date field
  • idx_video_metadata_league: On league field

Error Handling

The server includes comprehensive error handling:

  • Database connection errors
  • Invalid parameter validation (using Zod schemas)
  • Resource not found errors
  • Proper MCP error codes and messages

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Submit a pull request

License

MIT License - see LICENSE file for details.

-
security - not tested
F
license - not found
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Manages sports video metadata with CRUD operations for game information, teams, scores, and statistics. Enables advanced search filtering by game type, teams, league, season, and date ranges through PostgreSQL integration.

  1. Features
    1. Database Schema
      1. Prerequisites
        1. Installation
          1. Usage
            1. Running the MCP Server
            2. Available Tools
            3. Example Usage with Claude Desktop
          2. Sample Data
            1. Development
              1. Project Structure
              2. Building
              3. Adding New Features
            2. Database Indexes
              1. Error Handling
                1. Contributing
                  1. License

                    Related MCP Servers

                    • -
                      security
                      F
                      license
                      -
                      quality
                      Provides programmatic access to comprehensive football statistics and live match data via API-Football, enabling applications to retrieve league standings, team fixtures, player statistics, and real-time match events.
                      Last updated -
                      Python
                    • -
                      security
                      F
                      license
                      -
                      quality
                      Provides structured access to NHL data including teams, players, standings, schedules, and statistics through the Model-Context Protocol pattern.
                      Last updated -
                      TypeScript
                    • -
                      security
                      A
                      license
                      -
                      quality
                      A Modular Command-line Program for fetching and filtering NFL transaction data, including player movements, injuries, disciplinary actions, and more from ProSportsTransactions.com.
                      Last updated -
                      Python
                      MIT License
                    • -
                      security
                      F
                      license
                      -
                      quality
                      An MCP server that enables interaction with MLB (Major League Baseball) v3 projections through the SportsData.io API, allowing access to baseball statistics and projections through natural language.
                      Last updated -
                      Python

                    View all related MCP servers

                    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/stich-studios/metadata-mcp'

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