使用说明
# 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", // <-- Change to SQLServer | PostgreSQL | MySQL
"CommandTimeout": 30,
"MaxRetryAttempts": 3
},
"ConnectionStrings": {
"DefaultConnection": "Data Source=sample.db",
"SqlServerConnection": "Server=localhost;Database=TestDB;Trusted_Connection=true;TrustServerCertificate=true;",
"PostgreSqlConnection": "Host=localhost;Database=testdb;Username=postgres;Password=password;",
"MySqlConnection": "Server=localhost;Database=testdb;Uid=root;Pwd=password;"
}
步骤:
- 集
DatabaseSettings:Provider以达到所需的发动机。 - 更新匹配的连接字符串。
- 重新运行应用程序。
注意:应用程序在启动时打开连接。如果字符串无效或无法访问服务器,它将立即抛出。
安全和查询验证
这 Security 部分允许您限制MCP服务器可以执行的操作:
"Security": {
"AllowedCommands": [ "SELECT", "INSERT", "UPDATE", "DELETE" ],
"RestrictedTables": [ "sys_users", "admin_settings" ],
"EnableQueryValidation": true
}
- 允许的命令 –允许使用SQL动词白名单。
- 受限表格 –不得引用的表的黑名单。
- 启用查询验证 –打开/关闭验证。
调整这些列表以适应您的环境策略。
您可能需要进行的典型更改
- 连接字符串 指向您自己的数据库。
- 提供商选择 –从默认SQLite更改为您选择的引擎。
- 超时和重试逻辑 –调整
CommandTimeout和MaxRetryAttempts基于工作量。 - 日志级别 –设置
Logging.LogLevel.*控制冗长。 - 安全规则 –扩大或收紧
Security部分。 - 包装 -如果你想运行一个单文件可执行文件:
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许可证下发布。