ADO.NET数据库协议服务器

一个轻量级的基于C#的MCP服务器,用于ADO.NET数据库操作,支持获取模式、表信息、执行查询和存储过程等功能,兼容Virtuoso数据库。

  • by OpenLinkSoftware
  • C#
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 OpenLinkSoftware/mcp-adonet-server

使用说明


ADO的OpenLink MCP服务器。网

一个基于C#的轻量级ADO MCP(模型上下文协议)服务器。网。此服务器与Virtuoso兼容。目前,此服务器仅使用成功测试。NET在Windows和Linux上的运行时。

特性

  • 获取架构:从连接的数据库中获取并列出所有架构名称。
  • 获取表格:检索特定架构或所有架构的表信息。
  • 描述表:生成表结构的详细描述,包括:
    • 列名和数据类型
    • 可为空的属性
    • 主键和外键
  • 搜索表:根据名称子字符串筛选和检索表。
  • 执行存储过程:连接到Virtuoso时,执行存储过程并检索结果。
  • 执行查询:
    • JSONL结果格式:针对结构化响应进行了优化。
    • Markdown表格格式:非常适合报告和可视化。

先决条件

  1. 净值8
    • 检查项目文件(MCP_AdoNet_Server.csproj)通过运行以下命令与您的环境兼容:
      dotnet run --framework net8.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
      
  2. 净值9
    • 检查项目文件(MCP_AdoNet_Server.csproj)通过运行以下命令与您的环境兼容:
      dotnet run --framework net9.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
      
    • 如果需要,您也可以尝试重建 MCP_AdoNet_Server.csproj 通过运行:
      dotnet clean /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
      dotnet build /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
      

安装

克隆此存储库:

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

环境变量

更新您的 .env 通过覆盖这些默认值来匹配您的偏好。

ADO_URL="HOST=localhost:1111;Database=Demo;UID=demo;PWD=demo"
API_KEY=xxx

配置

对于 克劳德桌面 用户: 添加以下内容 claude_desktop_config.json:

  1. 净值8

    {
      "mcpServers": {
        "my_database": {
          "command": "dotnet",
          "args": ["run", "--framework", "net8.0", "--project", "/path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj"],
          "env": {
            "ADO_URL": "HOST=localhost:1111;Database=Demo;UID=demo;PWD=demo",
            "API_KEY": "sk-xxx"
          }
        }
      }
    }
    
  2. 净值9

    {
      "mcpServers": {
        "my_database": {
          "command": "dotnet",
          "args": ["run", "--framework", "net9.0", "--project", "/path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj"],
          "env": {
            "ADO_URL": "HOST=localhost:1111;Database=Demo;UID=demo;PWD=demo",
            "API_KEY": "sk-xxx"
          }
        }
      }
    }
    

用法

提供的工具

成功安装后,MCP客户端应用程序将可以使用以下工具。

概述

名称 描述
ado_get_schemas 列出连接的数据库管理系统(DBMS)可访问的数据库模式
ado_get_tables 列出与选定数据库架构关联的表
ado_describe_table 提供与指定数据库架构关联的表的描述。这包括有关列名、数据类型、空处理、自动递增、主键和外键的信息
ado_filter_table_names 基于子字符串模式列出表 q 输入字段,与选定的数据库模式相关联
ado_query_database 执行SQL查询并以JSONL格式返回结果
ado_execute_query 执行SQL查询并以JSONL格式返回结果
ado_execute_query_md 执行SQL查询并以Markdown表格式返回结果
ado_spasql_query 执行SPASQL查询并返回结果
ado_sparql_query 执行SPARQL查询并返回结果
ado_virtuoso_support_ai 与维塔索支持助手/代理交互——维塔索与LLM交互的特定功能

