@mcp-abap-adt/configurator 0.1.0 → 0.2.0

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.
package/README.md CHANGED
@@ -20,6 +20,7 @@ mcp-conf --client codex --name abap-http --transport http --url http://localhost
20
20
  mcp-conf --client opencode --name abap --transport http --url http://localhost:3000/mcp/stream/http
21
21
  mcp-conf --client kilo --name abap --transport http --url http://localhost:3000/mcp/stream/http
22
22
  mcp-conf --client copilot --name abap --transport http --url http://localhost:3000/mcp/stream/http --header x-mcp-destination=trial
23
+ mcp-conf --client qwen --name abap --transport http --url http://localhost:3000/mcp/stream/http
23
24
  mcp-conf --client crush --name abap --mcp TRIAL
24
25
  mcp-conf --client crush --name abap --transport http --url http://localhost:3000/mcp/stream/http
25
26
  mcp-conf tui
@@ -15,6 +15,8 @@ const CLIENTS = [
15
15
  { name: "opencode", message: "OpenCode (kilo)" },
16
16
  { name: "copilot", message: "GitHub Copilot" },
17
17
  { name: "antigravity", message: "Antigravity" },
18
+ { name: "qwen", message: "Qwen" },
19
+ { name: "gemini", message: "Gemini" },
18
20
  { name: "crush", message: "Crush" },
19
21
  ];
20
22
 
@@ -262,10 +264,10 @@ async function askHeaders(initialHeaders = {}) {
262
264
  }
263
265
 
