Database · MODEL CONTEXT PROTOCOL

OpenLinkSoftware mcp sqlalchemy server

A simple MCP ODBC server using FastAPI, ODBC and SQLAlchemy.

WHAT IT CONNECTS

OpenLinkSoftware mcp sqlalchemy server 为 AI Agent 提供什么

  • **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.
  • **Install uv**:
  • **unixODBC Runtime Environment Checks**:
  • Check installation configuration (i.e., location of key INI files) by running: `odbcinst -j`
  • List available data source names by running: `odbcinst -q -s`
  • **ODBC DSN Setup**: Configure your ODBC Data Source Name (`~/.odbc.ini`) for the target database. Example for Virtuoso DBMS:
  • **SQLAlchemy URL Binding**: Use the format:
  • **podbc_get_schemas**
  • Retrieve and return a list of all schema names from the connected database.
  • Input parameters:
  • `user` (string, optional): Database username. Defaults to "demo".
  • `password` (string, optional): Database password. Defaults to "demo".
  • `dsn` (string, optional): ODBC data source name. Defaults to "Local Virtuoso".
  • Returns a JSON string array of schema names.
  • **podbc_get_tables**
  • Retrieve and return a list containing information about tables in a specified schema. If no schema is provided, uses the connection's default schema.
  • Input parameters:
  • `schema` (string, optional): Database schema to filter tables. Defaults to connection default.
  • `user` (string, optional): Database username. Defaults to "demo".
  • `password` (string, optional): Database password. Defaults to "demo".
  • `dsn` (string, optional): ODBC data source name. Defaults to "Local Virtuoso".
  • Returns a JSON string containing table information (e.g., TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE).
  • **podbc_filter_table_names**
  • Filters and returns information about tables whose names contain a specific substring.
  • Input parameters:
  • `q` (string, required): The substring to search for within table names.
  • `schema` (string, optional): Database schema to filter tables. Defaults to connection default.
  • `user` (string, optional): Database username. Defaults to "demo".
  • `password` (string, optional): Database password. Defaults to "demo".
  • `dsn` (string, optional): ODBC data source name. Defaults to "Local Virtuoso".
  • Returns a JSON string containing information for matching tables.
  • **podbc_describe_table**
  • Retrieve and return detailed information about the columns of a specific table.
  • Input parameters:
  • `schema` (string, required): The database schema name containing the table.
  • `table` (string, required): The name of the table to describe.
  • `user` (string, optional): Database username. Defaults to "demo".
  • `password` (string, optional): Database password. Defaults to "demo".
  • `dsn` (string, optional): ODBC data source name. Defaults to "Local Virtuoso".
  • Returns a JSON string describing the table's columns (e.g., COLUMN_NAME, TYPE_NAME, COLUMN_SIZE, IS_NULLABLE).
  • **podbc_query_database**
  • Execute a standard SQL query and return the results in JSON format.
  • Input parameters:
  • `query` (string, required): The SQL query string to execute.
  • `user` (string, optional): Database username. Defaults to "demo".
  • `password` (string, optional): Database password. Defaults to "demo".
  • `dsn` (string, optional): ODBC data source name. Defaults to "Local Virtuoso".
  • Returns query results as a JSON string.
  • **podbc_query_database_md**
  • Execute a standard SQL query and return the results formatted as a Markdown table.
  • Input parameters:
  • `query` (string, required): The SQL query string to execute.
  • `user` (string, optional): Database username. Defaults to "demo".
  • `password` (string, optional): Database password. Defaults to "demo".
  • `dsn` (string, optional): ODBC data source name. Defaults to "Local Virtuoso".
  • Returns query results as a Markdown table string.
  • **podbc_query_database_jsonl**
  • Execute a standard SQL query and return the results in JSON Lines (JSONL) format (one JSON object per line).
  • Input parameters:
  • `query` (string, required): The SQL query string to execute.
  • `user` (string, optional): Database username. Defaults to "demo".
  • `password` (string, optional): Database password. Defaults to "demo".
  • `dsn` (string, optional): ODBC data source name. Defaults to "Local Virtuoso".
  • Returns query results as a JSONL string.
  • **podbc_spasql_query**
  • Execute a SPASQL (SQL/SPARQL hybrid) query return results. This is a Virtuoso-specific feature.
  • Input parameters:
  • `query` (string, required): The SPASQL query string.
  • `max_rows` (number, optional): Maximum number of rows to return. Defaults to 20.
  • `timeout` (number, optional): Query timeout in milliseconds. Defaults to 30000.
  • `user` (string, optional): Database username. Defaults to "demo".
  • `password` (string, optional): Database password. Defaults to "demo".
  • `dsn` (string, optional): ODBC data source name. Defaults to "Local Virtuoso".
  • Returns the result from the underlying stored procedure call (e.g., `Demo.demo.execute_spasql_query`).
  • **podbc_sparql_query**
  • Execute a SPARQL query and return results. This is a Virtuoso-specific feature.
  • Input parameters:
  • `query` (string, required): The SPARQL query string.
  • `format` (string, optional): Desired result format. Defaults to 'json'.
  • `timeout` (number, optional): Query timeout in milliseconds. Defaults to 30000.
  • `user` (string, optional): Database username. Defaults to "demo".
  • `password` (string, optional): Database password. Defaults to "demo".
  • `dsn` (string, optional): ODBC data source name. Defaults to "Local Virtuoso".
  • Returns the result from the underlying function call (e.g., `"UB".dba."sparqlQuery"`).
  • **podbc_virtuoso_support_ai**
  • Utilizes a Virtuoso-specific AI Assistant function, passing a prompt and optional API key. This is a Virtuoso-specific feature.
  • Input parameters:
  • `prompt` (string, required): The prompt text for the AI function.
  • `api_key` (string, optional): API key for the AI service. Defaults to "none".
  • `user` (string, optional): Database username. Defaults to "demo".
  • `password` (string, optional): Database password. Defaults to "demo".
  • `dsn` (string, optional): ODBC data source name. Defaults to "Local Virtuoso".
  • Returns the result from the AI Support Assistant function call (e.g., `DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI`).
  • Install the MCP Inspector:
  • Start the inspector:

SECURITY

MCP 收录不等于安全审核

MCP 服务器可能获得模型上下文、凭据、本地文件或调用外部系统的权限。连接 Agent 前,请检查代码、环境变量、网络行为、软件包来源与维护状态。