详细描述

  • ado_get_schemas

    • 从连接的数据库中检索并返回所有架构名称的列表。
    • 输入参数:
      • url (字符串,可选):ADO。NET URL连接字符串。
    • 返回模式名称的JSON字符串数组。
  • ado_get_tables

    • 检索并返回一个包含指定架构中表信息的列表。如果没有提供架构,则使用连接的默认架构。
    • 输入参数:
      • schema (字符串,可选):用于筛选表的数据库架构。默认为连接默认值。
      • url (字符串,可选):ADO。NET URL连接字符串。
    • 返回包含表信息的JSON字符串(例如。, TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE).
  • ado_filter_table_names

    • 过滤并返回有关名称包含特定子字符串的表的信息。
    • 输入参数:
      • q (string,必填):在表名中搜索的子字符串。
      • schema (字符串,可选):用于筛选表的数据库架构。默认为连接默认值。
      • url (字符串,可选):ADO。NET URL连接字符串。
    • 返回一个JSON字符串,其中包含匹配表的信息。
  • ado_describe_table

    • 检索并返回特定表的列的详细信息。
    • 输入参数:
      • schema (字符串,必填):包含表的数据库架构名称。
      • table (string,必填):要描述的表的名称。
      • url (字符串,可选):ADO。NET URL连接字符串。
    • 返回一个JSON字符串,描述表的列(例如。, COLUMN_NAME, TYPE_NAME, COLUMN_SIZE, IS_NULLABLE).
  • ado_query_database

    • 执行标准SQL查询并以JSON格式返回结果。
    • 输入参数:
      • query (string,必填):要执行的SQL查询字符串。
      • url (字符串,可选):ADO。NET URL连接字符串。
    • 以JSON字符串形式返回查询结果。
  • ado_query_database_md

    • 执行标准SQL查询并返回Markdown表格式的结果。
    • 输入参数:
      • query (string,必填):要执行的SQL查询字符串。
      • url (字符串,可选):ADO。NET URL连接字符串。
    • 以Markdown表字符串的形式返回查询结果。
  • ado_query_database_jsonl

    • 执行标准SQL查询,并以JSONL格式返回结果(每行一个JSON对象)。
    • 输入参数:
      • query (string,必填):要执行的SQL查询字符串。
      • url (字符串,可选):ADO。NET URL连接字符串。
    • 以JSONL字符串形式返回查询结果。
  • ado_spasql_query

    • 执行SPASQL(SQL/SPARQL混合)查询返回结果。这是Virtuoso特有的功能。
    • 输入参数:
      • query (string,必填):SPASQL查询字符串。
      • max_rows (number,可选):要返回的最大行数。默认为 20.
      • timeout (number,可选):查询超时(毫秒)。默认为 30000.
      • url (字符串,可选):ADO。NET URL连接字符串。
    • 返回底层存储过程调用的结果(例如。, Demo.demo.execute_spasql_query).
  • ado_sparql_query

    • 执行SPARQL查询并返回结果。这是Virtuoso特有的功能。
    • 输入参数:
      • query (string,必填):SPARQL查询字符串。
      • format (字符串,可选):所需的结果格式。默认为 'json'.
      • timeout (number,可选):查询超时(毫秒)。默认为 30000.
      • url (字符串,可选):ADO。NET URL连接字符串。
    • 返回底层函数调用的结果(例如。, "UB".dba."sparqlQuery").
  • ado_virtuoso_support_ai

    • 使用特定于Virtuoso的AI助手功能,传递提示和可选的API键。这是Virtuoso特有的功能。
    • 输入参数:
      • prompt (string,必填):AI函数的提示文本。
      • api_key (字符串,可选):AI服务的API密钥。默认为 "none".
      • url (字符串,可选):ADO。NET URL连接字符串。
    • 返回AI Support Assistant函数调用的结果(例如。, DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI).

故障排除

为了便于故障排除:

  1. 安装MCP检查器:

    npm install -g @modelcontextprotocol/inspector
    
  2. 根据具体情况启动检查器。网络版本正在使用中:

    dotnet clean /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
    
    npx @modelcontextprotocol/inspector dotnet run --framework net8.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj -e ADO_URL="HOST=localhost:1111;Database=Demo;UID=username;PWD=password" -e API_KEY="sk-xxx-myapikey-xxx"
    

    --或--

    dotnet clean /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
    
    npx @modelcontextprotocol/inspector dotnet run --framework net9.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj -e ADO_URL="HOST=localhost:1111;Database=Demo;UID=username;PWD=password" -e API_KEY="sk-xxx-myapikey-xxx"
    

访问提供的URL以排除服务器交互故障。