Skip to content

Commit d9ce7c5

Browse files
authored
Merge pull request #25 from supermemoryai/08-11-feat_zed_support
feat: zed support
2 parents 45e96df + ad9154f commit d9ce7c5

File tree

8 files changed

+112
-93
lines changed

8 files changed

+112
-93
lines changed

.github/workflows/claude.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
name: Claude Code
22

33
on:
4-
issue_comment:
5-
types: [created]
64
pull_request_review_comment:
75
types: [created]
86
issues:

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ The `--client` flag specifies which MCP client you're installing for:
108108
- `gemini-cli`
109109
- `claude-code`
110110
- `goose`
111+
- `zed`
111112
- `warp` (outputs config to copy/paste into Warp's cloud-based settings)
112113

113114
## License

bin/run

100644100755
File mode changed.

package.json

Lines changed: 88 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,90 @@
11
{
2-
"name": "install-mcp",
3-
"version": "1.6.1",
4-
"description": "A CLI tool to install and manage MCP servers.",
5-
"bin": {
6-
"install-mcp": "./bin/run"
7-
},
8-
"directories": {
9-
"lib": "src",
10-
"bin": "bin"
11-
},
12-
"files": [
13-
"dist",
14-
"bin"
15-
],
16-
"repository": {
17-
"type": "git",
18-
"url": "git+ssh://[email protected]/supermemoryai/install-mcp.git"
19-
},
20-
"scripts": {
21-
"build": "tsup-node",
22-
"build:watch": "tsup-node --watch",
23-
"clean": "rimraf dist",
24-
"commit": "cz",
25-
"commitlint": "commitlint --edit",
26-
"compile": "tsc",
27-
"format": "prettier . --check",
28-
"format:fix": "prettier . --write",
29-
"lint": "eslint .",
30-
"lint:fix": "eslint . --fix",
31-
"start": "ts-node ./bin/run.ts",
32-
"start:node": "node ./bin/run",
33-
"test": "jest",
34-
"test:watch": "jest --watchAll",
35-
"prepare": "husky",
36-
"release": "semantic-release"
37-
},
38-
"keywords": [
39-
"typescript",
40-
"starter",
41-
"cli",
42-
"mcp"
43-
],
44-
"author": "Dhravya Shah <[email protected]>",
45-
"license": "MIT",
46-
"devDependencies": {
47-
"@commitlint/cli": "^18.6.1",
48-
"@commitlint/config-conventional": "^18.6.3",
49-
"@jest/globals": "^29.7.0",
50-
"@tsconfig/node20": "^20.1.4",
51-
"@types/jest": "^29.5.12",
52-
"@types/js-yaml": "^4.0.9",
53-
"@types/node": "^20.12.12",
54-
"@types/prompts": "^2.4.9",
55-
"@types/signale": "^1.4.7",
56-
"@types/yargs": "^17.0.32",
57-
"@typescript-eslint/eslint-plugin": "^6.21.0",
58-
"@typescript-eslint/parser": "^6.21.0",
59-
"commitizen": "^4.3.0",
60-
"cz-conventional-changelog": "^3.3.0",
61-
"eslint": "^8.57.0",
62-
"eslint-config-prettier": "^9.1.0",
63-
"eslint-plugin-jest": "^27.9.0",
64-
"eslint-plugin-prettier": "^5.1.3",
65-
"eslint-plugin-unused-imports": "^3.2.0",
66-
"husky": "^9.0.11",
67-
"jest": "^29.7.0",
68-
"prettier": "^3.2.5",
69-
"rimraf": "^5.0.7",
70-
"semantic-release": "^23.1.1",
71-
"ts-jest": "^29.1.4",
72-
"ts-node": "^10.9.2",
73-
"tsup": "^8.0.2",
74-
"typescript": "^5.4.5"
75-
},
76-
"dependencies": {
77-
"consola": "^3.2.3",
78-
"dotenv": "^16.4.5",
79-
"giget": "^1.2.3",
80-
"js-yaml": "^4.1.0",
81-
"picocolors": "^1.0.1",
82-
"yargs": "^17.7.2"
83-
},
84-
"config": {
85-
"commitizen": {
86-
"path": "cz-conventional-changelog"
87-
}
88-
},
89-
"packageManager": "[email protected]"
2+
"name": "install-mcp",
3+
"version": "1.6.2",
4+
"description": "A CLI tool to install and manage MCP servers.",
5+
"bin": {
6+
"install-mcp": "./bin/run"
7+
},
8+
"directories": {
9+
"lib": "src",
10+
"bin": "bin"
11+
},
12+
"files": [
13+
"dist",
14+
"bin"
15+
],
16+
"repository": {
17+
"type": "git",
18+
"url": "git+ssh://[email protected]/supermemoryai/install-mcp.git"
19+
},
20+
"scripts": {
21+
"build": "tsup-node",
22+
"build:watch": "tsup-node --watch",
23+
"clean": "rimraf dist",
24+
"commit": "cz",
25+
"commitlint": "commitlint --edit",
26+
"compile": "tsc",
27+
"format": "prettier . --check",
28+
"format:fix": "prettier . --write",
29+
"lint": "eslint .",
30+
"lint:fix": "eslint . --fix",
31+
"start": "ts-node ./bin/run.ts",
32+
"start:node": "node ./bin/run",
33+
"test": "jest",
34+
"test:watch": "jest --watchAll",
35+
"prepare": "husky",
36+
"release": "semantic-release"
37+
},
38+
"keywords": [
39+
"typescript",
40+
"starter",
41+
"cli",
42+
"mcp"
43+
],
44+
"author": "Dhravya Shah <[email protected]>",
45+
"license": "MIT",
46+
"devDependencies": {
47+
"@commitlint/cli": "^18.6.1",
48+
"@commitlint/config-conventional": "^18.6.3",
49+
"@jest/globals": "^29.7.0",
50+
"@tsconfig/node20": "^20.1.4",
51+
"@types/jest": "^29.5.12",
52+
"@types/js-yaml": "^4.0.9",
53+
"@types/node": "^20.12.12",
54+
"@types/prompts": "^2.4.9",
55+
"@types/signale": "^1.4.7",
56+
"@types/yargs": "^17.0.32",
57+
"@typescript-eslint/eslint-plugin": "^6.21.0",
58+
"@typescript-eslint/parser": "^6.21.0",
59+
"commitizen": "^4.3.0",
60+
"cz-conventional-changelog": "^3.3.0",
61+
"eslint": "^8.57.0",
62+
"eslint-config-prettier": "^9.1.0",
63+
"eslint-plugin-jest": "^27.9.0",
64+
"eslint-plugin-prettier": "^5.1.3",
65+
"eslint-plugin-unused-imports": "^3.2.0",
66+
"husky": "^9.0.11",
67+
"jest": "^29.7.0",
68+
"prettier": "^3.2.5",
69+
"rimraf": "^5.0.7",
70+
"semantic-release": "^23.1.1",
71+
"ts-jest": "^29.1.4",
72+
"ts-node": "^10.9.2",
73+
"tsup": "^8.0.2",
74+
"typescript": "^5.4.5"
75+
},
76+
"dependencies": {
77+
"consola": "^3.2.3",
78+
"dotenv": "^16.4.5",
79+
"giget": "^1.2.3",
80+
"js-yaml": "^4.1.0",
81+
"picocolors": "^1.0.1",
82+
"yargs": "^17.7.2"
83+
},
84+
"config": {
85+
"commitizen": {
86+
"path": "cz-conventional-changelog"
87+
}
88+
},
89+
"packageManager": "[email protected]"
9090
}

src/client-config.test.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,14 @@ describe('client-config', () => {
5555
'gemini-cli',
5656
'vscode',
5757
'claude-code',
58+
'goose',
59+
'zed',
5860
]),
5961
)
6062
})
6163

