Token导航 LogoToken导航TokenDH.com
Mssql Agent MCP logo
数据服务stdio官方级别未说明来源级核验

Mssql Agent MCP

MCP Server

一个提供与Microsoft SQL Server数据库交互和管理SQL Server Agent Jobs工具的MCP服务器,支持将存储过程和Agent Jobs作为代码进行版本控制。

工具数

22

提示词数

0

GitHub Stars

1

资源数

0
数据分析版本控制PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

yyinhsu

提供方

yyinhsu

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mssql-agent-mcp

详细介绍

MSSQL代理MCP

](https://badge.fury.io/py/mssql-agent-mcp) ![Python](https://pypi.org/project/mssql-agent-mcp/) ![License: MIT](https://opensource.org/licenses/MIT)

一种模型上下文协议(MCP)服务器,提供与Microsoft SQL server数据库交互和管理SQL server代理作业的工具。 除了基本的数据库查询功能外,此服务器还支持将存储过程和SQL server代理作业作为代码进行管理。用户可以轻松地导出、编辑和更新这些对象,并将其集成到版本控制系统中。

特性

此MCP服务器提供以下工具:

数据库工具

工具说明
query执行SELECT查询并返回结果
execute执行INSERT、UPDATE、DELETE、CREATE语句
list_tables列出数据库中的所有表
describe_table获取包含列、类型和约束的表架构
list_databases列出服务器上的所有数据库
get_table_sample从表中获取示例行
get_table_indexes获取表上定义的索引
get_foreign_keys获取外键关系

存储过程工具

工具说明
list_procedures列出当前数据库中的所有存储过程(可选地包括定义)
list_all_procedures列出服务器上所有数据库中的所有存储过程
get_procedure_details获取有关程序的详细信息,包括其完整定义
get_procedure_parameters获取特定存储过程的参数
export_procedures_to_files将过程导出到具有目录结构的SQL文件: {db}/{schema}/{procedure}.sql
update_procedure_from_file从已编辑的SQL文件更新存储过程

SQL Server代理作业工具

工具说明
list_agent_jobs列出所有SQL Server代理作业及其状态和类别
get_job_steps获取特定作业的所有步骤,包括命令和流程控制
get_job_details获取作业的详细设置和上次运行信息
get_job_schedules获取作业的计划配置
get_job_history获取作业的执行历史记录
export_enabled_jobs_to_files将所有已启用的作业和步骤导出到SQL文件
update_job_step_from_file从已编辑的SQL文件更新现有作业步骤
create_job_step_from_file从SQL文件创建新作业步骤(自动重命名命名错误的文件)

🌟 是什么让这与众不同?

虽然有几个MSSQL MCP服务器可用,但这个服务器提供 独特能力 在其他人中找不到:

功能描述为什么重要
SQL Server代理作业管理代理作业、步骤和计划的完整CRUD操作大多数MCP服务器只处理数据库查询-此服务器允许您管理整个自动化基础架构
作业即代码工作流将已启用的作业导出到文件、在本地编辑、推回更改为您的SQL代理作业启用Git版本控制-跟踪更改、查看PR、轻松回滚
存储过程作为代码导出/导入保留元数据的存储过程使用适当的目录结构管理应用程序代码等过程
智能文件命名自动将文件重命名为 {step_id}_{step_name}.sql format在创建新作业步骤时防止冲突并保持一致性
语法验证用途 SET PARSEONLY 在应用更改之前在SQL错误破坏生产作业之前将其捕获
元数据标头在文件注释中保留作业/过程元数据永远不会丢失创建或修改内容的上下文
使用FastMCP构建基于装饰器的现代工具定义更简洁的代码、自动模式生成、更好的可维护性

与其他MSSQL MCP服务器的比较

功能此服务器其他
基本查询(SELECT、INSERT、UPDATE)
架构检查
SQL Server代理作业列表
作业步骤管理
作业计划查看
将作业导出到文件
从文件更新作业
存储过程导出/导入
语法预验证
FastMCP框架

存储过程管理

此MCP服务器提供了一个完整的工作流程,用于将存储过程作为代码进行管理:

1.导出到文件的程序

将指定数据库中的所有存储过程导出到目录结构:

Use export_procedures_to_files with output_dir: "/path/to/procedures"
Optionally specify databases: ["materialdb", "salesdb"]

这将创建:

procedures/
├── materialdb/
│   ├── dbo/
│   │   ├── usp_get_facility_info_data.sql
│   │   ├── usp_update_inventory.sql
│   │   └── usp_process_orders.sql
│   └── reporting/
│       └── usp_generate_report.sql
├── salesdb/
│   └── dbo/
│       └── usp_calculate_totals.sql
└── ...

SQL文件 包含:

  • 元数据头(数据库、模式、过程名称、创建/修改日期)
  • 完整的过程定义(CREATE procedure语句)

2.编辑和更新程序

编辑SQL文件后,将更改推送到SQL Server:

Use update_procedure_from_file with file_path: "/path/to/procedures/materialdb/dbo/usp_get_facility_info_data.sql"

此工具:

  1. 解析文件路径以提取数据库、模式和过程名称
  2. 如果存在,还会从标题注释中读取元数据
  3. 自动转换 CREATE PROCEDUREALTER PROCEDURE
  4. 更新前验证程序是否存在
  5. 执行ALTER语句以更新过程

示例程序文件

-- Database: materialdb
-- Schema: dbo
-- Procedure: usp_get_facility_info_data
-- Created: 2026-01-05 10:30:00
-- Modified: 2026-01-26 14:22:00
-- ============================================

CREATE PROCEDURE [dbo].[usp_get_facility_info_data]
AS
BEGIN
    -- Your procedure logic here
    SELECT * FROM facility_info
END

SQL Server代理作业管理

此MCP服务器提供了一个完整的工作流,用于以代码形式管理SQL server代理作业:

1.将作业导出到文件

将所有已启用(未弃用)的作业导出到目录结构:

Use export_enabled_jobs_to_files with output_dir: "/path/to/agent_server_jobs"

这将创建:

agent_server_jobs/
├── Job_Name_1/
│   ├── job_info.json          # Job metadata (schedules, description, etc.)
│   ├── 01_first_step.sql      # Step 1 SQL command
│   ├── 02_second_step.sql     # Step 2 SQL command
│   └── 03_third_step.sql      # Step 3 SQL command
├── Job_Name_2/
│   ├── job_info.json
│   ├── 01_step_one.sql
│   └── 02_step_two.sql
└── ...

job_info.json 包含:

  • 作业ID、名称和描述
  • 启用状态和类别
  • 所有者和通知设置
  • 计划配置(频率、间隔、活动时间)
  • 创建和修改日期

SQL文件 包含:

  • 包含作业名称、步骤ID、步骤名称、子系统和数据库的元数据标头
  • 实际的SQL命令

2.编辑现有作业步骤

编辑SQL文件后,将更改推送到SQL Server:

Use update_job_step_from_file with file_path: "/path/to/agent_server_jobs/Job_Name/02_step_name.sql"

此工具:

  1. 解析文件路径以提取作业名称和步骤ID
  2. 读取SQL内容(跳过元数据标头)
  3. 使用验证SQL语法 SET PARSEONLY
  4. 使用以下命令更新SQL Server中的作业步骤 sp_update_jobstep

3.创建新作业步骤

通过将SQL文件添加到作业目录来创建新步骤:

Use create_job_step_from_file with file_path: "/path/to/agent_server_jobs/Job_Name/my_new_step.sql"

此工具自动执行以下操作:

  1. 验证/重命名文件 -如果文件名不匹配 {step_id}_{step_name}.sql 格式,它:

- 扫描文件夹中的现有SQL文件以查找使用的步骤ID - 查询数据库中现有的步骤ID - 确定下一个可用步骤ID - 重命名文件(例如。, my_new_step.sql03_my_new_step.sql)

  1. 验证SQL语法 -在创建步骤之前检查语法错误
  1. 创建步骤 -用途 sp_add_jobstep 在SQL Server中创建该步骤
  1. 更新文件 -向SQL文件添加正确的元数据标头

参数:

  • file_path (必需):SQL文件的路径
  • database_name (可选):步骤的目标数据库(默认为“master”)
  • auto_rename (可选):自动重命名命名错误的文件(默认为true)

文件名格式

SQL文件必须遵循以下命名约定:

{step_id}_{step_name}.sql

示例:

  • 01_truncate_tables.sql
  • 02_load_data.sql
  • 03_update_statistics.sql
  • 10_cleanup.sql

step_id决定了作业中的执行顺序。

先决条件

ODBC驱动程序安装

此程序包需要用于SQL Server的Microsoft ODBC驱动程序。根据您的操作系统进行安装:

macOS:

brew install unixodbc
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew install msodbcsql18 mssql-tools18

Ubuntu/Debian:

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 mssql-tools18

窗户: 从下载并安装 SQL Server的Microsoft ODBC驱动程序

需求

Python版本

  • 需要python >=3.10

核心依赖关系

包装版本用途
fastmcp>=2.0.0具有自动模式生成功能的高级MCP框架
pyodbc>=5.0.0SQL Server的ODBC数据库连接
sqlparse>=0.5.0SQL解析和格式化
备注:此项目使用 FastMCP 更干净、更可维护的代码。FastMCP提供从Python类型提示和基于装饰器的工具定义自动生成JSON模式。

可选依赖关系

Azure集成([azure])

包装版本用途
azure-identity>=1.15.0Azure Active Directory身份验证

发展([dev])

包装版本用途
ruff>=0.4.0装订和格式化

构建系统

  • 用途 雏鸟 作为构建后端

安装

此套餐可在 PyPI.

使用pip(推荐)

pip install mssql-agent-mcp

支持Azure AD身份验证

pip install mssql-agent-mcp[azure]

使用uvx(无需安装)

uvx mssql-agent-mcp

开发安装

git clone https://github.com/yyinhsu/mssql-agent-mcp.git
cd mssql-agent-mcp
pip install -e .

安全配置

只读模式(默认)

默认情况下, 写入操作已禁用 为了安全。服务器以只读模式运行,以防止意外修改数据。

# Default: Read-only mode enabled (safe for exploration)
MSSQL_READONLY=true

启用写入操作 (需要 execute, update_procedure_from_file, create_job_step_from_file等等):

# Enable write operations (use with caution)
MSSQL_READONLY=false

精细权限控制

MSSQL_READONLY=false,您可以使用这些环境变量进一步控制允许的操作:

变量默认值控件
MSSQL_ALLOW_INSERTtrue插入、合并语句
MSSQL_ALLOW_UPDATEtrue更新声明
MSSQL_ALLOW_DELETEtrue删除、删除声明
MSSQL_ALLOW_DDLtrue创建、更改、删除、授予、撤销、拒绝
MSSQL_ALLOW_EXECtrueEXEC、EXECUTE(还控制作业步骤更新)

示例:只允许SELECT和INSERT:

MSSQL_READONLY=false
MSSQL_ALLOW_INSERT=true
MSSQL_ALLOW_UPDATE=false
MSSQL_ALLOW_DELETE=false
MSSQL_ALLOW_DDL=false
MSSQL_ALLOW_EXEC=false

示例:允许数据修改但阻止架构更改:

MSSQL_READONLY=false
MSSQL_ALLOW_INSERT=true
MSSQL_ALLOW_UPDATE=true
MSSQL_ALLOW_DELETE=true
MSSQL_ALLOW_DDL=false
MSSQL_ALLOW_EXEC=false
备注:这些粒度设置仅在以下情况下生效 MSSQL_READONLY=false.何时 MSSQL_READONLY=true,无论其他设置如何,所有写入操作都会被阻止。

环境变量

变量默认值描述
MSSQL_SERVERlocalhostSQL Server主机名或IP
MSSQL_DATABASEmaster默认数据库
MSSQL_USER*(空)*SQL Server用户名(用于SQL身份验证)
MSSQL_PASSWORD*(空)*SQL Server密码(用于SQL身份验证)
MSSQL_PORT1433SQL Server端口
MSSQL_DRIVERODBC Driver 18 for SQL ServerODBC驱动程序名称
MSSQL_ENCRYPTyes连接加密(yes/no)
MSSQL_TRUST_SERVER_CERTIFICATEno信任自签名证书(yes/no)
MSSQL_AUTH_MODEsql身份验证模式: sql, windows,或 azure
MSSQL_READONLYtrue阻止所有写入操作(true/false)
MSSQL_ALLOW_INSERTtrue允许插入/合并(非只读时)
MSSQL_ALLOW_UPDATEtrue允许更新(非只读时)
MSSQL_ALLOW_DELETEtrue允许删除/删除(非只读时)
MSSQL_ALLOW_DDLtrue允许DDL操作(非只读时)
MSSQL_ALLOW_EXECtrue允许EXEC/EXEXETE(非只读时)

身份验证模式

SQL Server身份验证(默认):

MSSQL_AUTH_MODE=sql
MSSQL_USER=your_username
MSSQL_PASSWORD=your_password

Windows身份验证(集成安全):

MSSQL_AUTH_MODE=windows
# No username/password needed - uses current Windows credentials

Azure AD身份验证:

# Install with Azure support
pip install mssql-agent-mcp[azure]
MSSQL_AUTH_MODE=azure
# Uses DefaultAzureCredential - supports managed identity, Azure CLI, etc.

云连接(Azure SQL)

对于Azure SQL数据库,需要加密:

MSSQL_SERVER=your-server.database.windows.net
MSSQL_ENCRYPT=yes
MSSQL_TRUST_SERVER_CERTIFICATE=no

配置

配置数据库连接:

MSSQL_SERVER=localhost
MSSQL_DATABASE=your_database
MSSQL_USER=your_username
MSSQL_PASSWORD=your_password
MSSQL_PORT=1433
MSSQL_READONLY=false  # Enable write operations if needed

使用Claude Desktop

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mssql": {
      "command": "mssql-agent-mcp",
      "env": {
        "MSSQL_SERVER": "localhost",
        "MSSQL_DATABASE": "your_database",
        "MSSQL_USER": "your_username",
        "MSSQL_PASSWORD": "your_password"
      }
    }
  }
}

