电力自动化MCP服务器
Microsoft Power Automation的MCP(模型上下文协议)服务器。使用自然语言创建、管理和部署Power Automation流。
适用于任何兼容MCP的AI客户端: 克劳德桌面版, 克劳德代码, VS代码副本, 光标, 谷歌Gemini CLI以及更多。
特性
- 创建流 -使用向导从自然语言描述构建流
- 测试与调试 -具有智能错误诊断的自动测试
- 验证 -飞行前检查,最佳实践评分(0-100)
- 管理流量 -列出、更新、克隆和删除流
- 电源应用程序 -管理画布和模型驱动的应用程序、权限、版本
- 环境管理员 -创建、复制、备份、恢复环境
- DLP策略 -创建和管理数据丢失预防策略
- ALM解决方案 -导出、导入和管理BLOB解决方案
- 数据库CRUD -通过OData Web API执行完整的表/行操作
- SharePoint -通过Microsoft Graph访问网站、列表、项目和文件
- 表达式帮助 -交互式电源自动化表达式参考
- 连接器智能 -全面了解400多种连接器和模式
- 交叉平台的 -适用于Windows、macOS和Linux
快速开始
npm install -g powerautomate-mcp
powerautomate-mcp --setup安装向导会自动处理一切:
- 通过Azure CLI在租户中创建应用程序注册(或提示您提供一个)
- 打开浏览器登录
- 显示管理员同意URL(在浏览器中自动打开)
- 发现您的环境并允许您选择一个
- 保存您的配置
然后配置您的AI客户端。看 安装指南 对于特定于平台的设置:
| 客户端 | 配置 |
|---|---|
| 克劳德桌面 | claude_desktop_config.json |
| 克劳德代码 | claude mcp add powerautomate |
| VS代码副本 | .vscode/mcp.json |
| 光标 | ~/.cursor/mcp.json |
| Gemini CLI | ~/.gemini/settings.json |
ChatGPT --http 标志+隧道(见 引导) |
______________________________________________________________________
Microsoft Entra应用程序注册
安装向导(--setup)如果安装了Azure CLI,则会自动创建应用程序注册。大多数用户不需要手动操作。
谁需要做什么?
| 角色 | 动作 |
|---|---|
| 使用Azure CLI管理Entra ID | 运行 powerautomate-mcp --setup --一切都是自动化的 |
| 不带Azure CLI的Entra ID管理员 | 运行 --setup,在提示时粘贴应用程序的客户端ID,授予管理员同意 |
| 非管理员用户 | 运行 --setup,然后让管理员(请参阅下面的角色)批准显示的同意URL |
| 最终用户(管理员设置后) | 只需运行 powerautomate-mcp --setup |
提示: 您还可以设置 PA_MCP_CLIENT_ID 作为环境变量,完全跳过提示。管理员同意
安装向导显示管理员同意URL,并在浏览器中自动打开。这些Entra ID角色中的任何一个都可以授予同意: 全球管理员, 应用管理员, 云应用管理员,或 特权角色管理员。如果您没有这些角色之一,请与管理员共享URL:
https://login.microsoftonline.com/{tenant-id}/adminconsent?client_id=YOUR_CLIENT_ID手动设置(可选)
如果您更喜欢手动创建应用程序注册:
- 首选 Azure 门户 > 微软Entra ID > 应用注册 > 新注册
- 配置基本设置:
- 名称: Power Automate MCP - 支持的帐户类型:任何组织目录中的帐户(多租户) - 重定向URI:选择“公共客户端/本地”并输入:
https://login.microsoftonline.com/common/oauth2/nativeclient- 创建后,转到 认证 并启用:
- 允许公共客户端流:是的
- 首选 API权限 > 添加权限 并添加:
| API | 权限 | 类型 | 用于 |
|---|---|---|---|
| 微软图形 | User.Read | 委托 | 用户配置文件 |
| 微软图形 | Sites.ReadWrite.All | 委托 | SharePoint网站、列表、文件 |
| 微软图形 | Files.ReadWrite.All | 委派 | OneDrive/SharePoint文件操作 |
| 电力自动化(流量服务) | Flows.Read.All | 委托 | 读取流 |
| 电力自动化(流量服务) | Flows.Manage.All | 委托 | 创建/更新/删除流 |
| 电力自动化(流量服务) | Activity.Read.All | 委托 | 流程运行历史记录 |
| 电力自动化(流量服务) | Approvals.Manage.All | 委托 | 审批管理 |
| 动态CRM | user_impersonation | 委托 | 表/行CRUD |
- 点击 授予\[您的租户\]管理员同意 (需要全局管理员、应用程序管理员、云应用程序管理员或特权角色管理员)
______________________________________________________________________
CLI参考
powerautomate-mcp [options]| 标志 | 描述 |
|---|---|
--setup, -s | 运行交互式安装向导 |
--validate | 验证配置、验证和API连接,然后退出 |
--update | 检查更新并安装最新版本 |
--version, -v | 打印版本并退出 |
--http | 从流式HTTP传输开始 |
--port | HTTP传输端口(默认值:3000) |
--env | 覆盖默认环境(别名或GUID) |
| `--config | |
| ` | 使用备用配置文件 |
--debug | 启用调试级别日志记录 |
--help, -h | 显示帮助消息 |
环境变量:
| 变量 | 描述 |
|---|---|
PA_MCP_CLIENT_ID | Microsoft Entra应用程序客户端ID(覆盖配置文件) |
PA_CONFIG_PATH | config.json的自定义路径 |
______________________________________________________________________
使用示例
流动
Create a flow that sends me an email every morning with the weather forecastTest my "Daily Report" flow and tell me if there are any errorsHelp me write an expression to format a date as "January 1, 2024"Show me all the flows that have been shared with mePatch the "Compose" action inside the Default case of "If_Recognized_Form" — only that one node, leave the rest aloneSharePoint
List all items in the "Projects" list on our Marketing siteUpload this month's report to the Shared Documents library数据空间
Show me all active accounts in Dataverse with revenue over $1MCreate a new contact row for John Smith in the contacts table电源应用程序
List all canvas apps in my environment and who owns themShare the "Expense Tracker" app with the Finance team管理(需要Power Platform管理员、Dynamics 365管理员或全局管理员)
Create a new sandbox environment called "Dev Testing"What DLP policies are applied to my default environment?Export the "Sales Solution" as a managed solution for deployment连接器和表达式
What connectors are available for working with SharePoint?What parameters does the "Send an email (V2)" action need?可用工具(共109个)
堆芯流动操作
| 工具 | 说明 | ||
|---|---|---|---|
list_flows | 列表流。 `scope: "owned" \ | "shared" \ | "all" 按所有权过滤; includeOwner 显示创建者+ [owned]/[shared]` 标签 |
get_flow | 获取流定义。 `format: "summary" \ | "json" \ | "both" --使用 json/both` 捕获Switch/If/Foreach/Scope中的嵌套操作 |
create_flow | 创建新流(支持可选 description) | ||
update_flow | 修改现有流。三种模式:完全替换(默认), mergeActions: true (深度合并--保留兄弟姐妹),或 patchActions: { "path": value } (外科手术,最小有效载荷)。还支持 description | ||
delete_flow | 删除流 | ||
toggle_flow | 启用或禁用流 | ||
clone_flow | 将流复制到另一个环境 |
测试与调试
| 工具 | 说明 |
|---|---|
test_flow | 自动诊断运行流程 |
run_flow | 触发手动流程 |
get_runs | 获取流量运行历史记录 |
get_run_actions | 具有完整I/O可见性的操作级调试。默认情况下,获取失败操作的输入/输出; includeInputs/includeOutputs 为所有人; actionName 钻成一个动作; failedOnly 过滤 |
get_run_action_repetitions | 循环迭代深入 Apply_to_each/Do_until。显示每次迭代的状态、输入、输出和错误。 failedOnly + maxIterations 适用于大型环路 |
diagnose_flow | 分析故障并提出修复建议 |
validate_flow | 用最佳实践得分进行验证 |
规划与帮助
| 工具 | 说明 |
|---|---|
plan_flow | 交互式流程规划向导 |
build_flow | 描述中的简单流程构建器 |
get_expression_help | 表达式语法参考 |
search_connectors | 按名称查找连接器 |
get_action_schema | 获取连接器动作参数 |
数据库CRUD
| 工具 | 说明 |
|---|---|
list_dataverse_tables | 列出环境中的所有表(实体) |
get_dataverse_table | 获取包含列定义的表架构 |
query_dataverse_rows | 使用OData筛选器/select/orderby查询行 |
get_dataverse_row | 按ID获取单行 |
create_dataverse_row | 新建一行 |
update_dataverse_row | 更新现有行 |
delete_dataverse_row | 删除一行(确认后) |
SharePoint
| 工具 | 说明 |
|---|---|
search_sharepoint_sites | 搜索SharePoint网站 |
get_sharepoint_site | 通过ID或URL获取网站 |
list_sharepoint_lists | 列出网站中的所有列表 |
get_sharepoint_list_columns | 获取列表的列定义 |
list_sharepoint_items | 通过筛选获取列表项 |
create_sharepoint_item | 创建新列表项 |
update_sharepoint_item | 更新列表项 |
delete_sharepoint_item | 删除列表项(确认后) |
list_sharepoint_files | 列出文档库中的文件 |
upload_sharepoint_file | 上传一个文件(最大4MB) |
get_sharepoint_file_content | 下载文件内容 |
电源应用程序
| 工具 | 说明 |
|---|---|
list_canvas_apps | 列出画布应用程序 |
get_canvas_app | 获取应用程序详细信息 |
publish_canvas_app | 发布应用程序 |
list_model_driven_apps | 列出模型驱动的应用程序 |
get_model_driven_app | 获取模型驱动的应用程序详细信息 |
list_app_versions | 列出应用程序版本历史记录 |
get_app_permissions | 获取应用程序权限 |
share_app | 与用户/组共享应用程序 |
remove_app_permission | 删除应用访问权限 |
set_app_owner | 转移应用所有权 |
环境管理
需要 Power平台管理员, Dynamics 365管理员,或 全局管理员 角色。
| 工具 | 说明 |
|---|---|
list_environments | 列出所有环境 |
get_environment | 获取环境详细信息 |
create_environment | 创建新环境 |
delete_environment | 删除环境 |
copy_environment | 复制环境 |
reset_environment | 重置环境 |
backup_environment | 创建备份 |
restore_environment | 从备份还原 |
DLP策略
需要 Power平台管理员, Dynamics 365管理员,或 全局管理员 角色。
| 工具 | 说明 |
|---|---|
list_dlp_policies | 列出数据丢失预防策略 |
get_dlp_policy | 获取政策详细信息 |
create_dlp_policy | 创建新的DLP策略 |
update_dlp_policy | 更新现有策略 |
delete_dlp_policy | 删除策略 |
list_policy_connectors | 按策略组列出连接器 |
ALM解决方案
| 工具 | 说明 |
|---|---|
list_solutions | 列出JDBC解决方案 |
get_solution | 获取解决方案详细信息 |
export_solution | 导出解决方案 |
import_solution | 导入解决方案 |
list_solution_components | 列出解决方案中的组件 |
add_solution_component | 向解决方案中添加组件 |
管理环境和容量
需要 Power平台管理员, Dynamics 365管理员,或 全局管理员 角色。
| 工具 | 说明 |
|---|---|
enable_managed_environment | 启用托管环境 |
disable_managed_environment | 禁用托管环境 |
get_governance_settings | 获取治理配置 |
get_tenant_capacity | 获取租户级别的容量 |
get_capacity_alerts | 获取容量警报通知 |
安全
此服务器通过三轮渗透测试实现了深度防御安全强化:
- 安全令牌存储:DPAPI(Windows)、Keychain(macOS)、Linux上的libsecret(如果可用),以及0o600文件缓存回退(如果不可用)
- SSRF预防:全面的私有主机检测,涵盖IPv4、IPv6、IPv6映射/兼容IPv4、八进制/十六进制/十进制表示法、ULA、链路本地范围、域分配表
- OData注射防护:所有比较运算符、括号形式、基于算术/函数的旁路、Unicode NFC规范化、仅ASCII强制执行的同音异义检测
- 路径穿越预防:NFKC Unicode规范化、双向控制字符剥离、零宽度字符删除、空字节拒绝、URL双重编码防御
- 输入验证:所有ID的GUID验证、字段列表验证、环境ID格式检查、SharePoint主机名分配列表
- 预防注射:Power Automation表达注射阻断(
@{/}@),命令注入预防(execFile超过exec)原型污染防御 - 错误清理:递归敏感密钥编辑(令牌、密码、机密)、PII删除、堆栈跟踪抑制
- 日志重设:用于身份验证头、令牌、API密钥的深度通配符Pino编校
- HTTP传输安全:本地主机绑定、基于会话的可流式HTTP、定时安全API密钥比较
- 资源限制:2MB输入大小限制,20级深度限制,50MB JSON响应限制,100MB二进制下载限制
- 配置强化:文件权限(0o600)、符号链接拒绝、全球可读警告
- 身份验证安全:令牌刷新互斥体、SOCPII过滤、SOCverbose/trace抑制、服务器中的仅静默模式
建筑
AI Client powerautomate-mcp
(Claude, VS Code, |
Cursor, Gemini) ├── Power Automate Flow Management API
├── Power Apps API (canvas/model-driven apps)
├── Power Platform Admin API (environments, DLP, capacity)
├── Microsoft Graph API (SharePoint, OneDrive, Excel)
├── Dataverse Web API (tables, rows, solutions)
├── MSAL Auth (browser popup / device code)
├── SQLite Schema Cache (400+ connectors)
└── Secure Token Storage (OS keychain)许可证
麻省理工学院
感谢信
感谢您使用此项目,我们深表感激。每次安装、错误报告和建议都使它成为一个更好的工具,我致力于解决出现的任何问题,以便我们拥有最好的Power Automation MCP服务器。如果有些东西对你不起作用,请打开一个问题。我读了每一本,一本可靠的复制品就能快速修复。
支持
对于问题和功能请求,请在此存储库中打开问题。
