mcpField
C
C# based Model Context Procotol (MCP) Server for ADO.NET

C# based Model Context Procotol (MCP) Server for ADO.NET

本地服务
github.com/OpenLinkSoftware数据库766 周前更新

关于 C# based Model Context Procotol (MCP) Server for ADO.NET

这是一个通过 ADO.NET 访问数据库的 C# MCP 服务,包含 Virtuoso 专用查询与 AI 功能,适用于需要检查数据库结构和执行 SQL 的 MCP 客户端。

主要功能

  1. 01列出数据库架构和表
  2. 02查看表列与键
  3. 03按名称搜索表
  4. 04执行 SQL 和存储过程
  5. 05以 JSONL 或 Markdown 返回结果
  6. 06运行 Virtuoso SPARQL 和 SPASQL

适用场景

  1. 01浏览已连接的数据库架构
  2. 02查询前检查表定义
  3. 03执行 SQL 并格式化结果
  4. 04使用 SPARQL 或 SPASQL 查询 Virtuoso

MCP 相关

向 MCP 客户端提供数据库架构、查询和 Virtuoso 专用操作工具。文档包含 Claude Desktop 的配置示例。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍


适用于 ADO.NET 的 OpenLink MCP 服务

一个轻量级的基于 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 客户端应用程序将可以使用以下工具。

概览
namedescription
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 Support Assistant/Agent 交互——这是 Virtuoso 专属的 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(字符串,必填):要在表名中搜索的子字符串。
      • schema(字符串,可选):用于筛选表的数据库架构。默认为连接的默认架构。
      • url(字符串,可选):ADO.NET URL 连接字符串。
    • 返回包含匹配表信息的 JSON 字符串。
  • ado_describe_table

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

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

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

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

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

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

    • 调用 Virtuoso 专属的 AI 助手函数,并传入提示词和可选的 API 密钥。这是 Virtuoso 专属功能。
    • 输入参数:
      • prompt(字符串,必填):传递给 AI 函数的提示词文本。
      • api_key(字符串,可选):AI 服务的 API 密钥。默认为 "none"。
      • url(字符串,可选):ADO.NET URL 连接字符串。
    • 返回 AI Support Assistant 函数调用的结果(例如,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"
    

    -- or --

    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,以排查服务交互问题。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。