返回市场
MCP-ADO.NET服务器

MCP-ADO.NET服务器

作者:OpenLinkSoftware5 星标更新:2025-07-24

项目介绍


OpenLink MCP Server for ADO.NET

这是一个基于C#的轻量级MCP(模型上下文协议)服务器,适用于ADO.NET。该服务器与Virtuoso兼容。目前,此服务器仅在Windows和Linux上的.NET运行时环境中成功进行了测试。

mcp-client-and-servers|648x499

功能

  • 获取模式:从连接的数据库中获取并列出所有模式名称。
  • 获取表:检索特定模式或所有模式的表信息。
  • 描述表:生成表结构的详细描述,包括:
    • 列名和数据类型
    • 是否可为空
    • 主键和外键
  • 搜索表:根据名称子串过滤并检索表。
  • 执行存储过程:当连接到Virtuoso时,执行存储过程并检索结果。
  • 执行查询
    • JSONL结果格式:优化用于结构化响应。
    • Markdown表格格式:适合报告和可视化。

先决条件

  1. NET.8
    • 检查项目文件(MCP_AdoNet_Server.csproj)是否与您的环境兼容,通过运行以下命令:
      dotnet run --framework net8.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
      
  2. NET.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用户: 在claude_desktop_config.json中添加以下内容:

  1. NET.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. NET.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与Virtuoso支持助手/代理交互——一个与LLMs交互的Virtuoso特定功能

详细描述

  • ado_get_schemas

    • 获取并返回连接数据库中的所有模式名称列表。
    • 输入参数:
      • url(字符串,可选):ADO.NET连接字符串。
    • 返回一个包含模式名称的JSON字符串数组。
  • ado_get_tables

    • 获取并返回有关指定模式中表的信息列表。如果没有提供模式,则使用连接的默认模式。
    • 输入参数:
      • schema(字符串,可选):用于筛选表的数据库模式,默认为连接默认模式。
      • url(字符串,可选):ADO.NET连接字符串。
    • 返回一个包含表信息的JSON字符串(例如,TABLE_CATTABLE_SCHEMTABLE_NAMETABLE_TYPE)。
  • ado_filter_table_names

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

    • 获取并返回有关特定表列的详细信息。
    • 输入参数:
      • schema(字符串,必需):包含表的数据库模式名称。
      • table(字符串,必需):要描述的表名。
      • url(字符串,可选):ADO.NET连接字符串。
    • 返回一个描述表列的JSON字符串(例如,COLUMN_NAMETYPE_NAMECOLUMN_SIZEIS_NULLABLE)。
  • ado_query_database

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

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

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

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

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

    • 利用Virtuoso特定的AI助手功能,传递提示和可选的API密钥。这是一个Virtuoso特定功能。
    • 输入参数:
      • prompt(字符串,必需):AI功能的提示文本。
      • api_key(字符串,可选):AI服务的API密钥,默认为"none"
      • url(字符串,可选):ADO.NET连接字符串。
    • 返回AI支持助手功能调用的结果(例如,DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI)。

故障排除

为了方便故障排除:

  1. 安装MCP Inspector:

    npm install -g @modelcontextprotocol/inspector
    
  2. 根据使用的.NET版本启动Inspector:

    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以进行服务器交互故障排除。