@getmcp/generators 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +105 -0
  3. package/dist/base.d.ts +26 -0
  4. package/dist/base.d.ts.map +1 -0
  5. package/dist/base.js +81 -0
  6. package/dist/base.js.map +1 -0
  7. package/dist/claude-code.d.ts +20 -0
  8. package/dist/claude-code.d.ts.map +1 -0
  9. package/dist/claude-code.js +52 -0
  10. package/dist/claude-code.js.map +1 -0
  11. package/dist/claude-desktop.d.ts +16 -0
  12. package/dist/claude-desktop.d.ts.map +1 -0
  13. package/dist/claude-desktop.js +43 -0
  14. package/dist/claude-desktop.js.map +1 -0
  15. package/dist/cline.d.ts +17 -0
  16. package/dist/cline.d.ts.map +1 -0
  17. package/dist/cline.js +55 -0
  18. package/dist/cline.js.map +1 -0
  19. package/dist/cursor.d.ts +16 -0
  20. package/dist/cursor.d.ts.map +1 -0
  21. package/dist/cursor.js +43 -0
  22. package/dist/cursor.js.map +1 -0
  23. package/dist/goose.d.ts +34 -0
  24. package/dist/goose.d.ts.map +1 -0
  25. package/dist/goose.js +138 -0
  26. package/dist/goose.js.map +1 -0
  27. package/dist/index.d.ts +42 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +79 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/opencode.d.ts +34 -0
  32. package/dist/opencode.d.ts.map +1 -0
  33. package/dist/opencode.js +93 -0
  34. package/dist/opencode.js.map +1 -0
  35. package/dist/roo-code.d.ts +20 -0
  36. package/dist/roo-code.d.ts.map +1 -0
  37. package/dist/roo-code.js +60 -0
  38. package/dist/roo-code.js.map +1 -0
  39. package/dist/vscode.d.ts +19 -0
  40. package/dist/vscode.d.ts.map +1 -0
  41. package/dist/vscode.js +56 -0
  42. package/dist/vscode.js.map +1 -0
  43. package/dist/windsurf.d.ts +19 -0
  44. package/dist/windsurf.d.ts.map +1 -0
  45. package/dist/windsurf.js +52 -0
  46. package/dist/windsurf.js.map +1 -0
  47. package/dist/zed.d.ts +28 -0
  48. package/dist/zed.d.ts.map +1 -0
  49. package/dist/zed.js +60 -0
  50. package/dist/zed.js.map +1 -0
  51. package/package.json +55 -0
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Windsurf config generator.
3
+ *
4
+ * Config file: ~/.codeium/windsurf/mcp_config.json
5
+ * Format: { "mcpServers": { "name": { "command", "args", "env" } } }
6
+ *
7
+ * Key differences from canonical:
8
+ * - Remote HTTP servers use "serverUrl" (not "url")
9
+ * - Supports ${env:VARIABLE_NAME} interpolation
10
+ * - Has MCP Marketplace and admin whitelist controls
11
+ * - Very similar to Claude Desktop for stdio
12
+ */
13
+ import { isStdioConfig, isRemoteConfig } from "@getmcp/core";
14
+ import { BaseGenerator, toStdioFields } from "./base.js";
15
+ export class WindsurfGenerator extends BaseGenerator {
16
+ app = {
17
+ id: "windsurf",
18
+ name: "Windsurf",
19
+ description: "Codeium's AI-powered code editor",
20
+ configPaths: {
21
+ darwin: "~/.codeium/windsurf/mcp_config.json",
22
+ win32: "%UserProfile%\\.codeium\\windsurf\\mcp_config.json",
23
+ linux: "~/.codeium/windsurf/mcp_config.json",
24
+ },
25
+ configFormat: "json",
26
+ docsUrl: "https://docs.windsurf.com/windsurf/cascade/mcp",
27
+ };
28
+ generate(serverName, config) {
29
+ let serverConfig;
30
+ if (isStdioConfig(config)) {
31
+ serverConfig = toStdioFields(config);
32
+ }
33
+ else if (isRemoteConfig(config)) {
34
+ // Windsurf uses "serverUrl" for HTTP servers
35
+ serverConfig = {
36
+ serverUrl: config.url,
37
+ ...(config.headers && Object.keys(config.headers).length > 0
38
+ ? { headers: config.headers }
39
+ : {}),
40
+ };
41
+ }
42
+ else {
43
+ throw new Error("Invalid config: must have either 'command' or 'url'");
44
+ }
45
+ return {
46
+ mcpServers: {
47
+ [serverName]: serverConfig,
48
+ },
49
+ };
50
+ }
51
+ }
52
+ //# sourceMappingURL=windsurf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../src/windsurf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,GAAG,GAAgB;QACjB,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE;YACX,MAAM,EAAE,qCAAqC;YAC7C,KAAK,EAAE,oDAAoD;YAC3D,KAAK,EAAE,qCAAqC;SAC7C;QACD,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,gDAAgD;KAC1D,CAAC;IAEF,QAAQ,CACN,UAAkB,EAClB,MAA6B;QAE7B,IAAI,YAAqC,CAAC;QAE1C,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,6CAA6C;YAC7C,YAAY,GAAG;gBACb,SAAS,EAAE,MAAM,CAAC,GAAG;gBACrB,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;oBAC1D,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;oBAC7B,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,OAAO;YACL,UAAU,EAAE;gBACV,CAAC,UAAU,CAAC,EAAE,YAAY;aAC3B;SACF,CAAC;IACJ,CAAC;CACF"}
package/dist/zed.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Zed config generator.
3
+ *
4
+ * Config file: settings.json (Zed settings)
5
+ * Format:
6
+ * {
7
+ * "context_servers": {
8
+ * "name": {
9
+ * "command": "...",
10
+ * "args": ["..."],
11
+ * "env": {}
12
+ * }
13
+ * }
14
+ * }
15
+ *
16
+ * Key differences from canonical:
17
+ * - Root key: "context_servers" (not "mcpServers")
18
+ * - Otherwise uses standard command/args/env structure
19
+ * - Remote servers use "url" + "headers"
20
+ * - Also installable via Zed extensions
21
+ */
22
+ import type { AppMetadata, LooseServerConfigType } from "@getmcp/core";
23
+ import { BaseGenerator } from "./base.js";
24
+ export declare class ZedGenerator extends BaseGenerator {
25
+ app: AppMetadata;
26
+ generate(serverName: string, config: LooseServerConfigType): Record<string, unknown>;
27
+ }
28
+ //# sourceMappingURL=zed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zed.d.ts","sourceRoot":"","sources":["../src/zed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAiB,MAAM,WAAW,CAAC;AAEzD,qBAAa,YAAa,SAAQ,aAAa;IAC7C,GAAG,EAAE,WAAW,CAWd;IAEF,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,qBAAqB,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAsB3B"}
package/dist/zed.js ADDED
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Zed config generator.
3
+ *
4
+ * Config file: settings.json (Zed settings)
5
+ * Format:
6
+ * {
7
+ * "context_servers": {
8
+ * "name": {
9
+ * "command": "...",
10
+ * "args": ["..."],
11
+ * "env": {}
12
+ * }
13
+ * }
14
+ * }
15
+ *
16
+ * Key differences from canonical:
17
+ * - Root key: "context_servers" (not "mcpServers")
18
+ * - Otherwise uses standard command/args/env structure
19
+ * - Remote servers use "url" + "headers"
20
+ * - Also installable via Zed extensions
21
+ */
22
+ import { isStdioConfig, isRemoteConfig } from "@getmcp/core";
23
+ import { BaseGenerator, toStdioFields } from "./base.js";
24
+ export class ZedGenerator extends BaseGenerator {
25
+ app = {
26
+ id: "zed",
27
+ name: "Zed",
28
+ description: "High-performance code editor by Zed Industries",
29
+ configPaths: {
30
+ darwin: "~/.config/zed/settings.json",
31
+ win32: "%AppData%\\Zed\\settings.json",
32
+ linux: "~/.config/zed/settings.json",
33
+ },
34
+ configFormat: "json",
35
+ docsUrl: "https://zed.dev/docs/ai/mcp",
36
+ };
37
+ generate(serverName, config) {
38
+ let serverConfig;
39
+ if (isStdioConfig(config)) {
40
+ serverConfig = toStdioFields(config);
41
+ }
42
+ else if (isRemoteConfig(config)) {
43
+ serverConfig = {
44
+ url: config.url,
45
+ ...(config.headers && Object.keys(config.headers).length > 0
46
+ ? { headers: config.headers }
47
+ : {}),
48
+ };
49
+ }
50
+ else {
51
+ throw new Error("Invalid config: must have either 'command' or 'url'");
52
+ }
53
+ return {
54
+ context_servers: {
55
+ [serverName]: serverConfig,
56
+ },
57
+ };
58
+ }
59
+ }
60
+ //# sourceMappingURL=zed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zed.js","sourceRoot":"","sources":["../src/zed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,OAAO,YAAa,SAAQ,aAAa;IAC7C,GAAG,GAAgB;QACjB,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE;YACX,MAAM,EAAE,6BAA6B;YACrC,KAAK,EAAE,+BAA+B;YACtC,KAAK,EAAE,6BAA6B;SACrC;QACD,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,6BAA6B;KACvC,CAAC;IAEF,QAAQ,CACN,UAAkB,EAClB,MAA6B;QAE7B,IAAI,YAAqC,CAAC;QAE1C,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,YAAY,GAAG;gBACb,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;oBAC1D,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;oBAC7B,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,OAAO;YACL,eAAe,EAAE;gBACf,CAAC,UAAU,CAAC,EAAE,YAAY;aAC3B;SACF,CAAC;IACJ,CAAC;CACF"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@getmcp/generators",
3
+ "version": "0.1.1",
4
+ "description": "Config generators that transform canonical MCP server definitions to app-specific formats",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsc",
21
+ "test": "vitest run",
22
+ "lint": "tsc --noEmit",
23
+ "prepublishOnly": "npm run build"
24
+ },
25
+ "keywords": [
26
+ "mcp",
27
+ "model-context-protocol",
28
+ "config-generator",
29
+ "claude-desktop",
30
+ "cursor",
31
+ "vscode",
32
+ "windsurf",
33
+ "cline",
34
+ "roo-code",
35
+ "goose",
36
+ "opencode",
37
+ "zed"
38
+ ],
39
+ "license": "MIT",
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "https://github.com/RodrigoTomeES/getmcp.git",
43
+ "directory": "packages/generators"
44
+ },
45
+ "homepage": "https://github.com/RodrigoTomeES/getmcp/tree/main/packages/generators#readme",
46
+ "bugs": {
47
+ "url": "https://github.com/RodrigoTomeES/getmcp/issues"
48
+ },
49
+ "engines": {
50
+ "node": ">=22.0.0"
51
+ },
52
+ "dependencies": {
53
+ "@getmcp/core": "^0.1.0"
54
+ }
55
+ }