62-
it('should have at least 11 clients', () => {
63-
expect(clientNames.length).toBeGreaterThanOrEqual(11)
64+
it('should have at least 13 clients', () => {
65+
expect(clientNames.length).toBeGreaterThanOrEqual(13)
6466
})
6567
})
6668

src/client-config.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,14 @@ function getClientPaths(): { [key: string]: ClientInstallTarget } {
125125
configKey: 'extensions',
126126
format: 'yaml',
127127
},
128+
zed: {
129+
type: 'file',
130+
path:
131+
process.platform === 'win32'
132+
? path.join(process.env.APPDATA || path.join(homeDir, 'AppData', 'Roaming'), 'Zed', 'settings.json')
133+
: path.join(homeDir, '.config', 'zed', 'settings.json'),
134+
configKey: 'context_servers',
135+
},
128136
}
129137
}
130138

@@ -141,6 +149,7 @@ export const clientNames = [
141149
'vscode',
142150
'claude-code',
143151
'goose',
152+
'zed',
144153
]
145154

146155
// Helper function to get nested value from an object using dot notation

src/commands/install.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describe('install command', () => {
2020
beforeEach(() => {
2121
jest.clearAllMocks()
2222
Object.defineProperty(mockClientConfig, 'clientNames', {
23-
value: ['claude', 'cline', 'cursor', 'vscode', 'warp'],
23+
value: ['claude', 'cline', 'cursor', 'vscode', 'warp', 'goose', 'zed'],
2424
writable: true,
2525
})
2626
mockClientConfig.readConfig.mockReturnValue({ mcpServers: {} })

src/commands/install.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,15 @@ function setServerConfig(
4141
timeout: 300,
4242
...serverConfig, // Allow overriding defaults
4343
}
44+
} else if (client === 'zed') {
45+
// Zed has a different config structure
46+
servers[serverName] = {
47+
source: 'custom',
48+
command: serverConfig.command,
49+
args: serverConfig.args,
50+
env: {},
51+
...serverConfig, // Allow overriding defaults
52+
}
4453
} else {
4554
servers[serverName] = serverConfig
4655
}

0 commit comments

Comments
 (0)