或者使用uvx(无需安装):

{
  "mcpServers": {
    "mssql": {
      "command": "uvx",
      "args": ["mssql-agent-mcp"],
      "env": {
        "MSSQL_SERVER": "localhost",
        "MSSQL_DATABASE": "your_database",
        "MSSQL_USER": "your_username",
        "MSSQL_PASSWORD": "your_password"
      }
    }
  }
}

使用VS代码

添加到您的VS代码MCP配置中(.vscode/mcp.json):

{
  "servers": {
    "mssql": {
      "command": "mssql-agent-mcp",
      "env": {
        "MSSQL_SERVER": "localhost",
        "MSSQL_DATABASE": "your_database",
        "MSSQL_USER": "your_username",
        "MSSQL_PASSWORD": "your_password"
      }
    }
  }
}

或者使用uvx:

{
  "servers": {
    "mssql": {
      "command": "uvx",
      "args": ["mssql-agent-mcp"],
      "env": {
        "MSSQL_SERVER": "localhost",
        "MSSQL_DATABASE": "your_database",
        "MSSQL_USER": "your_username",
        "MSSQL_PASSWORD": "your_password"
      }
    }
  }
}

工具使用示例

数据库操作

查询数据

Use the query tool with: SELECT TOP 10 * FROM Customers

