Blazor UI library DRYL: find components, read their exact API and tokens, validate Razor markup.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
The exact public API of one DRYL component: every parameter with type, default and description, the members of every enum it uses, its public methods and a canonical Razor example. DRYL variants are enums, never strings: write an enum value as qualifiedName.Member (e.g. Variant="DrylButton.ButtonVariant.Secondary") — many enums are nested in their component, so the bare enum name does not compile.
Component name, case-insensitive, with or without the 'Dryl' prefix: 'DrylButton', 'button'.
The exact public API of one DRYL component: every parameter with type, default and description, the members of every enum it uses, its public methods and a canonical Razor example. DRYL variants are enums, never strings: write an enum value as qualifiedName.Member (e.g. Variant="DrylButton.ButtonVariant.Secondary") — many enums are nested in their component, so the bare enum name does not compile.
| Argument | Type | Description |
|---|---|---|
| name* | string | Component name, case-insensitive, with or without the 'Dryl' prefix: 'DrylButton', 'button'. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Component name, case-insensitive, with or without the 'Dryl' prefix: 'DrylButton', 'button'."
}
}
}The CSS custom properties DRYL styles itself with, grouped (colors, glass, accent, spacing, radius, motion, …), with the dark value and — where light mode differs — the light value. Reference these with var(--name) in your CSS instead of writing literal colors, sizes or durations; DRYL follows the user's color mode through them.
| Argument | Type | Description |
|---|---|---|
| category | string | null | Optional group name, case-insensitive ('Motion', 'Spacing'). Omit to get every group. |
{
"type": "object",
"properties": {
"category": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional group name, case-insensitive ('Motion', 'Spacing'). Omit to get every group."
}
}
}Find DRYL Blazor components (DRYL.Components and DRYL.Components.Agents) by name, title, category or purpose. Use this first when you need a component for a job; then call get_component for its exact API.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results, 1–50. Default 10. |
| query* | string | What to look for: a component name with or without the 'Dryl' prefix ('button', 'DrylDatePicker'), a category ('Inputs') or a purpose ('date', 'chart', 'streaming text'). |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"description": "Maximum number of results, 1–50. Default 10."
},
"query": {
"type": "string",
"description": "What to look for: a component name with or without the 'Dryl' prefix ('button', 'DrylDatePicker'), a category ('Inputs') or a purpose ('date', 'chart', 'streaming text')."
}
}
}Check a Razor snippet's <Dryl…> tags against DRYL's real API before you finish: unknown components, unknown parameters, and enum parameters given a string or a member that does not exist — each with a suggested fix. Call it on every DRYL markup you write or change. It scans tags; it does not compile Razor.
| Argument | Type | Description |
|---|---|---|
| razor* | string | The Razor markup to check — a component, a page or a fragment; up to 50,000 characters. |
{
"type": "object",
"required": [
"razor"
],
"properties": {
"razor": {
"type": "string",
"description": "The Razor markup to check — a component, a page or a fragment; up to 50,000 characters."
}
}
}