# StockSharp DesktopDriver (nuget · StockSharp.DesktopDriver.Mcp)

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

- Trust score: 77/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- nuget · `StockSharp.DesktopDriver.Mcp`: 77/100 (this document), [markdown](https://verifymcp.io/servers/stocksharp-desktop-driver/stocksharp-desktopdriver-mcp.md), [page](https://verifymcp.io/servers/stocksharp-desktop-driver/stocksharp-desktopdriver-mcp)

## Channel facts

- Registry: `nuget`
- Package: `StockSharp.DesktopDriver.Mcp`
- Version: `1.0.1`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Build provenance not yet verified.
  - 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.
  - Actively maintained (last published 9 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (good).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 73/100
  - Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 31 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 31 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## 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.

### Claude

```bash
claude mcp add stocksharp-desktop-driver -- dnx StockSharp.DesktopDriver.Mcp@1.0.1 --yes
```

### Cursor

```json
{
  "mcpServers": {
    "stocksharp-desktop-driver": {
      "command": "dnx",
      "args": [
        "StockSharp.DesktopDriver.Mcp@1.0.1",
        "--yes"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "stocksharp-desktop-driver": {
      "command": "dnx",
      "args": [
        "StockSharp.DesktopDriver.Mcp@1.0.1",
        "--yes"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add stocksharp-desktop-driver -- dnx StockSharp.DesktopDriver.Mcp@1.0.1 --yes
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "stocksharp-desktop-driver": {
      "type": "local",
      "command": [
        "dnx",
        "StockSharp.DesktopDriver.Mcp@1.0.1",
        "--yes"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  stocksharp-desktop-driver:
    command: "dnx"
    args: ["StockSharp.DesktopDriver.Mcp@1.0.1", "--yes"]
```

### Netclaw

```json
{
  "McpServers": {
    "stocksharp-desktop-driver": {
      "Transport": "stdio",
      "Command": "dnx",
      "Arguments": [
        "StockSharp.DesktopDriver.Mcp@1.0.1",
        "--yes"
      ]
    }
  }
}
```

### Other

```json
{
  "mcpServers": {
    "stocksharp-desktop-driver": {
      "command": "dnx",
      "args": [
        "StockSharp.DesktopDriver.Mcp@1.0.1",
        "--yes"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 77, +1)

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

### 2026-11-03 (score 76, +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.

### 2026-11-01 (score 75, +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.

### 2026-10-30 (score 74, +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.

### 2026-10-28 (score 73, +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.

### 2026-10-26 (score 72, +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.

### 2026-10-24 (score 71, +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.

### 2026-10-21 (score 70, +4)

- [functional improvement] Stability: unverified → 0.23

## MCP tools (31)

### `ui_snapshot` (~91 tokens)

One node's state

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.

Input parameters:

- `instance` (string, required): Which instance.
- `node` (string, required): Which node, as scope/identifier.

### `ui_windows` (~48 tokens)

Windows on screen

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.

Input parameters:

- `instance` (string, required): Which instance.

### `ui_wait` (~254 tokens)

Wait for something to happen

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.

Input parameters:

- `comparison` (string): How to compare: Equal, NotEqual, Greater, GreaterOrEqual, Less, LessOrEqual, Contains.
- `expectedToExist` (boolean): When no field is given: true to wait for the node to be there, false for it to be gone.
- `field` (string): A field from ui_snapshot; leave empty to wait for the node itself.
- `instance` (string, required): Which instance.
- `node` (string, required): Which node, as scope/identifier.
- `timeoutSeconds` (integer): How long to wait, in seconds; 10 by default.
- `value` (string): What to compare against.
- `valueKind` (string): What kind it is: string, boolean, int64, decimal, double, timestamp, null.

### `ui_tree_items` (~147 tokens)

A tree's items

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.

Input parameters:

- `instance` (string, required): Which instance.
- `keys` (string): Only these items, by path, separated by commas.
- `limit` (integer): How many to answer with; 50 by default.
- `node` (string, required): The tree, as scope/identifier.
- `parentKey` (string): Only what is directly inside this item, by its path.

### `ui_document_content` (~143 tokens)

A document's text

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.

Input parameters:

- `fromLine` (integer): Start at this line, counting from one.
- `instance` (string, required): Which instance.
- `limit` (integer): How many lines; 50 by default.
- `node` (string, required): The document, as scope/identifier.

### `ui_start_application` (~78 tokens)

Start an application

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.

Input parameters:

- `appId` (string, required): Which application, from ui_list_applications.

### `ui_bring_into_view` (~351 tokens)

Bring a part onto the screen

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.

Input parameters:

- `annotationId` (string): Which annotation, for chartAnnotation.
- `columnId` (string): Which column, for gridHeader, gridCell and gridCellControl.
- `controlName` (string): The name of the control inside the cell, the tree item or the property's editor, for gridCellControl, treeItemControl and propertyValueControl.
- `instance` (string, required): Which instance.
- `itemIndex` (integer|null): The item's position in the list, from 0, for listItem.
- `itemKey` (string): The item's path through the tree, for treeItem and treeItemControl.
- `node` (string, required): Which node, as scope/identifier.
- `panelId` (string): Which panel, for dockTab and dockClose.
- `part` (string): Which part: gridHeader, gridCell, gridCellControl, propertyValue, propertyValueControl, listItem, treeItem, treeItemControl, dockTab, dockClose or chartAnnotation.
- `propertyPath` (string): The property's path on the object the editor shows, for propertyValue and propertyValueControl.
- `rowKey` (string): Which row, for gridCell and gridCellControl.

### `ui_release_application` (~59 tokens)

Let go of an application

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.

Input parameters:

- `instance` (string, required): Which instance, from ui_list_applications.

### `ui_grid_rows` (~180 tokens)

A table's rows

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.

Input parameters:

- `columns` (string): Only these columns, separated by commas.
- `instance` (string, required): Which instance.
- `limit` (integer): How many rows to answer with; 50 by default.
- `mode` (string): viewData for what the table holds, viewport for what is drawn.
- `node` (string, required): The table, as scope/identifier.
- `rowKeys` (string): Only these rows, by key, separated by commas.
- `startIndex` (integer): Start at this row number; from the beginning when negative.

### `ui_screenshot_image` (~157 tokens)

Take a picture and show it

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.

Input parameters:

- `captureKind` (string): controlRender, windowCapture or screenCapture; controlRender by default.
- `instance` (string, required): Which instance.
- `maxPixelHeight` (integer): Refuse rather than take a picture taller than this, in pixels.
- `maxPixelWidth` (integer): Refuse rather than take a picture wider than this, in pixels.
- `node` (string, required): Which node, as scope/identifier.

### `ui_property_items` (~136 tokens)

A property editor's properties

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.

Input parameters:

- `instance` (string, required): Which instance.
- `limit` (integer): How many to answer with; 50 by default.
- `node` (string, required): The property editor, as scope/identifier.
- `paths` (string): Only these properties, by path, separated by commas.

### `ui_diagram_connections` (~139 tokens)

What a diagram joins

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.

Input parameters:

- `instance` (string, required): Which instance.
- `keys` (string): Only these connections, by key, separated by commas.
- `limit` (integer): How many to answer with; 50 by default.
- `node` (string, required): The diagram, as scope/identifier.
- `nodeKey` (string): Only connections touching this block, by its key.

### `ui_order_book_levels` (~132 tokens)

An order book's levels

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.

Input parameters:

- `instance` (string, required): Which instance.
- `limit` (integer): How many to answer with; 50 by default.
- `node` (string, required): The order book, as scope/identifier.
- `side` (string|null): Only one side: Bid or Ask; both when not given.

### `ui_type_text` (~92 tokens)

Type into something

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.

Input parameters:

- `instance` (string, required): Which instance.
- `mode` (string): Append or Replace.
- `node` (string, required): Which node, as scope/identifier.
- `text` (string, required): What to type.

### `ui_attach_application` (~69 tokens)

Attach to a running application

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.

Input parameters:

- `endpointFile` (string, required): The endpoint file the application wrote.

### `ui_click` (~349 tokens)

Click something

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.

Input parameters:

- `annotationId` (string): Which annotation, for chartAnnotation.
- `button` (string): Left, Middle or Right.
- `columnId` (string): Which column, for gridHeader, gridCell and gridCellControl.
- `controlName` (string): The name of the control inside the cell, the tree item or the property's editor, for gridCellControl, treeItemControl and propertyValueControl.
- `count` (integer): How many clicks; 2 for a double click. 1 by default.
- `instance` (string, required): Which instance.
- `itemIndex` (integer|null): The item's position in the list, from 0, for listItem.
- `itemKey` (string): The item's path through the tree, for treeItem and treeItemControl.
- `node` (string, required): Which node, as scope/identifier.
- `panelId` (string): Which panel, for dockTab and dockClose.
- `part` (string): A part of it: gridHeader, gridCell, gridCellControl, propertyValue, propertyValueControl, listItem, treeItem, treeItemControl, dockTab, dockClose or chartAnnotation.
- `propertyPath` (string): The property's path on the object the editor shows, for propertyValue and propertyValueControl.
- `rowKey` (string): Which row, for gridCell and gridCellControl.

### `ui_grid_groups` (~100 tokens)

A table's groups

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.

Input parameters:

- `instance` (string, required): Which instance.
- `limit` (integer): How many to answer with; 50 by default.
- `node` (string, required): The table, as scope/identifier.
- `parentGroupId` (string): Inside this group; the top level when empty.

### `ui_scroll` (~80 tokens)

Scroll something

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

Input parameters:

- `deltaX` (number): Sideways, in notches.
- `deltaY` (number): Up and down, in notches.
- `instance` (string, required): Which instance.
- `node` (string, required): Which node, as scope/identifier.

### `ui_list_applications` (~68 tokens)

List applications

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.

### `ui_tree` (~134 tokens)

The tree of nodes

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.

Input parameters:

- `instance` (string, required): Which instance.
- `maxDepth` (integer): How deep to go; 4 by default.
- `maxNodes` (integer): How many nodes at most; 200 by default.
- `node` (string): Where to start, as scope/identifier; the whole application when empty.

### `ui_grid_columns` (~112 tokens)

A table's columns

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.

Input parameters:

- `columns` (string): Only these columns, separated by commas; all of them when empty.
- `instance` (string, required): Which instance.
- `limit` (integer): How many to answer with; 50 by default.
- `node` (string, required): The table, as scope/identifier.

### `ui_diagnostics` (~135 tokens)

What the module has been saying

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.

Input parameters:

- `actionId` (string): Only entries about this action.
- `afterCursor` (string): Carry on from this cursor; from the beginning when empty.
- `instance` (string, required): Which instance.
- `limit` (integer): How many to answer with; 100 by default.
- `node` (string): Only entries about this node, as scope/identifier.

### `ui_find` (~174 tokens)

Find nodes

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.

Input parameters:

- `automationId` (string): The node's automation identifier, when it has one.
- `instance` (string, required): Which instance.
- `kind` (string): What kind of control it is.
- `limit` (integer): How many to answer with; 50 by default.
- `name` (string): What it is called.
- `scope` (string): Only inside this scope.
- `surface` (string): Only inside this window or popup.
- `text` (string): Text it shows.

### `ui_diagram_nodes` (~109 tokens)

A diagram's blocks

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.

Input parameters:

- `instance` (string, required): Which instance.
- `keys` (string): Only these blocks, by key, separated by commas.
- `limit` (integer): How many to answer with; 50 by default.
- `node` (string, required): The diagram, as scope/identifier.

### `ui_screenshot` (~156 tokens)

Take a picture

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.

Input parameters:

- `captureKind` (string): controlRender, windowCapture or screenCapture; controlRender by default.
- `instance` (string, required): Which instance.
- `maxPixelHeight` (integer): Refuse rather than take a picture taller than this, in pixels.
- `maxPixelWidth` (integer): Refuse rather than take a picture wider than this, in pixels.
- `node` (string, required): Which node, as scope/identifier.

### `ui_press_key` (~129 tokens)

Press a key

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.

Input parameters:

- `instance` (string, required): Which instance.
- `key` (string, required): Which key.
- `modifiers` (string): Held down with it: Shift, Control, Alt, Meta, separated by commas.
- `node` (string, required): Which node, as scope/identifier.

### `ui_dock_layout` (~119 tokens)

A workspace's layout

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.

Input parameters:

- `instance` (string, required): Which instance.
- `maxDepth` (integer): How deep to go; 4 by default.
- `node` (string, required): The workspace, as scope/identifier.
- `rootLayoutId` (string): Only this part of the layout; the whole of it when empty.

### `ui_chart_series` (~98 tokens)

A chart's series

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.

Input parameters:

- `instance` (string, required): Which instance.
- `limit` (integer): How many to answer with; 50 by default.
- `node` (string, required): The chart, as scope/identifier.

### `ui_session` (~58 tokens)

What answered

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.

Input parameters:

- `instance` (string, required): Which instance.

### `ui_action_status` (~68 tokens)

What became of an input

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.

Input parameters:

- `actionId` (string, required): The action identifier from an earlier receipt.
- `instance` (string, required): Which instance.

### `ui_chart_points` (~183 tokens)

A series' points

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.

Input parameters:

- `fromInclusive` (string|null): From this UTC time, as 2026-01-02T10:00:00Z.
- `instance` (string, required): Which instance.
- `limit` (integer): How many to answer with; 50 by default.
- `node` (string, required): The chart, as scope/identifier.
- `pointKeys` (string): Only these points, by key, separated by commas.
- `seriesId` (string, required): Which series, from ui_chart_series.
- `startIndex` (integer): Start at this point number; from the beginning when negative.
- `toExclusive` (string|null): Up to but not including this UTC time.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/stocksharp-desktop-driver/stocksharp-desktopdriver-mcp#diagnostics

## Score history

- 2026-11-05: 77
- 2026-11-04: 76
- 2026-11-03: 76
- 2026-11-02: 75
- 2026-11-01: 75
- 2026-10-31: 74
- 2026-10-30: 74
- 2026-10-29: 73
- 2026-10-28: 73
- 2026-10-27: 72
- 2026-10-26: 72
- 2026-10-25: 71
- 2026-10-24: 71
- 2026-10-23: 70
- 2026-10-22: 70
- 2026-10-21: 70
- 2026-10-20: 66
- 2026-10-19: 66
- 2026-10-18: 66
- 2026-10-17: 66
- 2026-10-16: 66
- 2026-10-15: 66
- 2026-10-14: 66
- 2026-10-13: 36
- 2026-10-12: 36

## 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 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 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 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- NuGet package: https://www.nuget.org/packages/StockSharp.DesktopDriver.Mcp
- Socket report: https://socket.dev/nuget/package/StockSharp.DesktopDriver.Mcp
- Repository: https://github.com/StockSharp/DesktopDriver.Mcp
- Changelog RSS feed: https://verifymcp.io/servers/stocksharp-desktop-driver/stocksharp-desktopdriver-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/stocksharp-desktop-driver/stocksharp-desktopdriver-mcp.json
- HTML version of this page: https://verifymcp.io/servers/stocksharp-desktop-driver/stocksharp-desktopdriver-mcp
