plugins-server-extensions

plugins-server-extensions is a skill for Claude Code, Codex from satriotsubasa/PowerPlatform-Core. It costs 204 tokens per session (1,752 once invoked), scanned A, original, Apache-2.0.

A skill for Dataverse server-side extensions written in C#, including plug-ins and custom APIs. A plug-in is code that runs when Dataverse processes an event, while a custom API exposes a defined server operation.

In plain words
What is it for?
Use it to build and push plug-ins, inspect or reconcile event steps and images, and create bound or unbound custom APIs.
Why use it?
It handles the deployment details that can otherwise drift, such as registered assemblies, event steps, images, enablement, and API parameters. It separates building code from approving its registration.

Skill for Claude CodeCodex

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the powerplatform-core plugin — 12 skills shipped together

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 skills/satriotsubasa/powerplatform-core/plugins-server-extensions
Any agent
npx skills add satriotsubasa/PowerPlatform-Core --skill plugins-server-extensions
Clone the repo
git clone --depth 1 https://github.com/satriotsubasa/PowerPlatform-Core

Made for: Claude Code, Codex.

Or install powerplatform-core, the plugin that ships this one along with the rest of its 12 skills.

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 plugins-server-extensions

README.md
[![agentmods](https://agentmods.dev/badge/skills/satriotsubasa/powerplatform-core/plugins-server-extensions.svg)](https://agentmods.dev/skills/satriotsubasa/powerplatform-core/plugins-server-extensions)
Your own site
<a href="https://agentmods.dev/skills/satriotsubasa/powerplatform-core/plugins-server-extensions"><img src="https://agentmods.dev/badge/skills/satriotsubasa/powerplatform-core/plugins-server-extensions.svg" alt="Measured on agentmods" height="20"></a>
Per session 204 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,752 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 $0.00204 $0.01752
Opus 5 $0.00102 $0.00876
Sonnet 5 $0.00041 $0.00350
Haiku 4.5 $0.00020 $0.00175

Measured 4d ago against content hash 53dc41b9570c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

plugins-server-extensions 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 4d 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/powerplatform-core/skills/plugins-server-extensions/SKILL.md · 74 lines

How it starts

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

Plug-Ins & Server Extensions

This skill handles Dataverse server-side logic — C# plug-ins and custom APIs — with a code-first, headless-first posture. It registers and pushes plug-in assemblies and plug-in packages, inspects SDK message-processing steps and images, reconciles step enable/disable state against source intent, and creates custom APIs with their parameters and properties. It treats step enablement as explicit deployment state and registration as an approval gate separate from build, even when code creation and build were already approved. It is intentionally generic about environment URL, publisher prefix, solution name, and project layout — read or request them per task and preserve any existing layered *.Business/*.Data/*.Plugins delivery model.

When to use this

  • The user wants to register, push, or update a plug-in (assembly or package) and its steps/images.
  • A step needs inspecting, or its enabled/disabled state must be reconciled to match what the source intends.
  • You are diagnosing step-state drift after a push, registration, or solution import.
  • The user wants a custom API (bound or unbound) created, optionally backed by a plug-in.
  • You need to confirm critical steps stayed enabled and intentionally disabled steps stayed disabled.

Route here from the powerplatform-core orchestrator. For flows, schema, PCF/web resources, or solution packaging, use the matching sibling skill instead.

Helpers

The helpers live in the plugin's scripts/ directory at the plugin root, not in this skill folder. Resolve the plugin root and invoke them like:

  • python "$CLAUDE_PLUGIN_ROOT/scripts/inspect_plugin_steps.py" --spec <spec.json> (Claude Code)
  • python "$CODEX_PLUGIN_ROOT/scripts/inspect_plugin_steps.py" --spec <spec.json> (also exposed as $PLUGIN_ROOT)
  • Installed standalone / unsure: the scripts/ folder sits beside this skill bundle — invoke by its path within the install.
Helper Purpose
register_plugin_headless.py Assembly-based first registration: uploads the pluginassembly, creates the plugintype records explicitly (the classic database path does not auto-create them), then registers sdkmessageprocessingstep and sdkmessageprocessingstepimage records. --reuse-existing reconciles an assembly that already exists (creates missing types/steps) instead of failing.
register_plugin_package_headless.py Package-based first registration via pluginpackage. More reliable default: Dataverse's server-side package processing auto-creates the pluginassembly/plugintype records, so type discovery is not the caller's problem.
push_plugin.py Repeatable build-and-push when the target pluginId already exists; captures step state before, compares after, and fails on unexpected drift unless reconcile is requested.
inspect_plugin_steps.py Inspect existing step state for an assembly or package — messages, stages, modes, filtering attributes, images, and enabled/disabled state.
ensure_plugin_step_state.py Explicitly enable or disable existing steps so live state matches source intent (desiredState).
create_custom_api.py Repeatable headless creation of a custom API plus its request parameters and response properties.

Read the full file on GitHub · 74 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. 4d ago First seen · 74 lines · 204 tokens per session scan A 53dc41b9570c

Subscribe to this mod's changes

plugins-server-extensions is a skill published in the GitHub repository satriotsubasa/PowerPlatform-Core (17 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 204 tokens to every session and 1,752 once invoked, about $0.0010 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-08-30.

Related

Other skills, from other repositories

build-and-test

How to build and test .NET projects in the Agent Framework repository. Use this when verifying or testing changes.

microsoft/agent-framework · 26 tokens

agents-sdk-dotnet

Use when any code imports Microsoft.Agents.Hosting.AspNetCore, Microsoft.Agents.Builder, or related Agents SDK packages, or when the user is building, configuring, or asking questions about a Microsoft 365 Agents SDK agent in C# / .NET. Trigger on questions about appsettings.json, connection configuration…

microsoft/Agents · 112 tokens

agents-sdk-dotnet-otel

Use when adding, configuring, validating, or troubleshooting OpenTelemetry observability for a Microsoft 365 Agents SDK application in C# / .NET. Trigger when the user mentions OpenTelemetry, OTel, telemetry, traces, metrics, logs, OTLP, Aspire Dashboard, Application Insights, Azure Monitor, distributed tracing…

microsoft/Agents · 86 tokens

bf-to-agents-sdk-dotnet-migration

Use when migrating a Bot Framework .NET SDK bot to Microsoft 365 Agents SDK. Triggered by projects that depend on packages: Microsoft.Bot.Builder or Microsoft.Bot.Builder.Integration.AspNet.Core that want to migrate to Agents SDK.

microsoft/Agents · 56 tokens

agents-sdk-dotnet-debugging

Use when troubleshooting an agent built with the Microsoft Agents SDK (Microsoft.Agents.Hosting.AspNetCore and related packages) in C# / .NET. Trigger on any of these symptoms: build or C# compile errors, crashes on startup, 401 or auth errors on incoming requests, the bot not responding to messages, appsettings.json…

microsoft/Agents · 136 tokens

code-review-csharp

Perform structured code reviews of C# source code covering naming conventions, performance, security, readability, and .NET best practices. Trigger phrases include "review this C# code", "check my C# for best practices", "analyze this C# class", "find issues in my C# code".

pnp/copilot-prompts · 66 tokens