Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Inspect and drive Avalonia, WPF and MAUI desktop applications through local MCP.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
STOCKSHARP_UI_CATALOGUE, STOCKSHARP_UI_ARTIFACTS¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"desktop-driver": {
"command": "dnx",
"args": [
"StockSharp.DesktopDriver.Mcp",
"--yes"
],
"env": {
"STOCKSHARP_UI_CATALOGUE": "your-value",
"STOCKSHARP_UI_ARTIFACTS": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add desktop-driver --env STOCKSHARP_UI_CATALOGUE=your-value --env STOCKSHARP_UI_ARTIFACTS=your-value -- dnx StockSharp.DesktopDriver.Mcp --yesCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"desktop-driver": {
"command": "dnx",
"args": [
"StockSharp.DesktopDriver.Mcp",
"--yes"
],
"env": {
"STOCKSHARP_UI_CATALOGUE": "your-value",
"STOCKSHARP_UI_ARTIFACTS": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"desktop-driver": {
"type": "stdio",
"command": "dnx",
"args": [
"StockSharp.DesktopDriver.Mcp",
"--yes"
],
"env": {
"STOCKSHARP_UI_CATALOGUE": "your-value",
"STOCKSHARP_UI_ARTIFACTS": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub StockSharp, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: STOCKSHARP_UI_CATALOGUE, STOCKSHARP_UI_ARTIFACTS
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (1.0.1) llegó al registro hace 29 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas .NET en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, LexPact UK Contracts
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Generate UK-law contracts: NDA, service, freelance, recruiter terms of business, IR35.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Drive desktop applications built on Avalonia, WPF or MAUI from tests, from a command line, or from an AI agent over MCP.
DesktopDriver reads the interface, not the screen. A table answers with its columns and rows, a tree with its items, a workspace with its panels - in words that do not change with a theme, a font or a language. Input goes through the toolkit's own pipeline, and only into a run that cannot reach anything real. Pictures are there for a person to look at; tests check what the controls say.
--ui-automation, it opens a local named-pipe endpoint restricted to the current OS user, and writes where the endpoint is to the file named by --ui-automation-endpoint= .Install the CLI or MCP server with the .NET 10 SDK:
dotnet tool install StockSharp.DesktopDriver.Cli --tool-path tools
dotnet tool install StockSharp.DesktopDriver.Mcp --tool-path tools
The commands are tools/desktop-driver and tools/desktop-driver-mcp. To add automation to an application, reference the bootstrap package for its toolkit. To drive it from code, use the client, runner and testing packages.
For MCP Registry publication and Claude Desktop extensions, see MCP distribution.
| Package | What it is |
|---|---|
| StockSharp.DesktopDriver.Contracts | The protocol: requests, answers, states, addresses |
| StockSharp.DesktopDriver.Runtime | Reading, identity, revisions and waiting, independent of any toolkit |
| StockSharp.DesktopDriver.Host | The endpoint inside the application, and UiAutomationLaunch to read how it was started |
| StockSharp.DesktopDriver.Client | The typed client every runner talks through |
| StockSharp.DesktopDriver.Runner | Starts, finds and reaches applications; the catalogue of what may be started |
| StockSharp.DesktopDriver.Testing | What an MSTest suite needs on top of the runner |
| StockSharp.DesktopDriver.Cli | The command line |
| StockSharp.DesktopDriver.Mcp | The MCP server, see its README |
| StockSharp.DesktopDriver.Avalonia | Avalonia: reading, input and pictures of the standard controls |
| StockSharp.DesktopDriver.Avalonia.ProDataGrid | Avalonia: the DataGrid from ProDataGrid, read as a table |
| StockSharp.DesktopDriver.Avalonia.Dock | Avalonia: a Dock.Avalonia workspace, read as panels and groups |
| StockSharp.DesktopDriver.Avalonia.Headless | Avalonia: input for headless tests |
| StockSharp.DesktopDriver.Bootstrap.Avalonia | Avalonia: one call that makes an application drivable |
| StockSharp.DesktopDriver.Wpf | WPF: reading, input and pictures of the standard controls |
| StockSharp.DesktopDriver.Bootstrap.Wpf | WPF: one call that makes an application drivable |
| StockSharp.DesktopDriver.Maui | MAUI: reading, input and pictures of the standard controls |
| StockSharp.DesktopDriver.Bootstrap.Maui | MAUI on Windows: one call that makes an application drivable |
Avalonia, once the main window exists (the sample does the same with the grid module alone):
public override void OnFrameworkInitializationCompleted()
{ if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { desktop.MainWindow = new MainWindow();
if (UiAutomationLaunch.TryRead(desktop.Args) is { } launch) { _automation = AvaloniaAutomationBootstrap.Start( UiAutomationStartup.For("my.app", version, fixtureId: null, hasLiveOutsideWorld: false, isTestProfile: false), launch.EndpointFile, [binder => new DataGridAutomationModule(binder), binder => new DockAutomationModule(binder)]); } }
base.OnFrameworkInitializationCompleted(); }
Dispose the returned runtime when the application exits. WpfAutomationBootstrap and MauiAutomationBootstrap take the same arguments.
The sample applications show startup and shutdown for all three toolkits. The WPF and MAUI Windows samples also have tests that start their executables, connect over the local pipe, read their controls, send input and retrieve screenshots.
UiAutomationStartup.For decides whether input is allowed. An application that talks to nothing outside its own process is always safe to click through. One that connects to something real - a broker, a store, a service - is safe only when it was started on a test profile that replaces it; otherwise the endpoint still reads, but every input is refused.
Many applications ship two builds: an ordinary one with no driver in it, and one made to be driven. The driver is only referenced by the second, so the first has nothing listening by construction.
From a test:
await using var app = await DrivenApplication.StartAsync(executable, extraArguments: null, TimeSpan.FromSeconds(60), cancellationToken);
await using var client = await app.ConnectAsync("my.app", cancellationToken);
var windows = await client.GetSurfacesAsync(cancellationToken);
From a command line, against an application somebody started with --ui-automation:
tools/desktop-driver find --endpoint endpoint.json --kind grid
tools/desktop-driver grid-rows --endpoint endpoint.json --node window:MainWindow/Instruments --limit 5
desktop-driver with no arguments prints every operation.
From an agent: register the MCP server, see DesktopDriver.Mcp.
Its MCP name is StockSharp.DesktopDriver, and its display title is StockSharp DesktopDriver.
dotnet build DesktopDriver.slnx
dotnet test DesktopDriver.Runtime.Tests --filter "FullyQualifiedName~Revision"
The MAUI projects need the MAUI Windows workload. MCP application tests, WPF screenshot tests and DesktopDriver.Windows.Tests need an interactive Windows desktop session. Run the filtered suites with hang and session timeouts using ./.github/scripts/Test.ps1 -Suite Headless or -Suite Desktop after a Release build.
dotnet pack DesktopDriver.slnx -c Release -o artifacts/packages
A product checked out beside this repository can reference the projects themselves:
<ProjectReference Include="..\DesktopDriver.Mcp\DesktopDriver.Bootstrap.Avalonia\DesktopDriver.Bootstrap.Avalonia.csproj" />
A product that builds a second, drivable copy of itself by passing a property on the command line adds GlobalPropertiesToRemove=" " to the reference: the driver has no build of its own for it, and would otherwise be built twice into the same folder.
See LICENSE.