264
266
  function getSupportedScopes(clientName) {
265
- if (clientName === "copilot") {
267
+ if (clientName === "copilot" || clientName === "gemini") {
266
268
  return ["local"];
267
269
  }
268
- if (["cline", "goose", "windsurf", "antigravity"].includes(clientName)) {
270
+ if (["cline", "goose", "windsurf", "antigravity", "qwen"].includes(clientName)) {
269
271
  return ["global"];
270
272
  }
271
273
  return ["global", "local"];
package/bin/mcp-conf.js CHANGED
@@ -419,6 +419,30 @@ for (const client of options.clients) {
419
419
  writeJsonConfig(getAntigravityPath(home, scope), options.name, serverArgs, "antigravity");
420
420
  }
421
421
  break;
422
+ case "qwen":
423
+ requireScope("Qwen", ["global"], scope);
424
+ if (options.list) {
425
+ listJsonConfig(getQwenPath(home), "qwen");
426
+ } else if (options.show) {
427
+ showJsonConfig(getQwenPath(home), "qwen", options.name);
428
+ } else if (options.where) {
429
+ whereJsonConfig(getQwenPath(home), "qwen", options.name);
430
+ } else {
431
+ writeJsonConfig(getQwenPath(home), options.name, serverArgs, "qwen");
432
+ }
433
+ break;
434
+ case "gemini":
435
+ requireScope("Gemini", ["local"], scope);
436
+ if (options.list) {
437
+ listJsonConfig(getGeminiPath(), "gemini");
438
+ } else if (options.show) {
439
+ showJsonConfig(getGeminiPath(), "gemini", options.name);
440
+ } else if (options.where) {
441
+ whereJsonConfig(getGeminiPath(), "gemini", options.name);
442
+ } else {
443
+ writeJsonConfig(getGeminiPath(), options.name, serverArgs, "gemini");
444
+ }
445
+ break;
422
446
  case "copilot":
423
447
  requireScope("GitHub Copilot", ["local"], scope);
424
448
  if (options.list) {
@@ -615,6 +639,14 @@ function getAntigravityPath(homeDir, scopeValue) {
615
639
  return path.join(homeDir, ".gemini", "antigravity", "mcp_config.json");
616
640
  }
617
641
 
642
+ function getGeminiPath() {
643
+ return path.join(process.cwd(), ".gemini", "settings.json");
644
+ }
645
+
646
+ function getQwenPath(homeDir) {
647
+ return path.join(homeDir, ".qwen", "settings.json");
648
+ }
649
+
618
650
  function getWindsurfPath(platformValue, homeDir, userProfileDir) {
619
651
  if (platformValue === "win32") {
620
652
  return path.join(userProfileDir, ".codeium", "windsurf", "mcp_config.json");
@@ -642,7 +674,7 @@ function requireScope(clientLabel, allowedScopes, requestedScope) {
642
674
  }
643
675
 
644
676
  function getDefaultScope(clientType) {
645
- if (clientType === "copilot") {
677
+ if (clientType === "copilot" || clientType === "gemini") {
646
678
  return "local";
647
679
  }
648
680
  return "global";
@@ -1772,9 +1804,10 @@ Run:
1772
1804
  mcp-conf help <command>
1773
1805
 
1774
1806
  Notes:
1775
- Scope defaults to --global (Copilot uses --local only).
1807
+ Scope defaults to --global (Copilot and Gemini use --local only).
1776
1808
  For Claude, --local maps to the project scope file ./.mcp.json.
1777
1809
  For Codex, --local writes to ./.codex/config.toml.
1810
+ For Gemini, --local writes to ./.gemini/settings.json.
1778
1811
  `);
1779
1812
  return;
1780
1813
  }
@@ -1786,7 +1819,7 @@ Usage:
1786
1819
  mcp-conf add --client <name> --name <serverName> [--env <name> | --env-path <path> | --session-env | --mcp <dest>] [options]
1787
1820
 
1788
1821
  Options:
1789
- --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | crush (repeatable)
1822
+ --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
1790
1823
  --name <serverName> required MCP server name key
1791
1824
  --env <name> env profile name (stdio only), writes --env=<name>
1792
1825
  --env-path <path> .env path (stdio only)
@@ -1804,7 +1837,8 @@ Options:
1804
1837
  --dry-run print changes without writing files
1805
1838
 
1806
1839
  Notes:
1807
- Antigravity local scope is not supported yet; use --global.
1840
+ Antigravity and Qwen are global-only; use --global.
1841
+ Gemini is local-only (project .gemini/settings.json); use --local.
1808
1842
  `);
1809
1843
  break;
1810
1844
  case "rm":
@@ -1814,7 +1848,7 @@ Usage:
1814
1848
  mcp-conf rm --client <name> --name <serverName> [options]
1815
1849
 
1816
1850
  Options:
1817
- --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | crush (repeatable)
1851
+ --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
1818
1852
  --name <serverName> required MCP server name key
1819
1853
  --global write to global user config (default)
1820
1854
  --local write to project config (where supported)
@@ -1823,7 +1857,8 @@ Options:
1823
1857
  --dry-run print changes without writing files
1824
1858
 
1825
1859
  Notes:
1826
- Antigravity local scope is not supported yet; use --global.
1860
+ Antigravity and Qwen are global-only; use --global.
1861
+ Gemini is local-only (project .gemini/settings.json); use --local.
1827
1862
  `);
1828
1863
  break;
1829
1864
  case "ls":
@@ -1833,14 +1868,15 @@ Usage:
1833
1868
  mcp-conf ls --client <name> [options]
1834
1869
 
1835
1870
  Options:
1836
- --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | crush (repeatable)
1871
+ --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
1837
1872
  --global write to global user config (default)
1838
1873
  --local write to project config (where supported)
1839
1874
  --all-projects Claude global: list across all projects
1840
1875
  --project <path> Claude global: target a specific project path
1841
1876
 
1842
1877
  Notes:
1843
- Antigravity local scope is not supported yet; use --global.
1878
+ Antigravity and Qwen are global-only; use --global.
1879
+ Gemini is local-only (project .gemini/settings.json); use --local.
1844
1880
  `);
1845
1881
  break;
1846
1882
  case "enable":
@@ -1850,7 +1886,7 @@ Usage:
1850
1886
  mcp-conf enable --client <name> --name <serverName> [options]
1851
1887
 
1852
1888
  Options:
1853
- --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | crush (repeatable)
1889
+ --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
1854
1890
  --name <serverName> required MCP server name key
1855
1891
  --global write to global user config (default)
1856
1892
  --local write to project config (where supported)
@@ -1859,7 +1895,8 @@ Options:
1859
1895
  --dry-run print changes without writing files
1860
1896
 
1861
1897
  Notes:
1862
- Antigravity local scope is not supported yet; use --global.
1898
+ Antigravity and Qwen are global-only; use --global.
1899
+ Gemini is local-only (project .gemini/settings.json); use --local.
1863
1900
  `);
1864
1901
  break;
1865
1902
  case "disable":
@@ -1869,7 +1906,7 @@ Usage:
1869
1906
  mcp-conf disable --client <name> --name <serverName> [options]
1870
1907
 
1871
1908
  Options:
1872
- --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | crush (repeatable)
1909
+ --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
1873
1910
  --name <serverName> required MCP server name key
1874
1911
  --global write to global user config (default)
1875
1912
  --local write to project config (where supported)
@@ -1878,7 +1915,8 @@ Options:
1878
1915
  --dry-run print changes without writing files
1879
1916
 
1880
1917
  Notes:
1881
- Antigravity local scope is not supported yet; use --global.
1918
+ Antigravity and Qwen are global-only; use --global.
1919
+ Gemini is local-only (project .gemini/settings.json); use --local.
1882
1920
  `);
1883
1921
  break;
1884
1922
  case "where":
@@ -1888,7 +1926,7 @@ Usage:
1888
1926
  mcp-conf where --client <name> --name <serverName> [options]
1889
1927
 
1890
1928
  Options:
1891
- --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | crush (repeatable)
1929
+ --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
1892
1930
  --name <serverName> required MCP server name key
1893
1931
  --global write to global user config (default)
1894
1932
  --local write to project config (where supported)
@@ -1896,7 +1934,8 @@ Options:
1896
1934
  --project <path> Claude global: target a specific project path
1897
1935
 
1898
1936
  Notes:
1899
- Antigravity local scope is not supported yet; use --global.
1937
+ Antigravity and Qwen are global-only; use --global.
1938
+ Gemini is local-only (project .gemini/settings.json); use --local.
1900
1939
  `);
1901
1940
  break;
1902
1941
  case "show":
@@ -1906,7 +1945,7 @@ Usage:
1906
1945
  mcp-conf show --client <name> --name <serverName> [options]
1907
1946
 
1908
1947
  Options:
1909
- --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | crush (repeatable)
1948
+ --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
1910
1949
  --name <serverName> required MCP server name key
1911
1950
  --global read from global user config (default)
1912
1951
  --local read from project config (where supported)
@@ -1916,7 +1955,8 @@ Options:
1916
1955
  --normalized output normalized view (for tooling); default is raw config entry
1917
1956
 
1918
1957
  Notes:
1919
- Antigravity local scope is not supported yet; use --global.
1958
+ Antigravity and Qwen are global-only; use --global.
1959
+ Gemini is local-only (project .gemini/settings.json); use --local.
1920
1960
  `);
1921
1961
  break;
1922
1962
  case "update":
@@ -1926,7 +1966,7 @@ Usage:
1926
1966
  mcp-conf update --client <name> --name <serverName> [--env <name> | --env-path <path> | --session-env | --mcp <dest>] [options]
1927
1967
 
1928
1968
  Options:
1929
- --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | crush (repeatable)
1969
+ --client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
1930
1970
  --name <serverName> required MCP server name key
1931
1971
  --env <name> env profile name (stdio only), writes --env=<name>
1932
1972
  --env-path <path> .env path (stdio only)
@@ -1942,7 +1982,8 @@ Options:
1942
1982
  --dry-run print changes without writing files
1943
1983
 
1944
1984
  Notes:
1945
- Antigravity local scope is not supported yet; use --global.
1985
+ Antigravity and Qwen are global-only; use --global.
1986
+ Gemini is local-only (project .gemini/settings.json); use --local.
1946
1987
  `);
1947
1988
  break;
1948
1989
  case "tui":
@@ -24,6 +24,9 @@ mcp-conf add --client opencode --name abap --transport http --url http://localho
24
24
  mcp-conf add --client kilo --name abap --transport http --url http://localhost:3000/mcp/stream/http
25
25
  mcp-conf add --client copilot --name abap --transport http --url http://localhost:3000/mcp/stream/http --header x-mcp-destination=trial
26
26
  mcp-conf add --client antigravity --name abap --transport http --url http://localhost:3000/mcp/stream/http
27
+ mcp-conf add --client qwen --name abap --transport http --url http://localhost:3000/mcp/stream/http
28
+ mcp-conf add --client gemini --name abap --mcp TRIAL
29
+ mcp-conf add --client gemini --name abap --transport http --url http://localhost:3000/mcp/stream/http
27
30
  mcp-conf add --client crush --name abap --mcp TRIAL
28
31
  mcp-conf add --client crush --name abap --transport http --url http://localhost:3000/mcp/stream/http
29
32
  mcp-conf tui
@@ -51,6 +54,8 @@ Enable MCP:
51
54
  mcp-conf enable --client codex --name abap
52
55
  mcp-conf enable --client cline --name abap
53
56
  mcp-conf enable --client antigravity --name abap
57
+ mcp-conf enable --client qwen --name abap
58
+ mcp-conf enable --client gemini --name abap
54
59
  mcp-conf enable --client crush --name abap
55
60
  ```
56
61
 
@@ -60,6 +65,8 @@ mcp-conf rm --client codex --name abap
60
65
  mcp-conf rm --client cline --name abap
61
66
  mcp-conf rm --client claude --name abap
62
67
  mcp-conf rm --client antigravity --name abap
68
+ mcp-conf rm --client qwen --name abap
69
+ mcp-conf rm --client gemini --name abap
63
70
  mcp-conf rm --client crush --name abap
64
71
  ```
65
72
 
@@ -70,6 +77,8 @@ mcp-conf ls --client cline
70
77
  mcp-conf ls --client claude --local
71
78
  mcp-conf ls --client claude --all-projects
72
79
  mcp-conf ls --client antigravity --global
80
+ mcp-conf ls --client qwen --global
81
+ mcp-conf ls --client gemini
73
82
  mcp-conf ls --client crush
74
83
  mcp-conf ls --client crush --local
75
84
  ```
@@ -93,7 +102,7 @@ mcp-conf tui
93
102
 
94
103
  Options:
95
104
  - Commands: `add`, `rm`, `ls`, `show`, `enable`, `disable`, `where`, `update`, `tui` (first argument)
96
- - `--client <name>` (repeatable): `cline`, `codex`, `claude`, `goose`, `cursor`, `windsurf`, `opencode` (`kilo` alias), `copilot`, `antigravity`, `crush`
105
+ - `--client <name>` (repeatable): `cline`, `codex`, `claude`, `goose`, `cursor`, `windsurf`, `opencode` (`kilo` alias), `copilot`, `antigravity`, `qwen`, `gemini`, `crush`
97
106
  - `--env <name>`: use named env profile; writes `--env=<name>` (stdio only)
98
107
  - `--env-path <path>`: use a specific `.env` file (stdio only)
99
108
  - `--session-env`: use shell/session environment variables (stdio only)
@@ -102,7 +111,7 @@ Options:
102
111
  - `--transport <type>`: `stdio`, `sse`, or `http` (`http` maps to `streamableHttp`)
103
112
  - `--command <bin>`: command to run (default: `mcp-abap-adt`)
104
113
  - `--global`: write to the global user config (default)
105
- - `--local`: write to the project config (supported by `cursor`, `opencode`/`kilo`, `copilot`, `claude`, `codex`, `crush`)
114
+ - `--local`: write to the project config (supported by `cursor`, `opencode`/`kilo`, `copilot`, `claude`, `codex`, `gemini`, `crush`)
106
115
  - `--all-projects`: for Claude (global scope), apply `rm/enable/disable/ls/where` across all projects
107
116
  - `--project <path>`: for Claude (global scope), target a specific project path
108
117
  - `--url <http(s)://...>`: required for `sse` and `http`
@@ -116,7 +125,8 @@ Notes:
116
125
  - `mcp-conf tui` starts an interactive wizard for `ls`/`show`/`add`/`update`/`rm`/`enable`/`disable`.
117
126
  - Cursor/Copilot enable/disable are not implemented yet.
118
127
  - Antigravity enable/disable uses `disabled: true|false` on the entry.
119
- - Antigravity local scope is not supported yet; use `--global`.
128
+ - Antigravity and Qwen are global-only; use `--global`.
129
+ - Gemini is local-only (project `.gemini/settings.json`); use `--local`.
120
130
  - Claude stores enable/disable state under `enabledMcpServers` and `disabledMcpServers` for each project.
121
131
  - Claude enable/disable always updates `~/.claude.json` (global scope), even if you pass `--local`.
122
132
  - Antigravity HTTP entries use `serverUrl` instead of `url`.
@@ -163,6 +173,8 @@ Global (default) locations:
163
173
  - **Antigravity**:
164
174
  - Linux/macOS: `~/.gemini/antigravity/mcp_config.json`
165
175
  - Note: path is community-reported; verify against latest vendor docs.
176
+ - **Qwen**:
177
+ - Linux/macOS: `~/.qwen/settings.json` (uses `mcpServers.<name>`)
166
178
  - **Crush**:
167
179
  - Linux/macOS: `~/.config/crush/crush.json`
168
180
  - Windows: `%USERPROFILE%\AppData\Local\crush\crush.json`
@@ -178,5 +190,7 @@ Local (project) locations:
178
190
  - Project: `./.vscode/mcp.json` (uses `servers.<name>` entries)
179
191
  - **Antigravity**:
180
192
  - Project: `./.antigravity/mcp.json` (community-reported; not supported yet)
193
+ - **Gemini**:
194
+ - Project: `./.gemini/settings.json` (uses `mcpServers.<name>`)
181
195
  - **Crush**:
182
196
  - Project: `./.crush.json` (uses `mcp.<name>` entries with `disabled: true|false`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/configurator",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "MCP client configurator for mcp-abap-adt and mcp-abap-adt-proxy",
5
5
  "license": "MIT",
6
6
  "repository": {