MCP SQL 服务器
通过对话式 AI 界面提供 SQL 数据库交互工具的 FastMCP 服务器。
概述
该项目创建了一个服务器,通过对话式 AI 界面公开 MS SQL Server 操作。它使用 FastMCP 框架提供查询和操作 SQL 数据的工具,允许用户使用自然语言与数据库交互。
特征
- 执行 SQL 查询并查看结果
- 列出数据库中可用的表
- 用列信息描述表结构
- 执行非查询操作(INSERT、UPDATE、DELETE)
- 列出系统上可用的 ODBC 驱动程序
- 查看数据库信息和服务器详细信息
要求
- Python 3.7+
- pyodbc
- 异步
- FastMCP 框架
- 微软 SQL 服务器
- 适用于 SQL Server 的 ODBC 驱动程序 17
安装
- 安装 Python 依赖项:
- 确保您已安装 Microsoft SQL Server 和 SQL Server 的 ODBC 驱动程序 17。
- 在脚本中配置连接设置:
用法
运行服务器:
服务器将初始化并建立与指定 SQL Server 数据库的连接。
可用工具
查询语句
执行 SQL 查询并返回结果。
- 如果没有提供查询,则默认为
SELECT * FROM [dbo].[Table_1]
- 以格式化字符串形式返回查询结果
列表表
列出数据库中所有可用的表。
- 以字符串形式返回表名称列表
描述表
获取特定表的结构。
table_name
:要描述的表的名称- 返回列信息,包括名称和数据类型
执行非查询
执行 INSERT、UPDATE、DELETE 或其他非查询 SQL 语句。
sql
:要执行的 SQL 语句- 返回操作结果,包括受影响的行数
- 自动处理事务(提交/回滚)
列表_odbc_驱动程序
列出系统上所有可用的 ODBC 驱动程序。
- 返回已安装的 ODBC 驱动程序的逗号分隔列表
数据库信息
获取有关所连接数据库的一般信息。
- 返回服务器名称、数据库名称、SQL Server 版本、当前服务器时间和表数
建筑学
服务器采用异步架构来避免阻塞操作:
- 生命周期管理:
app_lifespan
上下文管理器处理数据库连接的设置和拆除。 - 非阻塞操作:数据库操作使用
asyncio.get_event_loop().run_in_executor()
在单独的线程中运行,以防止阻塞主事件循环。 - 错误处理:所有操作都包括全面的错误处理和有用的错误消息。
错误处理
服务器处理各种错误情况:
- 数据库连接失败
- SQL 查询语法错误
- 未找到表错误
- 权限相关问题
所有错误都会被记录下来,并且相应的错误消息会返回给客户端。
定制
要添加新的数据库工具或修改现有的数据库工具,请遵循现有工具中使用的模式:
安全注意事项
- 服务器使用 Windows 身份验证(“Trusted_Connection=yes”)
- 考虑对 SQL 查询实施输入验证以防止 SQL 注入
- 根据最小特权原则限制数据库用户权限
故障排除
常见问题:
- 连接错误:验证 SQL Server 实例名称并确保其正在运行
- ODBC 驱动程序错误:确认已安装 SQL Server 的 ODBC 驱动程序 17
- 权限错误:检查运行应用程序的 Windows 用户是否具有适当的 SQL Server 权限
执照
[您的许可证信息]
接触
[您的联系方式]
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
FastMCP 服务器提供与 MS SQL 数据库的自然语言交互,使用户能够通过对话式 AI 界面查询数据、列出表格、描述结构和执行数据库操作。
Related MCP Servers
- -securityFlicense-qualityA production-ready MCP server built with FastAPI, providing an enhanced tool registry for creating, managing, and documenting AI tools for Large Language Models (LLMs).Last updated -13Python
- -securityAlicense-qualityA FastMCP server implementation for the Dixa API, enabling AI assistants to search, retrieve, and manage customer conversation data and tags.Last updated -TypeScriptMIT License
- AsecurityFlicenseAqualityMCP server that allows Claude AI to interact directly with MySQL databases, enabling query execution and table information retrieval through natural language.Last updated -163JavaScript
- -security-license-qualityA FastMCP server that enables browser automation through natural language commands, allowing Language Models to browse the web, fill out forms, click buttons, and perform other web-based tasks via a simple API.Last updated -1Python