Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

StockSharp DesktopDriver

NUGET · STOCKSHARP.DESKTOPDRIVER.MCP

Inspect and drive Avalonia, WPF and MAUI desktop applications through local MCP.

+3 this week 76 Trust /100

Last scanned (19 hours ago)

Scores higher than 55% of NuGet servers

Category Browser Automation

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency32
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Build provenance not yet verified. View diagnostics → Unverified
  • Licence could not be checked: the licence is shipped as a file inside the package, not declared as a standard (SPDX) licence identifier, so we cannot tell whether it is OSI-approved.Unverified
  • Actively maintained (last published 8 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability66
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4148 tokens (~133/item across 31 items; 31 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 31 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 31 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 24 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 21 Oct 26 +4
    • Stability: unverified → 0.23 ▲ functional
  • 14 Oct 26 +30
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • First check of Schema quality: fail functional
    • First check of Destructive annotations: pass functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: good functional
    • First check of Tool coverage: 100 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed nuget/StockSharp.DesktopDriver.Mcp@1.0.1

Provenance Inconclusive

We could not complete the check, so nothing is claimed either way. This is a gap on our side, not a finding about the package.

Result Inconclusive
Ecosystem nuget
Reason Signature present, unverified

Signer

Signed as Repository signature, names nuget.org
Subject CN=NuGet.org Repository by Microsoft,O=NuGet.org Repository by Microsoft,L=Redmond,ST=Washington,C=US
Issuer CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1,O=DigiCert\, Inc.,C=US
Valid from 23 Feb 2024
Valid until 18 May 2027
Service index https://api.nuget.org/v3/index.json
Owners StockSharp

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

Registry declarations For information only

What the registry and the package's own manifest say about this version. The publisher or the registry writes these, nothing here is verified, and none of it affects the score.

Repository https://github.com/StockSharp/DesktopDriver.Mcp
Repository type git
Commit a5e10d1c1165cbe39027c3845dae860118434805
Project URL https://stocksharp.com/
MCP tools · 31 exposed · ~4,148 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
ui_action_status ~68

What became of an input already sent, by the action identifier its receipt carried. Worth asking when a send failed on the way back and it is not clear whether it happened.

NameTypeReqDescription
actionIdstringyesThe action identifier from an earlier receipt.
instancestringyesWhich instance.

No output schema declared.

No examples provided.

ui_attach_application ~69

Connects to an application somebody else started with --ui-automation. Needs the endpoint file it wrote. The local channel is restricted to the current OS user. An application attached to this way is never closed by ui_release_application.

NameTypeReqDescription
endpointFilestringyesThe endpoint file the application wrote.

No output schema declared.

No examples provided.

ui_bring_into_view ~351

Brings a part of a control onto the screen so that it can be clicked - a row far down a table, a tab scrolled off the strip. A grid builds visuals only for what it is showing, so a row a thousand down has nothing to click until this has run. Afterwards look the part up again by its key: everything on screen has moved. This uses the control's own positioning and sends no input, so it proves nothing about whether scrolling works.

NameTypeReqDescription
annotationIdstring–Which annotation, for chartAnnotation.
columnIdstring–Which column, for gridHeader, gridCell and gridCellControl.
controlNamestring–The name of the control inside the cell, the tree item or the property's editor, for gridCellControl, treeItemControl and propertyValueControl.
instancestringyesWhich instance.
itemIndexinteger|null–The item's position in the list, from 0, for listItem.
itemKeystring–The item's path through the tree, for treeItem and treeItemControl.
nodestringyesWhich node, as scope/identifier.
panelIdstring–Which panel, for dockTab and dockClose.
partstring–Which part: gridHeader, gridCell, gridCellControl, propertyValue, propertyValueControl, listItem, treeItem, treeItemControl, dockTab, dockClose or chartAnnotation.
propertyPathstring–The property's path on the object the editor shows, for propertyValue and propertyValueControl.
rowKeystring–Which row, for gridCell and gridCellControl.

No output schema declared.

No examples provided.

ui_chart_points ~183

The points of one series, as they were drawn. A period or a starting point narrows the answer, which matters on a chart holding thousands of candles. Times are UTC.

NameTypeReqDescription
fromInclusivestring|null–From this UTC time, as 2026-01-02T10:00:00Z.
instancestringyesWhich instance.
limitinteger–How many to answer with; 50 by default.
nodestringyesThe chart, as scope/identifier.
pointKeysstring–Only these points, by key, separated by commas.
seriesIdstringyesWhich series, from ui_chart_series.
startIndexinteger–Start at this point number; from the beginning when negative.
toExclusivestring|null–Up to but not including this UTC time.

No output schema declared.

No examples provided.

ui_chart_series ~98

The series a chart is drawing: what each is, which area it is in, how many points it holds and what it is drawn with. Read this first — the series identifiers it answers with are what names a series to ui_chart_points.

NameTypeReqDescription
instancestringyesWhich instance.
limitinteger–How many to answer with; 50 by default.
nodestringyesThe chart, as scope/identifier.

No output schema declared.

No examples provided.

ui_click ~349

Clicks a node, or a part of one: a column header, a cell, a panel's tab or its close button. Answers with a receipt saying what became of the click. It being delivered does not mean the application did what was hoped — check that with ui_snapshot or ui_wait.

NameTypeReqDescription
annotationIdstring–Which annotation, for chartAnnotation.
buttonstring–Left, Middle or Right.
columnIdstring–Which column, for gridHeader, gridCell and gridCellControl.
controlNamestring–The name of the control inside the cell, the tree item or the property's editor, for gridCellControl, treeItemControl and propertyValueControl.
countinteger–How many clicks; 2 for a double click. 1 by default.
instancestringyesWhich instance.
itemIndexinteger|null–The item's position in the list, from 0, for listItem.
itemKeystring–The item's path through the tree, for treeItem and treeItemControl.
nodestringyesWhich node, as scope/identifier.
panelIdstring–Which panel, for dockTab and dockClose.
partstring–A part of it: gridHeader, gridCell, gridCellControl, propertyValue, propertyValueControl, listItem, treeItem, treeItemControl, dockTab, dockClose or chartAnnotation.
propertyPathstring–The property's path on the object the editor shows, for propertyValue and propertyValueControl.
rowKeystring–Which row, for gridCell and gridCellControl.

No output schema declared.

No examples provided.

ui_diagnostics ~135

What the automation module itself has recorded — refusals, things it could not read, input it could not deliver — newest last, with a cursor to carry on from. Worth reading when a tool answered something surprising and the reason is not in the answer.

NameTypeReqDescription
actionIdstring–Only entries about this action.
afterCursorstring–Carry on from this cursor; from the beginning when empty.
instancestringyesWhich instance.
limitinteger–How many to answer with; 100 by default.
nodestring–Only entries about this node, as scope/identifier.

No output schema declared.

No examples provided.

ui_diagram_connections ~139

The connections a diagram routed between its blocks: which socket of which block each leaves and reaches, and the polyline it was actually drawn as. Name a block to read only what touches it. A connection the composition holds but nothing drew has no route, and says so.

NameTypeReqDescription
instancestringyesWhich instance.
keysstring–Only these connections, by key, separated by commas.
limitinteger–How many to answer with; 50 by default.
nodestringyesThe diagram, as scope/identifier.
nodeKeystring–Only connections touching this block, by its key.

No output schema declared.

No examples provided.

ui_diagram_nodes ~109

The blocks a diagram drew: what each is, what its caption reads as, whether it is selected and where it was drawn. The keys it answers with are what names a block to ui_diagram_connections.

NameTypeReqDescription
instancestringyesWhich instance.
keysstring–Only these blocks, by key, separated by commas.
limitinteger–How many to answer with; 50 by default.
nodestringyesThe diagram, as scope/identifier.

No output schema declared.

No examples provided.

ui_dock_layout ~119

How a workspace is arranged: its panels, the tab groups they sit in, which one of each is on top, what is floating and how the space is divided. A panel's address from here is what the reading tools take.

NameTypeReqDescription
instancestringyesWhich instance.
maxDepthinteger–How deep to go; 4 by default.
nodestringyesThe workspace, as scope/identifier.
rootLayoutIdstring–Only this part of the layout; the whole of it when empty.

No output schema declared.

No examples provided.

ui_document_content ~143

The lines of a document, numbered from one. ui_snapshot on the same node gives the language, the line and character counts, where the caret is, how much is selected and anything the editor is complaining about. The text is what the editor is showing, not what was bound into it: an editor that was given text and failed to show it reads as empty here, which is the point.

NameTypeReqDescription
fromLineinteger–Start at this line, counting from one.
instancestringyesWhich instance.
limitinteger–How many lines; 50 by default.
nodestringyesThe document, as scope/identifier.

No output schema declared.

No examples provided.

ui_find ~174

Finds nodes by what they are or what they are called. At least one of the conditions has to be given; they all have to match. Answers with addresses to pass to the reading and driving tools. Kinds are words such as grid, chart, orderBook, propertyEditor, workspace, button, textBox.

NameTypeReqDescription
automationIdstring–The node's automation identifier, when it has one.
instancestringyesWhich instance.
kindstring–What kind of control it is.
limitinteger–How many to answer with; 50 by default.
namestring–What it is called.
scopestring–Only inside this scope.
surfacestring–Only inside this window or popup.
textstring–Text it shows.

No output schema declared.

No examples provided.

ui_grid_columns ~112

The columns of a table: what each is called, whether it is on show, how wide it is and how it is sorted. Read this first — the column identifiers it answers with are what names a cell.

NameTypeReqDescription
columnsstring–Only these columns, separated by commas; all of them when empty.
instancestringyesWhich instance.
limitinteger–How many to answer with; 50 by default.
nodestringyesThe table, as scope/identifier.

No output schema declared.

No examples provided.

ui_grid_groups ~100

The groups a table is grouped into, with the count and the aggregates of each, and whether it is open. Naming a group answers with the groups inside it.

NameTypeReqDescription
instancestringyesWhich instance.
limitinteger–How many to answer with; 50 by default.
nodestringyesThe table, as scope/identifier.
parentGroupIdstring–Inside this group; the top level when empty.

No output schema declared.

No examples provided.

ui_grid_rows ~180

The rows of a table, as the table itself has them after sorting, filtering and grouping. viewData reads what the table holds; viewport reads only the rows drawn on screen right now. Naming rows or columns narrows the answer, which matters: a wide table is a lot of cells.

NameTypeReqDescription
columnsstring–Only these columns, separated by commas.
instancestringyesWhich instance.
limitinteger–How many rows to answer with; 50 by default.
modestring–viewData for what the table holds, viewport for what is drawn.
nodestringyesThe table, as scope/identifier.
rowKeysstring–Only these rows, by key, separated by commas.
startIndexinteger–Start at this row number; from the beginning when negative.

No output schema declared.

No examples provided.

ui_list_applications ~68

Lists the applications this machine can drive and the ones already running. Start here: every other tool names an application by the instance reported in runningAs. An application that is not built cannot be started; it has to be built with the driver in it, which is usually a separate build.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

ui_order_book_levels ~132

The levels an order book is showing, keyed by side and price, as bid@100.5 or ask@100.7. Naming a side answers with only that half. ui_snapshot on the same node gives the best prices, the spread, the totals per side and whether the book is crossed.

NameTypeReqDescription
instancestringyesWhich instance.
limitinteger–How many to answer with; 50 by default.
nodestringyesThe order book, as scope/identifier.
sidestring|null–Only one side: Bid or Ask; both when not given.

No output schema declared.

No examples provided.

ui_press_key ~129

Presses one key at a node, optionally with modifiers. Keys are named as Avalonia names them: Enter, Escape, Tab, Delete, Back, Up, Down, Left, Right, Home, End, PageUp, PageDown, F1 to F12, A to Z, D0 to D9.

NameTypeReqDescription
instancestringyesWhich instance.
keystringyesWhich key.
modifiersstring–Held down with it: Shift, Control, Alt, Meta, separated by commas.
nodestringyesWhich node, as scope/identifier.

No output schema declared.

No examples provided.

ui_property_items ~136

The properties a property editor is showing, each by its path on the object, with its value, the text on screen, what kind of editor it calls for, and anything the editor is refusing. A property nobody has opened has no properties of its own yet: opening one is something a person does, and a read will not do it.

NameTypeReqDescription
instancestringyesWhich instance.
limitinteger–How many to answer with; 50 by default.
nodestringyesThe property editor, as scope/identifier.
pathsstring–Only these properties, by path, separated by commas.

No output schema declared.

No examples provided.

ui_release_application ~59

Lets go of an application. One this server started is closed; one it only attached to is left running, because closing it would close a window its owner is working in.

NameTypeReqDescription
instancestringyesWhich instance, from ui_list_applications.

No output schema declared.

No examples provided.

ui_screenshot ~156

Takes a picture of a node and writes it to a file, answering with the file's path and the picture's details. Use ui_screenshot_image when the picture itself is needed rather than the file. To check what a control holds, read it instead — a picture cannot be compared reliably.

NameTypeReqDescription
captureKindstring–controlRender, windowCapture or screenCapture; controlRender by default.
instancestringyesWhich instance.
maxPixelHeightinteger–Refuse rather than take a picture taller than this, in pixels.
maxPixelWidthinteger–Refuse rather than take a picture wider than this, in pixels.
nodestringyesWhich node, as scope/identifier.

No output schema declared.

No examples provided.

ui_screenshot_image ~157

Takes a picture of a node and answers with the image itself, to be looked at. The whole image travels back, so aim it at the control in question rather than at a whole window. A size limit refuses an oversized picture rather than shrinking it: a shrunk picture cannot be measured.

NameTypeReqDescription
captureKindstring–controlRender, windowCapture or screenCapture; controlRender by default.
instancestringyesWhich instance.
maxPixelHeightinteger–Refuse rather than take a picture taller than this, in pixels.
maxPixelWidthinteger–Refuse rather than take a picture wider than this, in pixels.
nodestringyesWhich node, as scope/identifier.

No output schema declared.

No examples provided.

ui_scroll ~80

Scrolls a node. Distances are in wheel notches; negative scrolls down and right.

NameTypeReqDescription
deltaXnumber–Sideways, in notches.
deltaYnumber–Up and down, in notches.
instancestringyesWhich instance.
nodestringyesWhich node, as scope/identifier.

No output schema declared.

No examples provided.

ui_session ~58

What an instance is and what it can do: the product and its version, the fixture it was started with, whether the outside world has been replaced, how input is sent and the default read budget.

NameTypeReqDescription
instancestringyesWhich instance.

No output schema declared.

No examples provided.

ui_snapshot ~91

Everything one node has to say about itself: whether it is there, enabled, visible and focused, where it is, and the state its own kind defines — a grid's counts and sort, a chart's ranges, a book's best prices. Use this to check what a click actually did.

NameTypeReqDescription
instancestringyesWhich instance.
nodestringyesWhich node, as scope/identifier.

No output schema declared.

No examples provided.

ui_start_application ~78

Starts one of the applications from ui_list_applications and waits until its window is drawn and it can be driven. Answers with the instance to pass to every other tool. Starting the same application twice gives two instances, and the second is named with a #2.

NameTypeReqDescription
appIdstringyesWhich application, from ui_list_applications.

No output schema declared.

No examples provided.

ui_tree ~134

The tree of nodes under one node, or under the whole application when no node is given. Bounded by depth and count; the answer says when it was cut short. Reading never changes what it reads: it does not open a panel that has never been shown or expand a property that is closed.

NameTypeReqDescription
instancestringyesWhich instance.
maxDepthinteger–How deep to go; 4 by default.
maxNodesinteger–How many nodes at most; 200 by default.
nodestring–Where to start, as scope/identifier; the whole application when empty.

No output schema declared.

No examples provided.

ui_tree_items ~147

The items a tree is showing, each by its path, with its text and whether it is open and selected. An item nobody has opened has nothing inside it yet: opening one is something a person does, and a read will not do it. Name a parent to read only what is directly inside it.

NameTypeReqDescription
instancestringyesWhich instance.
keysstring–Only these items, by path, separated by commas.
limitinteger–How many to answer with; 50 by default.
nodestringyesThe tree, as scope/identifier.
parentKeystring–Only what is directly inside this item, by its path.

No output schema declared.

No examples provided.

ui_type_text ~92

Types text into a node. Append adds to what is there; Replace clears it first. The text is typed as characters, so the application's own input handling runs exactly as it would for a person.

NameTypeReqDescription
instancestringyesWhich instance.
modestring–Append or Replace.
nodestringyesWhich node, as scope/identifier.
textstringyesWhat to type.

No output schema declared.

No examples provided.

ui_wait ~254

Waits until a node satisfies a condition, or until the time runs out. Either that the node is there or is not, or that one of the fields ui_snapshot reports compares as asked. The field is named by its path in that answer, such as rowCount or bestBidPrice. Say which kind the value is: guessing between a price and a label gets it wrong silently and the wait simply times out.

NameTypeReqDescription
comparisonstring–How to compare: Equal, NotEqual, Greater, GreaterOrEqual, Less, LessOrEqual, Contains.
expectedToExistboolean–When no field is given: true to wait for the node to be there, false for it to be gone.
fieldstring–A field from ui_snapshot; leave empty to wait for the node itself.
instancestringyesWhich instance.
nodestringyesWhich node, as scope/identifier.
timeoutSecondsinteger–How long to wait, in seconds; 10 by default.
valuestring–What to compare against.
valueKindstring–What kind it is: string, boolean, int64, decimal, double, timestamp, null.

No output schema declared.

No examples provided.

ui_windows ~48

The windows and popups an application has open, each with the address of its root node. Use this to find out where to look before searching inside.

NameTypeReqDescription
instancestringyesWhich instance.

No output schema declared.

No examples provided.

Install

How do I install the StockSharp DesktopDriver MCP server?

StockSharp DesktopDriver runs locally as a NuGet package, launched with dnx StockSharp.DesktopDriver.Mcp@1.0.1 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

nuget · StockSharp.DesktopDriver.Mcp

# add to Claude Code
claude mcp add stocksharp-desktop-driver -- dnx StockSharp.DesktopDriver.Mcp@1.0.1 --yes
Common questions

What is the StockSharp DesktopDriver MCP server?

StockSharp DesktopDriver is an MCP server listed in the public MCP registry as io.github.StockSharp/desktop-driver. Inspect and drive Avalonia, WPF and MAUI desktop applications through local MCP. This page covers its NuGet package (StockSharp.DesktopDriver.Mcp).

Is the StockSharp DesktopDriver MCP server safe to use?

StockSharp DesktopDriver scores 76 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the StockSharp DesktopDriver MCP server expose?

StockSharp DesktopDriver exposes 31 tools: ui_snapshot, ui_windows, ui_wait, ui_tree_items, ui_document_content, and 26 more. Their descriptions and schemas cost roughly 4,148 tokens of context every time the server is loaded.

Is the StockSharp DesktopDriver MCP server still maintained?

StockSharp DesktopDriver is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.