Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
99526b0
Initial commit (DH-20954-2)
bmingles Dec 23, 2025
34edaf8
Added missing await to connection (DH-20954-2)
bmingles Nov 13, 2025
53e861b
Filter connections by serverUrl (DH-20954-2)
bmingles Nov 13, 2025
7c378f1
Improved connection / variable listing
bmingles Nov 13, 2025
2e7cf7f
Split out separate MCP tools
bmingles Nov 14, 2025
e293d84
setEditorConnection
bmingles Nov 14, 2025
1ec8be5
Optional connectionurl arg
bmingles Nov 14, 2025
86dc350
Show panels tool
bmingles Nov 14, 2025
c92fa0f
startPipServer
bmingles Nov 14, 2025
6786629
checkPythonEnvironment
bmingles Nov 14, 2025
7d2e1d8
Include connection details in server list
bmingles Nov 14, 2025
44ab9ce
Built and documented a .vsix for experimenting
bmingles Nov 17, 2025
3affd8c
raw .vsix links
bmingles Nov 17, 2025
6b604cf
Give agent errors directly in runCode tool
bmingles Nov 18, 2025
d1ef5ca
Updated link to dev.3.vsix
bmingles Nov 19, 2025
237bd54
Updated mcp doc
bmingles Nov 19, 2025
ba9c3d5
Made connectToServer a little smarter
bmingles Nov 19, 2025
070e3ee
Added agent hint for when labels are passed to runCode
bmingles Nov 19, 2025
bcf5609
addRemoteFileSources tool
bmingles Dec 16, 2025
e78dfe9
openFilesInEditor tool and added hints for missing package folders
bmingles Nov 20, 2025
35cffc8
Added another test script
bmingles Nov 21, 2025
a234e7b
Use VS Code apis for MCP server (DH-20954-2)
bmingles Dec 12, 2025
5cbab41
Fixed package-lock after rebase (DH-20954-2)
bmingles Jan 7, 2026
f748328
Newer MCP apis (DH-20954-2)
bmingles Dec 12, 2025
2e828c0
copy MCP server url (DH-20954-2)
bmingles Dec 12, 2025
4ec1092
Generate additional extension icons from SVGs (DH-20954-2)
bmingles Jan 7, 2026
1698ae0
Persist MCP port in workspace settings and use DH logo in status bar …
bmingles Dec 15, 2025
56fa948
Added some helper config for Windsurf (DH-20954-2)
bmingles Dec 15, 2025
6e15f83
MCP server now supports older SSE clients (DH-20954-2)
bmingles Dec 15, 2025
422a0bf
Auto-configure Windsurf MCP config on server start and refactor confi…
bmingles Dec 15, 2025
f5241d0
Reverted SSE support. Hopefully fixing some flakiness in Copilot (DH-…
bmingles Dec 16, 2025
e1355c7
Latest .vsix (DH-20954-2)
bmingles Dec 23, 2025
d794367
Updated mcp doc (DH-20954-2)
bmingles Dec 16, 2025
0d21d7a
Option to auto update Windsurf mcp port (DH-20954-2)
bmingles Dec 16, 2025
d25ffed
latest vsix (DH-20954-2)
bmingles Dec 23, 2025
0d84760
mpc note (DH-20954-2)
bmingles Dec 16, 2025
96f6923
show output panel and get logs tools (DH-20954-2)
bmingles Dec 20, 2025
492a952
Made uri required and renamed tool (DH-20954-2)
bmingles Dec 22, 2025
c37834f
runCode tool for arbitrary scripts (DH-20954-2)
bmingles Dec 22, 2025
3a7315c
Return 405 for GET request since SSE isn't currently supported (DH-20…
bmingles Dec 22, 2025
791294e
More consistent result handling (DH-20954-2)
bmingles Dec 22, 2025
1c5fa5b
query table tool (DH-20954-2)
bmingles Dec 22, 2025
95e620a
getColumnStats tool (DH-20954-2)
bmingles Dec 23, 2025
b8a33e2
table stats (DH-20954-2)
bmingles Dec 23, 2025
b9f0165
added execution time to all tools (DH-20954-2)
bmingles Dec 23, 2025
853c9a3
Split out McpServerDefinitionProvider (DH-20954-2)
bmingles Dec 23, 2025
2795688
Latest .vsix (DH-20954-2)
bmingles Dec 23, 2025
2c4d87d
renamed .vsix (DH-20954-2)
bmingles Dec 23, 2025
f302c35
fixed link (DH-20954-2)
bmingles Dec 23, 2025
7a94be0
latest package lock (DH-20954-2)
bmingles Jan 7, 2026
925920a
npm audit fix (DH-20954-2)
bmingles Jan 7, 2026
afdd2a0
removed stray comment (DH-20954-2)
bmingles Jan 7, 2026
d1c13c1
Removed ai design doc (DH-20954-2)
bmingles Jan 7, 2026
e052eb5
Removed AI docs (DH-20954-2)
bmingles Jan 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,15 +174,24 @@ rsvg-convert -w 128 -h 128 images/dh-logo-128.svg -o images/dh-logo-128.png
```

## Icon Font Generation
The extension uses an icon font generated from SVGs in `@deephaven/icons`. Running the generator requires a local checkout of web-client-ui.
The extension uses icon fonts generated from SVGs. There are two icon fonts:
1. `dh-ext`: Extension-specific icons from `icons/src`
2. `dh`: Deephaven icons from `@deephaven/icons`

The generator can be run via the following script, where `<path-to-dh-icons-directory>` is the location of `packages/icons/src/icons` in `web-client-ui`.
### Extension Icons
To generate the `dh-ext` icon font from local SVGs in `icons/src`:
```sh
npm run icon:gen -- <path-to-dh-icons-directory>
npm run icon:gen:ext
```

The script will automatically copy `icons/dist/dh-icons.woff2` file to the `/assets` folder of the extension, but the contents of `icons/dist/dh/dh-contributes-icons.json` has to be manually copied to the `package.json` `contributes/icons` section.
> Note: All of the icons should be consumed via the `dh-xxx` icon ids, so no code changes should be necessary unless icons have been renamed or removed.
### Deephaven Icons
Generating the `dh` icon font requires a local checkout of web-client-ui. Run the following where `<path-to-dh-icons-directory>` is the location of `packages/icons/src/icons` in `web-client-ui`:
```sh
npm run icon:gen:dh -- <path-to-dh-icons-directory>
```

The script will automatically copy the `.woff2` files to the `/assets` folder of the extension, but the contents of `icons/dist/dh*/dh*-contributes-icons.json` files need to be manually copied to the `package.json` `contributes/icons` section.
> Note: All of the icons should be consumed via the `dh-xxx` or `dh-ext-xxx` icon ids, so no code changes should be necessary unless icons have been renamed or removed.

## Implementation Notes

Expand Down
Binary file added assets/dh-ext-icons.woff2
Binary file not shown.
Binary file added docs/assets/copilot-mcp-servers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/copilot-mcp-settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
54 changes: 54 additions & 0 deletions docs/mcp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Deephaven VS Code MCP Server (experimental)

## MCP Tools

The extension provides 17 MCP tools for interacting with Deephaven servers:

### Server & Connection Management
- **connectToServer** - Create a connection to a Deephaven server
- **listConnections** - List all active Deephaven connections
- **listServers** - List all Deephaven servers with optional filtering
- **setEditorConnection** - Set connection for an editor by URI
- **startPipServer** - Start a managed Deephaven pip server

### Code Execution
- **runCode** - Execute arbitrary code text in a Deephaven session
- **runCodeFromUri** - Execute code from a workspace file URI

### Table Operations
- **getColumnStats** - Get statistical information for a table column
- **getTableStats** - Get schema and statistics for a table
- **queryTableData** - Query table data with filters, aggregations, and sorting

### Panel & Variable Management
- **listPanelVariables** - List panel variables for a connection
- **openVariablePanels** - Open variable panels for a connection

### Workspace & File Management
- **addRemoteFileSources** - Add remote file source folders to the workspace
- **openFilesInEditor** - Open files in VS Code editor

### Diagnostics & Utilities
- **checkPythonEnvironment** - Check if Python environment supports Deephaven pip server
- **getLogs** - Get log history from debug output channel
- **showOutputPanel** - Show Deephaven output panel in VS Code

## Installation

For VS Code and Windsurf, you can manually download and install the latest mcp-dev .vsix:

[vscode-deephaven-1.1.10-mcp-dev.0.vsix](https://github.com/deephaven/vscode-deephaven/raw/refs/heads/mcp/releases/vscode-deephaven-1.1.10-mcp-dev.0.vsix)

### VS Code
- Download and install the .vsix
- Restart VS Code
- A toast message should say that Deephaven MCP Server has started
- No need to configure anything. Copilot should now have access to the MCP server

### Windsurf
- Download and install the .vsix
- Restart Windsurf
- Should see a prompt "Your Windsurf MCP config doesn't match this workspace's 'Deephaven VS Code MCP Server'. Update to port XXXXX?"
- Say "yes" for this time or "always" for it to automatically update when you switch windows

> Note Windsurf only supports a global mcp server configuration (`~/.codeium/windsurf/mcp_config.json`), but the extension assigns a unique MCP port to each workspace. This means whenever you switch workspaces, you will be prompted to sync the port again so that Cascade can talk to the correct MCP server.
6 changes: 5 additions & 1 deletion icons/generate.mjs
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
/**
* This script generates an icon font + manifest from a directory of SVG files.
*
* Usage:
* npm run icon:gen:ext # Generate dh-ext icons from icons/src
* npm run icon:gen:dh -- <path-to-dh-icons-dir> # Generate dh icons from @deephaven/icons
*
* npm run icon:gen -- <path-to-icons-directory>
* If running the script directly, both prefix and path are required:
* node icons/generate.mjs <prefix> <path-to-icons-directory>
*/

/* eslint-disable no-console */
Expand Down
14 changes: 14 additions & 0 deletions icons/src/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading