MCP server for Infragistics Ultimate UI for WPF — component registry, XAML namespace lookup, full API reference with property types and enum values, keyword search across 5,300+ public types, and named-theme setup with verified recolor steps.
Distributed as a NuGet dotnet tool, Infragistics.Wpf.Mcp — currently in beta (0.1.0-beta.1). From the first stable release it will also be listed in the MCP Registry as io.github.Infragistics-Developer-Tools/wpf-mcp.
All tools are read-only (readOnlyHint: true, openWorldHint: false) — none of them modify your project, filesystem, or any external system.
| Tool | Description |
|---|---|
list_wpf_components |
List all 189 Xam* controls with canonical XAML namespace URIs, NuGet packages, and descriptions. Always call this first before writing XAML. |
get_wpf_project_scaffold |
Generate ready-to-run dotnet new + dotnet add package + dotnet restore commands and xmlns declarations for a new WPF project. Pass component names resolved via list_wpf_components. |
search_wpf_api |
Search across all 5,300+ public types by keyword — matches type names, summaries, and member names. Use when you don't know the exact type name. |
get_wpf_api_reference |
Full API reference for any type: properties with types and enum values, events, methods, and inherited members grouped by base class. Large types are compacted to stay under ~25K characters (events and methods first, then inherited members, are listed by name only); the optional member filter (case-insensitive name substring, e.g. "YAxis") returns full details for just the members you need. |
setup_wpf_theme |
List available named themes and the raw XAML files backing them, covering both theming mechanisms (legacy embedded-BAML Theme="..." and newer ThemeManager). Returns ready-to-paste apply steps. Call first for any theming task. |
get_wpf_theme_resource |
Retrieve the full raw XAML of one theme/style resource-dictionary file (real Style/ControlTemplate/brush definitions) to copy and override. Large files come in pages that concatenate to the exact file; find returns single styles, templates or brushes in full. Use the exact path from setup_wpf_theme. |
get_wpf_theme_palette |
Return a newer-family (ThemeManager) theme's color/brush palette — exact resource keys and values — plus verified steps to recolor that theme (control-level overrides or an extended theme) without creating a new one. |
search_wpf_docs |
Search 2,600+ how-to documentation topics by keyword and/or control name — layouts, styling, data binding, filtering/sorting/grouping, exporting, performance, known issues, etc. |
get_wpf_doc |
Full text (including XAML samples) of one documentation topic by slug. Use the slug from a search_wpf_docs result. |
Requires the .NET 10 SDK or newer (Windows, macOS or Linux) — dotnet tool install and dnx are SDK commands, so the .NET 10 runtime alone is not enough. All Infragistics data ships inside the package and nothing is downloaded at runtime.
Beta: the package is a prerelease, so every command below needs
--prereleaseor an exact@0.1.0-beta.1version — without one, NuGet reports the package as "not found".
Option A: global install (gives you a wpf-mcp command on PATH)
dotnet tool install -g Infragistics.Wpf.Mcp --prereleaseUpdate with dotnet tool update -g Infragistics.Wpf.Mcp --prerelease, remove with dotnet tool uninstall -g Infragistics.Wpf.Mcp.
Option B: run on demand with dnx (downloads and caches the package on first use, nothing to install or update by hand)
dnx Infragistics.Wpf.Mcp@0.1.0-beta.1 --yes
# or always the newest prerelease:
dnx Infragistics.Wpf.Mcp --prerelease --yesCheck that it starts. Run wpf-mcp (or the dnx command above) in a terminal. It prints a line like this to stderr and then waits for an MCP client on stdin:
Infragistics WPF MCP server 0.1.0-beta.1 ready (data: Infragistics 26.1.21, built <date>)
Press Ctrl+C to stop it. To try the tools without an AI client, open it in the MCP Inspector: npx @modelcontextprotocol/inspector wpf-mcp.
Visual Studio — add .mcp.json next to your solution (or %USERPROFILE%\.mcp.json for all solutions):
{
"servers": {
"infragistics-wpf": {
"type": "stdio",
"command": "wpf-mcp"
}
}
}VS Code (Copilot) — add to .vscode/mcp.json:
{
"servers": {
"infragistics-wpf": {
"type": "stdio",
"command": "wpf-mcp"
}
}
}Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"infragistics-wpf": {
"command": "wpf-mcp"
}
}
}Claude Code (CLI or VS Code extension) — add .mcp.json to your project root:
{
"mcpServers": {
"infragistics-wpf": {
"command": "wpf-mcp"
}
}
}Approve the server when Claude Code asks, then type /mcp in the chat to check that infragistics-wpf is connected. If the claude command is on your PATH (the VS Code extension doesn't add it), you can run claude mcp add infragistics-wpf -- wpf-mcp instead.
To use dnx instead of a global install, set "command": "dnx" and "args": ["Infragistics.Wpf.Mcp@0.1.0-beta.1", "--yes"] (Claude Code: claude mcp add infragistics-wpf -- dnx Infragistics.Wpf.Mcp@0.1.0-beta.1 --yes). Add "--debug" to args for any client to log every tool call/response to wpf-mcp.log in your system temp folder (override with the WPF_MCP_LOG environment variable) — see Troubleshooting.
To run from a source checkout instead, build it first (see DEVELOPMENT.md) and point command/args at dotnet and path/to/wpf-mcp/server/bin/Debug/net10.0/wpf-mcp.dll.
infragistics.wpf.mcp is not found in NuGet feeds— the command is missing--prerelease(or an exact@0.1.0-beta.1version); see Installation.Settings file 'DotnetToolSettings.xml' was not found in the package— the active .NET SDK is older than 10 (checkdotnet --version; aglobal.jsonin the current folder can pin an older one). Install the .NET 10 SDK.- Which Infragistics version is the data from? The server prints it to stderr on startup:
Infragistics WPF MCP server 0.1.0-beta.1 ready (data: Infragistics 26.1.21, built <date>). Every release regenerates the data from the version pinned innuget/WpfDocs.csproj. - Run the server with
--debug(add it to your MCP client config'sargs, see above) to log every tool call's input/output/timing towpf-mcp.login your system temp folder — useful for reproducing an agent's exact tool-calling sequence after the fact. The exact path is printed to stderr on startup, and can be overridden with theWPF_MCP_LOGenvironment variable.--debugalso turns on the MCP SDK's per-request logging on stderr, which is otherwise limited to warnings and errors. wpf-mcpis not found afterdotnet tool install -g— the global tools folder (%USERPROFILE%\.dotnet\toolson Windows,~/.dotnet/toolselsewhere) is not on thePATHof the process that launches the client. Restart the client, or use the full path ascommand.- A tool call succeeded but the answer looks wrong or a control seems missing — this is usually stale/outdated data from Infragistics' own NuGet package (summaries, base types) rather than a bug in this server. Cross-check against the pinned version above before assuming the MCP itself is at fault.
- A tool returns "no topics found" / "no themes found" for everything on a source build — the data pipeline didn't complete. Re-run
npm run build:alland read the output; it either reports real counts or aborts with a 🚨 banner saying exactly what's missing. Published packages are validated against these counts before release, so this can't happen with a NuGet install.
Build pipeline, data updates, adding tools, versioning and the publish process are documented in DEVELOPMENT.md. The published C# server lives in server/. A TypeScript implementation in src/ reads the same generated data; it is frozen and not published, and newer behavior (such as the get_wpf_api_reference size guard) exists only in the C# server.