列出表格

Use the list_tables tool to see all tables in the database

描述一张桌子

Use the describe_table tool with table: "Customers" to see its structure

执行语句

Use the execute tool with: INSERT INTO Customers (Name) VALUES ('John Doe')

存储过程操作

列出当前数据库中的所有过程

Use list_procedures to see all stored procedures
Optionally set include_definition: true to include the full procedure code

列出所有数据库中的过程

Use list_all_procedures to see procedures from all databases
Optionally set database_filter: "material" to filter by database name

将程序导出到文件

Use export_procedures_to_files with output_dir: "/home/user/procedures"
Optionally specify databases: ["materialdb", "salesdb"]

编辑后更新程序

Use update_procedure_from_file with file_path: "/home/user/procedures/materialdb/dbo/usp_get_data.sql"

SQL Server代理作业操作

列出所有代理作业

Use list_agent_jobs to see all jobs with their status

将作业导出到文件

Use export_enabled_jobs_to_files with output_dir: "/home/user/agent_jobs"

编辑后更新现有步骤

Use update_job_step_from_file with file_path: "/home/user/agent_jobs/Daily_Backup/02_backup_database.sql"

创建新步骤(文件将自动重命名)

# Create a file: /home/user/agent_jobs/Daily_Backup/new_cleanup_step.sql
# With content: DELETE FROM TempTable WHERE CreatedDate < DATEADD(day, -7, GETDATE())

Use create_job_step_from_file with file_path: "/home/user/agent_jobs/Daily_Backup/new_cleanup_step.sql"

# Result: File renamed to "03_new_cleanup_step.sql" and step created in SQL Server

发展

# Install in development mode
pip install -e .

# Run the server directly
python -m mssql_mcp.server

需求

  • Python 3.10+
  • Microsoft SQL Server(任何支持的版本)

许可证

麻省理工学院

目录标签

目录标签

数据分析版本控制PythonClaude数据库管理本地部署SQLServerAgentJobs管理存储过程管理

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

22

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP