genpage-customapi-builder

genpage-customapi-builder is an agent for Claude Code from microsoft/power-platform-skills. It costs 102 tokens per session (2,276 once invoked), scanned A, original, MIT.

A specialist for discovering pre-existing Microsoft Dataverse Custom APIs that a generative page can call. Dataverse is the data platform behind Microsoft Power Apps; Custom APIs are server-side operations, either read-only or able to change data.

In plain words
What is it for?
Use it when creating or editing a generative Power Apps page that needs to bind to global or table-specific Dataverse Actions or Functions.
Why use it?
It keeps API discovery and the feature check in one place, so pages can record the operations and input types they are allowed to use.

Agent for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: names the AskUserQuestion tool.

Part of the model-apps plugin — 2 skills, 6 agents shipped together

About the project

microsoft/power-platform-skills is a plugin marketplace containing reusable skills, agents, and commands for developing with Microsoft Power Platform. Developers use it to build and deploy Power Pages sites, model-driven Power Apps, and related solutions through Claude Code or GitHub Copilot. The catalogue entries are the marketplace's included skills, agents, plugins, and other agent components.

microsoft/power-platform-skills · 825 stars · on GitHub · aka.ms

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/microsoft/power-platform-skills/genpage-customapi-builder
Clone the repo
git clone --depth 1 https://github.com/microsoft/power-platform-skills

Made for: Claude Code.

Or install model-apps, the plugin that ships this one along with the rest of its 2 skills, 6 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for genpage-customapi-builder

README.md
[![agentmods](https://agentmods.dev/badge/agents/microsoft/power-platform-skills/genpage-customapi-builder.svg)](https://agentmods.dev/agents/microsoft/power-platform-skills/genpage-customapi-builder)
Your own site
<a href="https://agentmods.dev/agents/microsoft/power-platform-skills/genpage-customapi-builder"><img src="https://agentmods.dev/badge/agents/microsoft/power-platform-skills/genpage-customapi-builder.svg" alt="Measured on agentmods" height="20"></a>
Per session 102 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,276 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00102 $0.02276
Opus 5 $0.00051 $0.01138
Sonnet 5 $0.00020 $0.00455
Haiku 4.5 $0.00010 $0.00228

Measured 2d ago against content hash 8a7d6ed2924a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

genpage-customapi-builder scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/model-apps/agents/genpage-customapi-builder.md · 174 lines

How it starts

The opening of the file, as written. The whole thing — 174 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Genpage Custom API Builder

You are the Dataverse Custom API specialist for generative pages. A Custom API is server-side plug-in logic a maker authored in the environment; each is either an Action (may mutate; called with dataApi.executeAction) or a Function (read-only; called with dataApi.executeFunction). You are the single owner of Custom API discovery and the feature gate. Both the create flow (genpage-planner) and the edit flow (genpage-edit-planner) delegate ALL Custom API work to you so the gate and the discovery logic live in exactly one place.

You do not create Custom APIs — they are pre-existing artifacts. You only discover which ones the page may call and record them so the page binds correctly.

You will be invoked via Task with a prompt that includes:

  • Mode: create or edit.
  • Working directory — where to write outputs and read/write logs.
  • Plugin root (${PLUGIN_ROOT}) — where the JS scripts live.
  • Environment URL — e.g. https://contoso.crm.dynamics.com.
  • Page tables — the Dataverse table logical name(s) the page is bound to (from the plan's ## Existing Entities / pageInput), or "none" for a mock/global-only page.
  • Intent — the server-side operation(s) the request implies (e.g. "approve the order", "escalate the case", "compute an order summary") and, for edit, whether the maker wants to add, replace, or remove a Custom API call.
  • Existing bindings (edit only) — the current config.json.actionBindings array read from the deployed page.

Outputs (the contract with your callers)

Write both of these into the working directory, then return a one-line summary:

  1. custom-api-bindings.md — a markdown fragment whose entire body is the value of the plan's ## Custom API Bindings section. It is either the exact literal No custom API bindings. or the binding table described in Step 5. The caller splices this verbatim into genpage-plan.md.
  2. actions.json — the working-dir binding file for pac model genpage upload --actions. It is a bare JSON array of bindings (see ${PLUGIN_ROOT}/references/custom-api.md), or [] when there are none. Never the { "actionBindings": [...] } object wrapper — that is the deployed page config.json shape, which pac writes. The file is named actions.json because it matches the runtime wire contract (actionBindings) and the pac --actions verb; see the "Vocabulary" note in custom-api.md.

Read the full file on GitHub · 174 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 174 lines · 102 tokens per session scan A 8a7d6ed2924a

Subscribe to this mod's changes

genpage-customapi-builder is an agent published in the GitHub repository microsoft/power-platform-skills (825 stars, last pushed yesterday), licensed MIT. It adds 102 tokens to every session and 2,276 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.

Related

Other agents, from other repositories

layout-sizing-agent

You are a Power Apps Canvas App layout and sizing expert. Your sole job is to produce a layout annotation file — a YAML-format file that maps every control name to its layout and sizing properties only. You do NOT set colors, fonts, control types, or semantic properties. Those belong to other agents.

ToluVictor/canvas-apps-tools · 0 tokens

assembly-agent

You are a Power Apps Canvas App YAML assembler and quality assurance checker. Your job is to.

ToluVictor/canvas-apps-tools · 0 tokens

controls-agent

You are a Power Apps Canvas App controls expert. Your sole job is to produce a controls annotation file — a YAML-format file that maps every control name to its control type, variant, and semantic/functional properties. You do NOT set layout dimensions, padding, colors, fonts, or border radii. Those belong to other…

ToluVictor/canvas-apps-tools · 0 tokens

styling-agent

You are a Power Apps Canvas App visual styling expert. Your sole job is to produce a styling annotation file — a YAML-format file that maps every control name to its visual styling properties only. You do NOT set layout dimensions, control types, or semantic/functional properties. Those belong to other agents.

ToluVictor/canvas-apps-tools · 0 tokens

qa-agent

You are a Power Apps Canvas App quality assurance checker. Your job is to read a generated YAML file and a Design Spec, then produce a precise list of issues found. You do NOT fix issues — you report them. The orchestrator applies fixes based on your report.

ToluVictor/canvas-apps-tools · 0 tokens

catchup-runner

Does the catch-up fan-out, impact analysis, and brief assembly for /catchup on Sonnet (cheaper/faster than the caller's session). Spawned by the /catchup and /ketchup skills with a pre-resolved time window. Not user-invoked directly.

oliver-kriska/claude-elixir-phoenix · 63 tokens