Power Automate MCP
Power Automate MCP
Un servidor MCP local que permite a un agente de IA inspeccionar y editar tus flujos en la nube personales de Power Automate — autenticado con tu propia cuenta de Microsoft, sin consentimiento de administrador y sin suscripción de pago.
Existe porque las alternativas alojadas cobran una cuota mensual por envolver una API que Microsoft ya expone a tu cuenta de forma gratuita. Este repositorio es el análisis de ingeniería inversa de cómo funciona de verdad esa API, empaquetado como una herramienta funcional. Proyecto personal, proporcionado tal cual — lee la nota de fiabilidad antes de depender de él.
La parte interesante: cómo se autentica sin pedir permiso a TI
Todo tutorial de «gestiona Power Automate desde código» te dice que registres una aplicación en Entra ID y consigas que un administrador dé su consentimiento a Dynamics CRM user_impersonation o Flows.Manage.All. En un inquilino corporativo con restricciones, esa petición no tiene ninguna posibilidad: supone conceder una entidad de servicio permanente y los administradores (con razón) dicen que no.
Este proyecto lo evita por completo usando un ID de cliente de primera parte público que Microsoft incorpora para herramientas interactivas:
51f81489-12ee-4a9e-aaae-a2591f45987d ("Dynamics 365 Example Client", of XrmToolBox fame)A través del flujo de código de dispositivo de OAuth 2.0, se trata de un inicio de sesión delegado: el token lleva tu identidad y tus permisos, no hay ninguna entidad de servicio que nadie deba aprobar y no aparece ninguna pantalla de consentimiento. Puedes hablar con Power Automate desde tu portátil exactamente con los derechos que ya tienes en el portal, nada más y nada menos.
El público del token tiene una peculiaridad poco evidente que merece la pena documentar:
https://service.flow.microsoft.com//user_impersonation
^^ two slashes, on purposeEl URI de recurso heredado termina en barra y la sintaxis de ámbito v2 añade /user_impersonation, lo que produce la doble barra. Algunos inquilinos rechazan la forma de una sola barra. Esa s sola cadena es la diferencia entre un inicio de sesión que funciona y un error AADSTS opaco.
La otra parte interesante: dos API que ven flujos distintos
Hay dos backends REST y no son intercambiables:
|
| |
Estado | Sin documentar, sin soporte | Oficial, documentada ( |
Ve flujos personales | Sí | No — 404 sin Dataverse |
Ve flujos de solución | Sí | Sí |
Para qué la usamos | Para todo (flujos personales) | Integrada, inactiva |
La lección que más costó de investigar: la API compatible no puede ver en absoluto los flujos personales. Exige que el flujo viva en una solución de Dataverse. Wikipedia, es decir, cualquier herramienta que gestione los flujos que un usuario normal crea en el portal —incluidos todos los MCP de pago — no tiene más alternativa que usar la API de servicio no soportada. Este proyecto hace explícito ese intercambio en lugar de ocultarlo.
src/client/flow-api.ts mantiene ambas URLs base tras un único interruptor, de modo que un flujo que después pase a formar parte de una solución (o un futuro en el que la API de servicio diga hemos finished) se reduza a cambiar una constante, no a tant de todo.
Nota de fiabilidad (léelo)
api.flow.microsoft.com no está documentada ni recibe soporte de Microsoft. Puede cambiar su estructura o desaparecer sin previo aviso, y esta herramienta fallara , ? > when it happens. Ese riesgo es cía exactamente lo que los servicios de pago te cobran para absorber. Para una herramienta personal en la que tú misso mismo lo reparas, es un buen agreement. Para cualquier cosa la que esté seriedad, no lo es. Elige en consecuencia.
Todo se ejecuta como tú . Si pierdes el acceso a la cuenta, la herramienta deja de funcionar: detrás no hay ninguna identidad de servicio.
Instalación
Requisitos: Node 18+ (para el fetch) integrado) y pnpm. Una cuenta de Microsoft de trabajo o educativa que puede usar Power Automate — nada más.
git clone https://github.com/karenrebecag/PowerAutomate_MCP.git
cd PowerAutomate_MCP
pnpm install
pnpm buildCredenciales — inicia sesión una vez
No hay ningún archivo de configuración que editar ni ningún secreto que pegar. La autenticación es un inicio de sesión interactivo de código de dispositivo contra tu propia cuenta de Microsoft:
pnpm loginSe imprime una dirección URL y un código corto:
Power Automate MCP — sign in
1. Open: https://microsoft.com/devicelogin
2. Code: ABCD-EFGH
Waiting for you to finish signing in...Abre la URL, introduce el código de nuevo, inicia sesión con la cuenta cuyos flujos quieres gestionar y acepta. Si se completa correctamente, se escribe un token de actualización en .pa-token (permisos `0600», ignorado por git). El servidor accede automatic(al... M, caduca (~90 días de inactividad). Entra en otra cuenta o con un token caducado en la línea de comando, ac , simply re-run.
Variables de entorno opcionales
Variable | Valor por defecto | Cuándo configurarla |
|
| Fijar a un tenant GUID concreto si tu cuenta belongs to varios. |
|
| Guarda allí the token de renovación. |
Verificación (opcional pero recomendada)
pnpm probe runs Phase 0: it tries all available read endpoints berlin, ya has ... against your tenant and dumps the real outputs to a template (ignored by git). If one route falls 404 in tu entorno, will be here, and not use it. Nothing that it does is written inter.
pnpm probeRegistro con tu cliente MCP
Añade el servidor a la configuración de ng your client. For Claude Code that's ~/.mcp.json:
{
"mcpServers": {
"power-automate": {
"command": "node",
"args": ["/absolute/path/to/PowerAutomate_MCP/dist/index.js"]
}
}
}Use una ruta absoluta a dist/index.js. The server finds .pa-token relative its own path, así no need to configurar working dirs nor environmental variables in your client. Restart the client (or the server returns) and the seven tools appear . For cheaper, run from terminal's help without a client:
printf '%s\n%s\n%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"c","version":"1"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
| node dist/index.jsHerramientas
Tool | Écrit? | What it does |
| no | Todos los entornos que la cuenta ve. Empieza aquí para obtener el ID de un entorno. |
| no | Flujos en la nube de un entorno (resumen). |
| no | Definición más editable full + references of connection. |
| no | History of recent runs: status, code, timing. |
| no | Detallea por acción for each run; sigue the links for inputs/outputs of fallback runs. Debugging view. |
| sí | Inicia / detiene el flujo. Also previews unless you have |
| sí | Cre or edit a flow from an object definition. |
Uso típico
list_environments → grab the environment ID
list_flows(environmentId) → find the flow you want, grab its ID
get_flow(env, flowId) → read the definition
… edit the definition object …
create_or_update_flow(env, flowId, definition) → preview (dryRun on)
create_or_update_flow(env, flowId, definition, dryRun:false) → applyAmbas herramientas de escritura no afectan to anything until a expressly active during download: dryRun: false / confirm: true. Consider this a better feature, nota annoyance — was one broken definition enough to make a hardaborte live accident.
Estructura del proyecto
src/
auth/ device-code login + silent refresh (the interesting bit)
client/ thin HTTP wrapper over the two REST backends
tools/ one file per MCP tool (added after Phase 0 confirms shapes)
server.ts MCP server wiring
index.ts stdio transport entry point
scripts/
probe-endpoints.ts Phase 0 reconnaissance — run before trusting any toolEstado
Facebook needs this status: "Working." Seven tools (five read, two write), each typed against the real data of the answers captured by the read-only test in the real trademark. pnpm /domain (typecheck + lint + format + tests) has green words. la comunidad de las.
Licencia e intención
Personal, educational reverse-engineering project,.. sharing. San here para que aquellos learn cómo funciona this API and build realizate based on. No affiliation with Microsoft. Use within your own account and conform to your organization's policies.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/karenrebecag/PowerAutomate_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server