SQL优化工具

一个基于AI的SQL查询优化工具,通过Flask API后端提供优化能力,可集成到VS Code或Visual Studio中。

  • by aryanamaq
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 aryanamaq/MCP

使用说明

SQL 优化器 MCP 服务器

一个基于人工智能的MCP(模型上下文协议)服务器,利用Flask API后端优化SQL查询。该服务器可轻松集成到VS Code或Visual Studio中,通过GitHub Copilot Chat提供SQL优化功能。

特点/功能

  • 🚀(火箭/快速上升/飞速发展等意象,具体含义需结合上下文) 基于AI的SQL优化利用CrewAI和OpenAI优化SQL查询
  • 📁 代表文件夹的符号,可翻译为“文件夹”。 文件引用支持使用 #filename 优化来自工作区文件的SQL
  • 🔧 修理工具/螺丝刀 直接SQL输入直接粘贴SQL查询以进行优化
  • 🌐 表示“互联网”或“全球网络”。 Flask API 后端由用于处理的Python Flask API提供支持
  • 📦 箱子/包裹 轻松安装作为NuGet包提供

它是如何工作的

其工作原理

MCP服务器被构建为一个自包含的应用程序,无需在目标机器上安装.NET运行时。 然而,由于它是自包含的,因此必须针对每个目标平台单独进行构建。 默认情况下,模板配置为构建:

  • win-x64
  • win-arm64
  • osx-arm64
  • linux-x64
  • linux-arm64
  • linux-musl-x64

先决条件

  • Flask API 运行在 http://localhost:5000 (或配置您自己的URL)
  • 带有MCP支持的VS Code或Visual Studio
  • GitHub Copilot Chat

在发布到 NuGet.org 前的检查清单

  • [x] 更新.csproj文件中的包元数据
  • [x] 更新 .mcp/server.json 附有正确的包装信息
  • [ ] 使用以下步骤在本地测试MCP服务器
  • [ ] 在GitHub上创建一个仓库 https://github.com/aryananuj/SqlOptimizerMcpServer
  • 设置Flask API并记录端点
  • [ ] 使用[工具/方法]打包项目 dotnet pack
  • [ ] 发布到 NuGet.org

这个(或“该”) bin/Release 目录将包含程序包文件(.nupkg),该文件可以 发布到 NuGet.org。

本地开发

要在本地从源代码测试此MCP服务器(而不使用构建的MCP服务器包),您可以配置您的集成开发环境(IDE)以直接运行该项目,使用 dotnet run.

{
  "servers": {
    "SqlOptimizerMcpServer": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "<PATH TO PROJECT DIRECTORY>"
      ]
    }
  }
}

测试MCP服务器

配置完成后,您可以使用以下工具测试MCP服务器:

SQL优化工具

SQL优化工具允许您使用基于人工智能的Flask API来优化SQL查询。您可以通过两种方式使用它:

  1. 直接SQL输入: Optimize this SQL: SELECT * FROM users WHERE id = 1
  2. 文件引用: Optimize SQL from #myquery.sql (where myquery.sql (在你的工作区中)

要求:

  • Flask API必须在运行于 http://localhost:5000 (或更新 BaseApiUrl (保持)不变的,在……中 SqlOptimizerTools.cs)
  • 您必须提供SQL文件所在的工作区路径

示例用法:

  • “优化这个SQL查询:SELECT * FROM orders WHERE status = 'pending'”
  • “优化#database/queries/complex_query.sql中的SQL语句”

该工具将从Flask API后端返回优化后的SQL。

发布到 NuGet.org

  1. 跑 dotnet pack -c Release 创建NuGet包
  2. 发布到 NuGet.org 上 dotnet nuget push bin/Release/*.nupkg --api-key <your-api-key> --source https://api.nuget.org/v3/index.json

使用来自NuGet.org的MCP服务器

一旦MCP服务器包发布到NuGet.org,您就可以在您喜欢的集成开发环境(IDE)中进行配置。VS Code和Visual Studio都支持使用该包 dnx 命令用于从 NuGet.org 下载并安装 MCP 服务器包。

  • **VS Code(Visual Studio Code,简称VS Code)**创建一个 <WORKSPACE DIRECTORY>/.vscode/mcp.json 文件
  • Visual Studio创建一个 <SOLUTION DIRECTORY>\.mcp.json 文件

对于VS Code和Visual Studio,配置文件使用以下服务器定义:

{
  "servers": {
    "SqlOptimizerMcpServer": {
      "type": "stdio",
      "command": "dnx",
      "args": [
        "AryanAnuj.SqlOptimizerMcpServer",
        "--version",
        "1.0.0",
        "--yes"
      ]
    }
  }
}

更多信息

.NET MCP服务器使用 模型上下文协议 C# SDK。有关MCP的更多信息:

有关配置和使用MCP服务器的更多信息,请参阅VS Code或Visual Studio的文档: