MCPDataBaseMSSQLServer
一个小的、自给自足的。NET 8控制台应用程序,承载 模型上下文协议(MCP) 能够与关系数据库通信的服务器。\ 虽然项目名称引用 数据库,代码已被抽象,因此您只需更改配置文件即可在几个流行的数据库引擎(SQLite、SQL Server、PostgreSQL和MySQL)之间轻松切换,无需更改代码。
______________________________________________________________________
项目做什么
- 启动MCP服务器 –The
Program.cs入口点连接MCP服务,并通过STDIO公开它们,这样可执行文件就可以嵌入到其他主机进程中(例如编辑器)。 - 初始化数据库连接 –启动时,应用程序读取
appsettings.json以决定哪个ADO。NET提供程序使用并打开连接(SqliteConnection,SqlConnection,NpgsqlConnection或MySqlConnection). - 提供基本的日志记录和验证 –通过以下方式启用日志记录
Microsoft.Extensions.Logging并且从配置中读取可选的查询验证规则。 - 为Dapper和MCP的实验提供了一个游乐场 –因为它与框架无关,所以您可以将相同的二进制文件指向不同的数据库后端,以测试行为和性能。
______________________________________________________________________
快速启动
先决条件
- .NET 8 SDK(从下载https://dotnet.microsoft.com)
- 支持在本地运行(或可通过网络访问)的数据库之一
构建和运行
# Restore packages & compile
$ dotnet build
# Run with default settings (SQLite / sample.db)
$ dotnet run --project MCPDataBaseMSSQLServer.csproj当应用程序启动时,您应该看到类似于以下内容的日志记录:
info: Program[0]
Initializing SQLITE database connection
info: Program[0]
Database connection established successfully______________________________________________________________________
更改数据库提供程序
所有运行时行为都由以下因素驱动 appsettings.json (或特定于环境的变体,如 appsettings.Development.json).
"DatabaseSettings": {
"Provider": "SQLite", // 注意:应用程序在启动时打开连接。如果字符串无效或无法访问服务器,它将立即抛出。
______________________________________________________________________
## 安全和查询验证
这 `Security` 部分允许您限制MCP服务器可以执行的操作:
"Security": { "AllowedCommands": [ "SELECT", "INSERT", "UPDATE", "DELETE" ], "RestrictedTables": [ "sys_users", "admin_settings" ], "EnableQueryValidation": true }
- **允许的命令** –允许使用SQL动词白名单。
- **受限表格** –不得引用的表的黑名单。
- **启用查询验证** –打开/关闭验证。
调整这些列表以适应您的环境策略。
______________________________________________________________________
## 您可能需要进行的典型更改
1. **连接字符串** 指向您自己的数据库。
1. **提供商选择** –从默认SQLite更改为您选择的引擎。
1. **超时和重试逻辑** –调整 `CommandTimeout` 和 `MaxRetryAttempts` 基于工作量。
1. **日志级别** –设置 `Logging.LogLevel.*` 控制冗长。
1. **安全规则** –扩大或收紧 `Security` 部分。
1. **包装** -如果你想运行一个单文件可执行文件:dotnet publish -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true
______________________________________________________________________
## 项目结构
│ Program.cs # Bootstrap & composition root │ appsettings.json # Main configuration file │ MCPDataBaseMSSQLServer.csproj └───README.md # You are here
______________________________________________________________________
## 贡献
欢迎拉取请求!如果您有功能请求或遇到问题,请打开问题。
______________________________________________________________________
## 许可证
该项目在MIT许可证下发布。