Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Io.Github.Optisol Business/Db Metadata Extractor

БесплатноНе проверен

Enables extraction and querying of database schema metadata from PostgreSQL, Snowflake, SQL Server, BigQuery, and Oracle databases, saving results locally for a

GitHubEmbed

Описание

Enables extraction and querying of database schema metadata from PostgreSQL, Snowflake, SQL Server, BigQuery, and Oracle databases, saving results locally for analysis.

README

mcp-name: io.github.Optisol-Business/db-metadata-extractor-mcp

Database Metadata Extractor MCP Server

A Model Context Protocol (MCP) server that extracts and queries database schema metadata from PostgreSQL, Snowflake, SQL Server, BigQuery, and Oracle databases.

Features

  • Multi-database support: PostgreSQL, Snowflake, SQL Server (MSSQL), BigQuery, Oracle
  • Complete schema extraction: Tables, columns, primary keys, indexes, constraints
  • Local JSON output: Saves metadata directly to local folder (no cloud required)
  • Query interface: Search and filter metadata by table/column names
  • Pagination support: Browse large schemas efficiently
  • VS Code integration: Works with VS Code Agent Mode
  • CLI customizable: Transport options (stdio, HTTP)

Installation

From PyPI

pip install db-metadata-extractor-mcp

From Source

git clone https://github.com/Optisol-Business/db-metadata-extractor-mcp.git
cd db-metadata-extractor-mcp
pip install -e .

Quick Start

1. Start the MCP Server

db-metadata-extractor-mcp

The server starts in stdio mode by default and listens for MCP client connections.

2. Configure in Claude Desktop

Add to ~/.config/Claude/claude_desktop_config.json (macOS/Linux) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "db-metadata-extractor": {
      "command": "db-metadata-extractor-mcp",
      "args": [],
      "env": {}
    }
  }
}

Restart Claude Desktop.

3. Use in Claude

Tell Claude:

Extract metadata from my PostgreSQL database and save it to /tmp/output

Claude will use the server's tools to extract and query your database schema.

Tools

extract_metadata

Extracts complete schema metadata from a database.

Parameters:

  • db_type (required): postgresql, snowflake, sqlserver, bigquery, oracle
  • output_path (required): Local directory for JSON output
  • database_name: Database/schema name
  • host: Database host (not needed for BigQuery/Snowflake)
  • port: Database port
  • username: Database user
  • password: Database password
  • schema_name: Specific schema (optional)
  • tables: Array of table names to extract (optional)
  • account: Snowflake account ID
  • warehouse: Snowflake warehouse
  • role_name: Snowflake role
  • project_id: BigQuery project ID
  • service_account_key: BigQuery service account JSON (base64 encoded)

Returns:

  • File path where metadata was saved
  • Summary statistics (table count, column count, etc.)

query_metadata

Query previously extracted metadata.

Parameters:

  • filepath (required): Path to metadata JSON file
  • table_name: Filter by table name (substring match)
  • field_name: Filter by column name (substring match)
  • page: Page number (default: 1)
  • page_size: Results per page (default: 20)

Returns:

  • Paginated table results matching filters

Examples

PostgreSQL

# Via Claude
"Extract all tables from my dev PostgreSQL database at localhost:5432"

Parameters Claude will use:

{
  "db_type": "postgresql",
  "host": "localhost",
  "port": 5432,
  "database_name": "dev_db",
  "username": "postgres",
  "password": "your_password",
  "output_path": "/tmp/db_metadata"
}

Snowflake

"Extract schema from Snowflake account XYZ123"

Parameters:

{
  "db_type": "snowflake",
  "account": "XYZ123",
  "username": "your_user",
  "password": "your_password",
  "warehouse": "COMPUTE_WH",
  "role_name": "ANALYST",
  "database_name": "PRODUCTION",
  "output_path": "C:/metadata"
}

BigQuery

"Extract metadata from BigQuery project my-project-123"

Parameters:

{
  "db_type": "bigquery",
  "project_id": "my-project-123",
  "service_account_key": "base64_encoded_json_key",
  "output_path": "/tmp/bq_metadata"
}

Advanced Usage

Custom Transport

Start with HTTP transport:

db-metadata-extractor-mcp --transport streamable-http --port 3000

Environment Variables

# Set database credentials via env
export DB_HOST=localhost
export DB_USER=postgres
export DB_PASSWORD=secret

db-metadata-extractor-mcp

Output Format

The extracted metadata is saved as a JSON file with structure:

{
  "source": {
    "db_type": "postgresql",
    "extracted_at": "2026-04-09T14:30:00",
    "host": "localhost"
  },
  "schemas": [
    {
      "schema_name": "public",
      "tables": [
        {
          "table_name": "users",
          "columns": [
            {
              "column_name": "id",
              "data_type": "int",
              "is_nullable": false,
              "is_primary_key": true
            },
            {
              "column_name": "email",
              "data_type": "varchar",
              "is_nullable": false
            }
          ],
          "indexes": [
            {
              "index_name": "users_email_idx",
              "columns": ["email"]
            }
          ]
        }
      ]
    }
  ]
}

Requirements

  • Python 3.8+
  • For PostgreSQL: psycopg2-binary
  • For Snowflake: snowflake-connector-python
  • For SQL Server: pyodbc, pymssql
  • For BigQuery: google-cloud-bigquery
  • For Oracle: oracledb

Troubleshooting

Connection Errors

Problem: "Unable to connect to database"

Solution: Verify credentials and network access:

# Test PostgreSQL connection
psql -h localhost -U postgres -c "SELECT 1"

# Test Snowflake
snowsql -a XYZ123 -u your_user

Permission Errors

Problem: "Access denied" or "insufficient permissions"

Solution: Ensure database user has:

  • SELECT on tables
  • USAGE on schemas
  • CONNECT on databases

Large Schema Timeouts

Problem: Extraction times out on large databases

Solution: Extract specific schema/tables:

{
  "schema_name": "public",
  "tables": ["users", "orders"]  // Specify subset
}

License

MIT License - See LICENSE file

Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create feature branch
  3. Submit pull request

Support

Links

from github.com/Optisol-Business/db-metadata-extractor-mcp

Установить Io.Github.Optisol Business/Db Metadata Extractor в Claude Desktop, Claude Code, Cursor

Рекомендуется · одна команда, все IDE
unyly install io-github-optisol-business-db-metadata-extractor-mcp

Ставит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.

Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh

Или настроить вручную

Выполни в терминале:

claude mcp add io-github-optisol-business-db-metadata-extractor-mcp -- uvx db-metadata-extractor-mcp

FAQ

Io.Github.Optisol Business/Db Metadata Extractor MCP бесплатный?

Да, Io.Github.Optisol Business/Db Metadata Extractor MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Io.Github.Optisol Business/Db Metadata Extractor?

Нет, Io.Github.Optisol Business/Db Metadata Extractor работает без API-ключей и переменных окружения.

Io.Github.Optisol Business/Db Metadata Extractor — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить Io.Github.Optisol Business/Db Metadata Extractor в Claude Desktop, Claude Code или Cursor?

Открой Io.Github.Optisol Business/Db Metadata Extractor на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Io.Github.Optisol Business/Db Metadata Extractor with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории data