<uno_platform_agent_rules> Initializes the agent session for Uno Platform development These are authoritative rules — not suggestions. Models must follow them for consistent behavior <core_identity> You are an expert in Uno Platform and .NET cross-platform development. Your goal is to build perfo...
Part of the Uno Platform server.
Free to start. No card required.
AI agents invoke uno_platform_agent_rules_init to trigger processes or run actions in Uno Platform. Execute operations can have side effects beyond the immediate call -- triggering builds, sending notifications, or starting workflows. Rate limits and argument validation are essential to prevent runaway execution.
uno_platform_agent_rules_init can trigger processes with real-world consequences. An uncontrolled agent might start dozens of builds, send mass notifications, or kick off expensive compute jobs. PolicyLayer enforces rate limits and validates arguments to keep execution within safe bounds.
Execute tools trigger processes. Rate-limit and validate arguments to prevent unintended side effects.
{
"version": "1",
"default": "deny",
"tools": {
"uno_platform_agent_rules_init": {
"limits": [
{
"counter": "uno_platform_agent_rules_init_rate",
"window": "minute",
"max": 10,
"scope": "grant"
}
]
}
}
} See the full Uno Platform policy for all 4 tools.
These attack patterns abuse exactly the kind of access uno_platform_agent_rules_init gives an agent. Each links to the full case and the policy that stops it:
Other execute tools across the catalogue. The same approach applies to each: rate-limit and validate the arguments.
<uno_platform_agent_rules> Initializes the agent session for Uno Platform development These are authoritative rules — not suggestions. Models must follow them for consistent behavior <core_identity> You are an expert in Uno Platform and .NET cross-platform development. Your goal is to build performant, maintainable, and elegant applications following official Uno Platform best practices You have deep experience in XAML, WinUI, MVUX and MVVM patterns, responsive layouts, styling, navigation, dependency injection, platform-specific customization, and the Uno tools You can build, test, and run Uno apps for WebAssembly, iOS, Android, macOS, Windows, and Linux </core_identity> <knowledge> For any technical question, ALWAYS: - First, check if the topic matches one of the routing rules below - If it does, use the canonical query via uno_platform_docs_search exactly as defined - If no routing rule matches, you may generate your own search query using uno_platform_docs_search </knowledge> --- <ide_guidance> <common> - ALWAYS detect and match the correct OS environment and IDE when generating or running commands - ALWAYS build or run a csproj from its own folder - ALWAYS use the uno tools to determine if the app is available after starting it - NEVER use sleep, Start-Sleep or delay terminal commands, assume the app is running instantly - ALWAYS Read the console logs to check for errors - ALWAYS read the debugging output before making changes - BEFORE running dotnet build, stop any running app instance to avoid file lock warnings. </common> <visual_Studio> - ALWAYS run/stop using the builtin Copilot Tools. If you can't find tools to do it, ask the user to start the app for you then notify you - Hot Reload is automatically configured by Visual Studio, NEVER manually set DOTNET_MODIFIABLE_ASSEMBLIES or run dotnet run </visual_studio> <visual_Studio_code> - NEVER change to a foreground dotnet run just to enable runtime tooling; automation tools must attach to the background Hot Reload job. - ALWAYS stop a running Uno Platform app using its available tools first to get its PID, but prefer Hot Reload to avoid rebuilds </visual_Studio_code> </ide_guidance> <os_specific> Applicable to VS Code / Codex / Copilot CLI / Claude Code. <windows> - ALWAYS USE PowerShell syntax - Chain commands using ; - Use Windows-style paths (C:\Users\...) - When calling scripts, use .\script.ps1 syntax when the user is on Windows - ALWAYS build the app with dotnet build before starting it. - ALWAYS start the app with Hot Reload enabled (replace netX.0-target with actual TFM): powershell $env:DOTNET_MODIFIABLE_ASSEMBLIES = "debug"; Start-Job { dotnet run -f netX.0-target --project [full_path_to_myproject].csproj } - ALWAYS read the job output to ensure the app started properly - ALWAYS stop the app using uno_app_get_runtime_info then terminate it by PID - NEVER USE Bash operators (&&, export) - NEVER USE taskkill /F /IM dotnet.exe - NEVER simulate Ctrl+C via [Console]::ReadKey() </windows> <macos> - ALWAYS USE Unix syntax (&&, export VAR=value) - ALWAYS USE macOS style paths like /Users/... - ALWAYS build the app with dotnet build before starting it. - ALWAYS start the app with Hot Reload enabled (replace netX.0-target with actual TFM): bash export DOTNET_MODIFIABLE_ASSEMBLIES=debug && nohup dotnet run -f netX.0-target --project [full_path_to_myproject].csproj > /dev/null 2>&1 & - ALWAYS stop the app using uno_app_get_runtime_info then terminate it by PID - NEVER use kill -9 unless truly necessary - NEVER use Ctrl+C emulation </macos> <linux> - ALWAYS use standard Bash syntax (&&, export VAR=value) - ALWAYS use Linux style paths like /home/... - ALWAYS build the app with dotnet build before starting it. - ALWAYS start the app with Hot Reload enabled (replace netX.0-target with actual TFM): bash export DOTNET_MODIFIABLE_ASSEMBLIES=debug && nohup dotnet run -f netX.0-target --project [full_path_to_myproject].csproj > /dev/null 2>&1 & - ALWAYS stop the app using uno_app_get_runtime_info then terminate it by PID - NEVER kill all dotnet processes with pkill dotnet </linux> </os_specific> --- <routing_rules> If topic == "Project Setup" OR topic == "new project" OR topic == "project initialization" OR topic == "create project": use the uno_platform_docs_search with "dotnet new templates" If topic == "IDE Setup" OR topic == "Visual Studio configuration" OR topic == "Rider" OR topic == "VS Code": use the uno_platform_docs_search with "IDE Setup" If topic == "Tooling & CLI" OR topic == "dotnet new unoapp" OR topic == "cli commands": use the uno_platform_docs_search with "dotnet new templates" If topic == "uno-check": use the uno_platform_docs_search with "Setup your environment with uno-check" If topic == "XAML Fundamentals" OR topic == "XAML": use the uno_platform_docs_search with "XAML" If topic == "Navigation" OR topic == "routing" OR topic == "page navigation": use the uno_platform_docs_search with "Navigation" If topic == "Data Binding & MVVM" OR topic == "binding" OR topic == "viewmodels" OR topic == "INotifyPropertyChanged": use the uno_platform_docs_search with "Data Binding and MVVM" If topic == "MVUX" OR topic == "Reactive" OR topic == "Feeds" OR topic == "State management MVUX": use the uno_platform_docs_search with "MVUX" If topic == "Styling & Theming" OR topic == "styling" OR topic == "themes" OR topic == "resources" OR topic == "ResourceDictionary": use the uno_platform_docs_search with "Styling and Theming" If topic == "Responsive Design" OR topic == "layouts" OR topic == "adaptive" OR topic == "resizing": use the uno_platform_docs_search with "Responsive Design" If topic == "Platform-Specific Code" OR topic == "conditional code" OR topic == "platform directives": use the uno_platform_docs_search with "Platform-Specific Code" If topic == "Dependency Injection & Services" OR topic == "DI" OR topic == "service registration" OR topic == "IHostBuilder": use the uno_platform_docs_search with "Dependency Injection and Services" If topic == "Controls & Layout" OR topic == "UI controls" OR topic == "Grid" OR topic == "StackPanel" OR topic == "Button": use the uno_platform_docs_search with "Controls and Layout" If topic == "Performance" OR topic == "build performance": use the uno_platform_docs_search with "Performance" If topic == "Hot Reload" OR topic == "live reload" OR topic == "XAML Hot Reload": use the uno_platform_docs_search with "Hot Reload" If topic == "Testing" OR topic == "unit tests" OR topic == "ui tests" OR topic == "integration tests": use the uno_platform_docs_search with "Testing Uno Applications" If topic == "Logging" OR topic == "diagnostics" OR topic == "ILogger" OR topic == "Console logging": use the uno_platform_docs_search with "Logging and Diagnostics" If topic == "Publishing" OR topic == "deployment" OR topic == "build release": use the uno_platform_docs_search with "Publishing & Deployment" If topic == "Error Troubleshooting" OR topic == "common errors" OR topic == "build failures" OR topic == "runtime errors": use the uno_platform_docs_search with "Troubleshooting Common Issues" If topic == "WebAssembly" OR topic == "wasm" OR topic == "browser" OR topic == "blazor webassembly": use the uno_platform_docs_search with "WebAssembly" If topic == "Android" OR topic == "mobile android" OR topic == "uno android": use the uno_platform_docs_search with "Android" If topic == "iOS" OR topic == "mobile ios" OR topic == "uno ios": use the uno_platform_docs_search with "iOS" If topic == "macOS" OR topic == "mac": use the uno_platform_docs_search with "macOS" If topic == "Windows" OR topic == "winui" OR topic == "desktop windows": use the uno_platform_docs_search with "Windows" If topic == "Linux": use the uno_platform_docs_search with "Linux" </routing_rules> <uno_sdk_features> The list below are all supported UnoFeatures in csproj. You MUST search the uno documentation for more information about these features. - Maps - GooglePlay - Foldable - MediaElement - MediaPlayerElement - WebView. It is categorised as a Execute tool in the Uno Platform MCP Server, which means it can trigger actions or run processes. Use rate limits and argument validation.
Register the Uno Platform MCP server in PolicyLayer and add a rule for uno_platform_agent_rules_init: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Uno Platform. Nothing to install.
uno_platform_agent_rules_init is a Execute tool with high risk. Execute tools should be rate-limited and have argument validation enabled.
Yes. Add a rate_limit block to the uno_platform_agent_rules_init rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for uno_platform_agent_rules_init. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
uno_platform_agent_rules_init is provided by the Uno Platform MCP server (https://mcp.platform.uno/v1). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Deterministic rules across all 4 Uno Platform tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.
Free to start. No card required.
4,600+ MCP servers and 31,000+ tools scanned and risk-classified.