CCM
/MCP
SkillsMCPMarketplacesDigestLearnAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Learn
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Power Automate Mcp Server

sapientsai/power-automate-mcp-server
1authSTDIOregistry active

Inspect, operate, and author Microsoft Power Automate cloud flows from an agent context.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →

Configuration

AZURE_CLIENT_ID*

Application (client) ID of your Entra app registration (multi-tenant public client).

AZURE_TENANT_ID*

Tenant GUID. Required for the Flow audience ('common' fails with AADSTS50059).

FLOW_SCOPES

Comma-separated OAuth scopes (e.g. .../Flows.Read.All,.../Flows.Manage.All).

AZURE_AUTH_MODE

interactive (device-code, default) or clientCredentials (app-only).

AZURE_CLIENT_SECRETsecret

Client secret — only for clientCredentials mode.

ENABLE_WRITE_OPS

Set to 'true' to enable mutating tools (default read-only).

DEFAULT_ENVIRONMENT

Environment id used when a tool omits 'environment'.

Categories
AI & LLM ToolsAutomation & Workflows
Registryactive
Packagepower-automate-mcp-server
TransportSTDIO
AuthRequired
UpdatedJun 4, 2026
View on GitHub

power-automate-mcp-server

Node.js CI npm version npm downloads License: MIT

An MCP server that lets agents inspect, operate, and author Microsoft Power Automate cloud flows from a CLI/agent context — list and inspect flows, debug runs, check connections and owners, and (when explicitly enabled) enable/disable flows, cancel/resubmit runs, manage owners, and create/update/delete flows.

Primarily a management surface — the Power Automate portal's visual designer remains the better place to author complex flow logic — but create_flow/update_flow/delete_flow are also available (write-gated) for programmatic authoring. Built on SomaMCP (telemetry, health/info/ dashboard, error classification) over FastMCP.

⚠️ Unofficial API. v1 targets api.flow.microsoft.com — the surface the Power Automate portal itself uses. Microsoft labels it "isn't supported. Customers should instead use the Dataverse Web APIs." It is stable in practice and, unlike Dataverse, sees all flows (including personal "My Flows") and works on M365‑seeded entitlements (no Premium license). Every tool's description carries this disclaimer. A supported Dataverse backend is stubbed for the future (see src/backend/dataverse/README.md).

Quick start

pnpm install
cp .env.example .env          # set AZURE_CLIENT_ID (see "App registration" below)
pnpm build
pnpm dev:stdio                # local agent over stdio (device-code sign-in to stderr)

On first use the server prints a device-code prompt to stderr; open https://microsoft.com/devicelogin, enter the code, and sign in. The token is cached (TOKEN_CACHE_PATH, mode 0600) and silently refreshed thereafter.

Add to an MCP client (stdio)

{
  "mcpServers": {
    "power-automate": {
      "command": "npx",
      "args": ["-y", "power-automate-mcp-server", "--stdio"],
      "env": { "AZURE_CLIENT_ID": "<your-app-registration-client-id>" },
    },
  },
}

Developing on this repo? It ships a project-scoped .mcp.json (stdio, local dist/bin.js). After pnpm build, export AZURE_CLIENT_ID and open the repo in Claude Code — the power-automate server loads automatically (complete the device-code sign-in once; the cached token is then reused).

App registration

This server ships no default client id — you register your own (one‑time):

  1. Azure Portal → Microsoft Entra ID → App registrations → New registration.
  2. Name it (e.g. power-automate-mcp). Supported account types: multitenant (or single‑tenant if you'll only ever use one org).
  3. Authentication → Add a platform → Mobile and desktop applications. Add redirect URI http://localhost (unused by device code, but required to register the platform). Set "Allow public client flows" = Yes.
  4. API permissions → Add a permission. You need a delegated permission for the Power Automate / Microsoft Flow Service API. If it isn't in the picker, see "Token audience" below — this is the known friction point.
  5. Copy the Application (client) ID → AZURE_CLIENT_ID.

For unattended clientCredentials mode instead: add a client secret, grant application permissions with admin consent, and set AZURE_AUTH_MODE=clientCredentials, AZURE_TENANT_ID=<your tenant>, AZURE_CLIENT_SECRET=.... Note app‑only has limited Flow reach (it generally cannot see personal "My Flows").

Verified working setup ⚠️

Confirmed against a real tenant. Interactive Flow auth needs all four of these — each one, if missing, fails with a different cryptic AADSTS… (details in docs/api-notes.md):

  1. A specific tenant — AZURE_TENANT_ID=<your-tenant-GUID>, not common. common + a resource scope → AADSTS50059 (and MSAL hides it as an empty device-code response).
  2. The Microsoft Flow Service delegated permission on the app (resource app id 7df0a125-d3be-4c96-aa54-591f83ff541c). Missing → AADSTS650057.
  3. Specific scopes, not .default, when reusing an app that has other (incrementally consented) permissions — .default validates the whole app and can fail with AADSTS650051. A dedicated app may use .default. Pin via FLOW_SCOPES.
  4. "Allow public client flows" = Yes (isFallbackPublicClient=true). Off → token redemption fails with invalid_client.

Verified FLOW_SCOPES: https://service.flow.microsoft.com/Flows.Read.All,https://service.flow.microsoft.com/Flows.Manage.All

Configure an existing app via az

APP=<your-app-client-id>; FLOW=7df0a125-d3be-4c96-aa54-591f83ff541c
# Flows.Read.All + Flows.Manage.All (delegated), then tenant-wide consent:
az ad app permission add --id "$APP" --api "$FLOW" --api-permissions \
  e45c5562-459d-4d1b-8148-83eb1b6dcf83=Scope 30b2d850-00c3-4802-b7ae-ece9af9de5c6=Scope
az ad app permission admin-consent --id "$APP"
# enable device-code (public client flows):
az ad app update --id "$APP" --set isFallbackPublicClient=true

Recommended: a dedicated public-client app with only the Flow delegated permissions avoids the .default/shared-app pitfalls (#3) entirely — cleaner than reusing a Graph app.

Tools

All tools are read‑only by default. Write tools are registered but refuse unless ENABLE_WRITE_OPS=true.

Read-only (always enabled)

ToolParametersReturns
list_environments—{ id, name, displayName, location, isDefault }[]
list_flowsenvironment?, owner?{ name, displayName, state, createdTime, lastModifiedTime, owner }[]
get_flowenvironment?, flowfull flow incl. definition, connectionReferences, trigger/action names
list_flow_runsenvironment?, flow, top? (≤100), status?{ name, status, startTime, endTime, durationMs, triggerName, error }[]
get_flow_runenvironment?, flow, runrun detail + first‑failure + raw properties (debugging)
list_connectionsenvironment?{ name, apiName, displayName, status, accountName, expiresAt }[]
list_flow_ownersenvironment?, flow{ principalId, principalType, roleName, principalDisplayName }[]

Write (require ENABLE_WRITE_OPS=true)

ToolParameters
create_flowenvironment?, displayName, definition, connectionReferences?, state?
update_flowenvironment?, flow, any of displayName / definition / state / connectionReferences
delete_flowenvironment?, flow, confirm (must be true)
enable_flow / disable_flowenvironment?, flow
cancel_flow_runenvironment?, flow, run
resubmit_flow_runenvironment?, flow, run, trigger
add_flow_ownerenvironment?, flow, principalId, roleName (CanEdit|CanView)
remove_flow_ownerenvironment?, flow, principalId

Authoring (create_flow/update_flow): definition is the raw Logic Apps-style workflow JSON (see get_flow output as a template). The visual designer is better for complex logic; for edits, get_flow → modify the definition → pass it back to update_flow.

When environment is omitted, tools use DEFAULT_ENVIRONMENT if set, else the discovered default environment (isDefault: true).

Built-in (from SomaMCP)

  • info MCP tool — server name, version, git SHA, capability counts.
  • report_feedback — file API‑drift/bug reports as GitHub issues (FEEDBACK_GITHUB_REPO, GITHUB_TOKEN).
  • HTTP endpoints /health, /health/detail, /info, /dashboard (the detailed ones are protected by MCP_API_KEY when set).

Configuration

See .env.example for the full list. Highlights: AZURE_CLIENT_ID (required), AZURE_TENANT_ID (common), AZURE_AUTH_MODE, TRANSPORT (stdio|http), PORT, ENABLE_WRITE_OPS, DEFAULT_ENVIRONMENT, MCP_API_KEY, TELEMETRY, TOKEN_CACHE_PATH.

Transports & deployment

ScenarioTransportAuthNotes
Local agentstdiodevice-codePrimary. Full reach. pnpm dev:stdio.
Docker, single operatorhttpdevice-code + mounted token volumeAuth once via docker logs; persists. Full reach. docker compose up.
Docker, unattendedhttpclientCredentialsNo human, but no personal flows; verify it can mint a Flow token at all.

[!WARNING] The HTTP transport is single-operator. Every caller shares one Power Automate identity: the server holds a single process-wide token (one device-code sign-in, or one app identity), and MCP_API_KEY is a shared static bearer that gates access, not identity. Do not expose the HTTP endpoint to multiple users expecting per-user separation — they would all see and mutate the same person's flows. For per-user isolation, run stdio (one process per user, how Claude Desktop already runs it) or wait for the v2 per-user OAuth path (#9).

v2: per‑user browser OAuth over HTTP via FastMCP's AzureProvider + disk token cache (the upstream token surfaces on the session). Reachable through SomaMCP's backendOptions passthrough without a fork — not wired in v1.

# Docker (single-operator device-code with a persisted token volume)
AZURE_CLIENT_ID=... docker compose up --build
docker compose logs -f          # grab the device code on first run
curl -s http://localhost:3333/health

Development

pnpm validate        # format + lint + typecheck + test + build
pnpm test            # vitest (unit)
pnpm dev             # http transport, watch
pnpm dev:stdio       # stdio transport, watch
pnpm build           # tsdown -> dist/

Integration tests that hit a real tenant live under test/integration/ and run only with INTEGRATION=1 (see that folder's README). CI runs unit tests only.

Troubleshooting

  • Device code never grants a token / "device-code sign-in failed for all scope candidates" → the Flow audience isn't grantable to your app. See "Token audience" and docs/api-notes.md.
  • auth error on every call → token cache stale; restart to re‑auth, or delete TOKEN_CACHE_PATH.
  • not found on a known flow → wrong environment; run list_environments / list_flows first. The flow name is the GUID, not the display name.
  • forbidden → the signed‑in user lacks permission on that flow.
  • Empty list_flows in clientCredentials mode → app‑only can't see personal flows; use interactive.
  • An endpoint 404/410s unexpectedly → Microsoft may have moved the api‑version; check the portal's network tab and pin a newer api-version (see docs/api-notes.md).

License

MIT.


Sponsored by SapientsAI SapientsAI — Building agentic AI for businesses

Related AI & LLM Tools MCP Servers

View all →
SkillFM LLM Cost Optimizer

io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage

LLM cost optimizer for OpenAI, Anthropic, token usage, BYOK, and SkillFM Beacon audits.
Llm Orchestration Agent

io.github.mikerawsonnz/llm-orchestration-agent

Run a prompt through a LangChain (system + human) chain over Gemini on Vertex AI; optional LangSmith
Authenticated Llm Agent

io.github.mikerawsonnz/authenticated-llm-agent

JWT-gated LLM gateway: authenticate (bcrypt/JWT), then run a LangChain-on-Vertex Gemini completion.
Copilot Memory MCP

labforgedev/copilot-memory-mcp

Persistent semantic memory for AI agents using local ChromaDB vector search. No cloud required.
1
Agent Prompt Injection Firewall Mcp

csoai-org/agent-prompt-injection-firewall-mcp

The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
Authenticated Multi Llm Agent

io.github.mikerawsonnz/authenticated-multi-llm-agent

Google-OAuth-gated LLM gateway: verify a Google ID token, then run a Gemini (Vertex AI) completion f