diff --git a/.changeset/whole-comics-switch.md b/.changeset/whole-comics-switch.md new file mode 100644 index 0000000..45e5639 --- /dev/null +++ b/.changeset/whole-comics-switch.md @@ -0,0 +1,5 @@ +--- +"google-workspace-developer-tools": minor +--- + +Register Google Workspace Developer MCP Server in extension. diff --git a/package.json b/package.json index d3efdee..74b47fc 100644 --- a/package.json +++ b/package.json @@ -36,5 +36,10 @@ "prettier --write" ] }, - "packageManager": "pnpm@10.18.1+sha512.77a884a165cbba2d8d1c19e3b4880eee6d2fcabd0d879121e282196b80042351d5eb3ca0935fa599da1dc51265cc68816ad2bddd2a2de5ea9fdf92adbec7cd34" -} + "packageManager": "pnpm@10.18.1+sha512.77a884a165cbba2d8d1c19e3b4880eee6d2fcabd0d879121e282196b80042351d5eb3ca0935fa599da1dc51265cc68816ad2bddd2a2de5ea9fdf92adbec7cd34", + "pnpm": { + "overrides": { + "@types/vscode": "^1.82.0" + } + } +} \ No newline at end of file diff --git a/packages/vscode-extension/package.json b/packages/vscode-extension/package.json index f89e615..a110608 100644 --- a/packages/vscode-extension/package.json +++ b/packages/vscode-extension/package.json @@ -40,7 +40,12 @@ "type": "module", "main": "./out/extension.cjs", "contributes": { - "commands": [] + "mcpServerDefinitionProviders": [ + { + "id": "google-workspace-developer", + "label": "Google Workspace Developer" + } + ] }, "activationEvents": [ "onStartupFinished" diff --git a/packages/vscode-extension/src/extension.ts b/packages/vscode-extension/src/extension.ts index 9947748..2397241 100644 --- a/packages/vscode-extension/src/extension.ts +++ b/packages/vscode-extension/src/extension.ts @@ -18,6 +18,29 @@ import * as vscode from "vscode"; import { SCOPES, ScopeClassification, getScopeMarkdown } from "./scopes.js"; export function activate(context: vscode.ExtensionContext) { + if (vscode.lm.registerMcpServerDefinitionProvider) { + context.subscriptions.push( + vscode.lm?.registerMcpServerDefinitionProvider( + "google-workspace-developer", + { + provideMcpServerDefinitions: async () => { + return [ + new vscode.McpHttpServerDefinition( + "google-workspace-developer", + vscode.Uri.parse("https://workspace-developer.goog/mcp"), + ), + ]; + }, + resolveMcpServerDefinition: async ( + server: vscode.McpServerDefinition, + ) => { + return server; + }, + }, + ), + ); + } + const scopeHoverProvider = vscode.languages.registerHoverProvider( { scheme: "file" }, { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index de6b6c9..6a92e79 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,6 +58,9 @@ catalogs: specifier: ^5.9.3 version: 5.9.3 +overrides: + '@types/vscode': ^1.82.0 + importers: .: @@ -93,7 +96,7 @@ importers: specifier: 'catalog:' version: 20.19.19 '@types/vscode': - specifier: ^1.50.0 + specifier: ^1.82.0 version: 1.104.0 '@vscode/test-cli': specifier: 'catalog:'