My_database

My_database

By OpenLinkSoftware GitHub

-

mcp database
Overview

what is My_database?

My_database is a lightweight MCP (Model Context Protocol) server for ODBC built with FastAPI, pyodbc, and SQLAlchemy, designed to work with Virtuoso DBMS and other SQLAlchemy-compatible databases.

how to use My_database?

To use My_database, set up your ODBC Data Source Name, install the required packages, and run the server using the provided command. You can then connect to various databases using the specified connection URLs.

key features of My_database?

  • Fetch and list all schema names from the connected database.
  • Retrieve table information for specific schemas.
  • Generate detailed descriptions of table structures.
  • Filter and retrieve tables based on name substrings.
  • Execute stored procedures and SQL queries with results in JSONL or Markdown format.

use cases of My_database?

  1. Managing and querying data in Virtuoso and other SQLAlchemy-compatible databases.
  2. Generating reports and visualizations from database queries.
  3. Interacting with various database management systems through a unified interface.

FAQ from My_database?

  • What databases are supported?

My_database supports Virtuoso DBMS and any other database that implements a SQLAlchemy provider.

  • How do I install My_database?

Clone the repository from GitHub and follow the installation instructions provided in the documentation.

  • Can I execute stored procedures?

Yes, My_database allows you to execute stored procedures specifically for Virtuoso.

Content

MCP Server ODBC via SQLAlchemy

A lightweight MCP (Model Context Protocol) server for ODBC built with FastAPI, pyodbc, and SQLAlchemy. This server is compatible with Virtuoso DBMS and other DBMS backends that implement a SQLAlchemy provider.

mcp-client-and-servers|648x499


Features

  • Get Schemas: Fetch and list all schema names from the connected database.
  • Get Tables: Retrieve table information for specific schemas or all schemas.
  • Describe Table: Generate a detailed description of table structures, including:
    • Column names and data types
    • Nullable attributes
    • Primary and foreign keys
  • Search Tables: Filter and retrieve tables based on name substrings.
  • Execute Stored Procedures: In the case of Virtuoso, execute stored procedures and retrieve results.
  • Execute Queries:
    • JSONL result format: Optimized for structured responses.
    • Markdown table format: Ideal for reporting and visualization.

Prerequisites

  1. Install uv:

    pip install uv
    

    Or use Homebrew:

    brew install uv
    
  2. ODBC DSN Setup: Configure your ODBC Data Source Name (~/.odbc.ini) for the target database. Example for Virtuoso DBMS:

    [VOS]
    Description = OpenLink Virtuoso
    Driver = /path/to/virtodbcu_r.so
    Database = Demo
    Address = localhost:1111
    WideAsUTF16 = Yes
    
  3. SQLAlchemy URL Binding: Use the format:

    virtuoso+pyodbc://user:password@VOS
    

Installation

Clone this repository:

git clone https://github.com/OpenLinkSoftware/mcp-sqlalchemy-server.git
cd mcp-sqlalchemy-server

Configuration

For Claude Desktop users: Add the following to claude_desktop_config.json:

{
  "mcpServers": {
    "my_database": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-sqlalchemy-server", "run", "mcp-sqlalchemy-server"],
      "env": {
        "DB_URL": "virtuoso+pyodbc://user:password@VOS"
      }
    }
  }
}

Usage

Database Management System (DBMS) Connection URLs

Here are the pyodbc URL examples for connecting to DBMS systems that have been tested using this mcp-server.

DatabaseURL Format
Virtuoso DBMSvirtuoso+pyodbc://user:password@ODBC_DSN
PostgreSQLpostgresql://user:password@localhost/dbname
MySQLmysql+pymysql://user:password@localhost/dbname
SQLitesqlite:///path/to/database.db
Once connected, you can interact with your WhatsApp contacts through Claude, leveraging Claude's AI capabilities in your WhatsApp conversations.

Tools Provided

namedescription
get_schemasList database schemas accessible to connected database management system (DBMS).
get_tablesList tables associated with a selected database schema.
describe_tableProvide the description of a table associated with a designated database schema. This includes information about column names, data types, nulls handling, autoincrement, primary key, and foreign keys
filter_table_namesList tables, based on a substring pattern from the q input field, associated with a selected database schema.
query_databaseExecute a SQL query and return results in JSONL format.
execute_queryExecute a SQL query and return results in JSONL format.
execute_query_mdExecute a SQL query and return results in Markdown table format.
spasql_queryExecute a SPASQL query and return results.
sparql_queryExecute a SPARQL query and return results.
virtuoso_support_aiInteract with the Virtuoso Support Assistant/Agent -- a Virtuoso-specific feature for interacting with LLMs

Troubleshooting

For easier troubleshooting:

  1. Install the MCP Inspector:

    npm install -g @modelcontextprotocol/inspector
    
  2. Start the inspector:

    npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-sqlalchemy-server run mcp-sqlalchemy-server
    

Access the provided URL to troubleshoot server interactions.

No tools information available.

This is a basic MCP Server-Client Impl using SSE

mcp server-client
View Details

-

mcp model-context-protocol
View Details
Postgres
Postgres by guoling2008

-

postgres database
View Details

Buttplug.io Model Context Protocol (MCP) Server

mcp buttplug
View Details

MCP web search using perplexity without any API KEYS

mcp puppeteer
View Details

free MCP server hosting using vercel

mcp mantle-network
View Details