@mcp-abap-adt/configurator 0.1.1 → 0.2.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.
- package/bin/mcp-conf-tui.js +2 -1
- package/bin/mcp-conf.js +79 -13
- package/docs/CLIENT_INSTALLERS.md +10 -2
- package/package.json +1 -1
package/bin/mcp-conf-tui.js
CHANGED
|
@@ -16,6 +16,7 @@ const CLIENTS = [
|
|
|
16
16
|
{ name: "copilot", message: "GitHub Copilot" },
|
|
17
17
|
{ name: "antigravity", message: "Antigravity" },
|
|
18
18
|
{ name: "qwen", message: "Qwen" },
|
|
19
|
+
{ name: "gemini", message: "Gemini" },
|
|
19
20
|
{ name: "crush", message: "Crush" },
|
|
20
21
|
];
|
|
21
22
|
|
|
@@ -263,7 +264,7 @@ async function askHeaders(initialHeaders = {}) {
|
|
|
263
264
|
}
|
|
264
265
|
|
|
265
266
|
function getSupportedScopes(clientName) {
|
|
266
|
-
if (clientName === "copilot") {
|
|
267
|
+
if (clientName === "copilot" || clientName === "gemini") {
|
|
267
268
|
return ["local"];
|
|
268
269
|
}
|
|
269
270
|
if (["cline", "goose", "windsurf", "antigravity", "qwen"].includes(clientName)) {
|
package/bin/mcp-conf.js
CHANGED
|
@@ -431,6 +431,18 @@ for (const client of options.clients) {
|
|
|
431
431
|
writeJsonConfig(getQwenPath(home), options.name, serverArgs, "qwen");
|
|
432
432
|
}
|
|
433
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;
|
|
434
446
|
case "copilot":
|
|
435
447
|
requireScope("GitHub Copilot", ["local"], scope);
|
|
436
448
|
if (options.list) {
|
|
@@ -627,6 +639,14 @@ function getAntigravityPath(homeDir, scopeValue) {
|
|
|
627
639
|
return path.join(homeDir, ".gemini", "antigravity", "mcp_config.json");
|
|
628
640
|
}
|
|
629
641
|
|
|
642
|
+
function getGeminiPath() {
|
|
643
|
+
return path.join(process.cwd(), ".gemini", "settings.json");
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
function getGeminiEnablementPath(homeDir) {
|
|
647
|
+
return path.join(homeDir, ".gemini", "mcp-server-enablement.json");
|
|
648
|
+
}
|
|
649
|
+
|
|
630
650
|
function getQwenPath(homeDir) {
|
|
631
651
|
return path.join(homeDir, ".qwen", "settings.json");
|
|
632
652
|
}
|
|
@@ -658,7 +678,7 @@ function requireScope(clientLabel, allowedScopes, requestedScope) {
|
|
|
658
678
|
}
|
|
659
679
|
|
|
660
680
|
function getDefaultScope(clientType) {
|
|
661
|
-
if (clientType === "copilot") {
|
|
681
|
+
if (clientType === "copilot" || clientType === "gemini") {
|
|
662
682
|
return "local";
|
|
663
683
|
}
|
|
664
684
|
return "global";
|
|
@@ -713,9 +733,20 @@ function writeJsonConfig(filePath, serverName, argsArray, clientType) {
|
|
|
713
733
|
}
|
|
714
734
|
if (options.toggle) {
|
|
715
735
|
if (clientType === "cursor" || clientType === "copilot") {
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
736
|
+
const label = clientType === "cursor" ? "Cursor" : "GitHub Copilot";
|
|
737
|
+
fail(`${label} enable/disable is not implemented yet.`);
|
|
738
|
+
}
|
|
739
|
+
if (clientType === "gemini") {
|
|
740
|
+
const store = data.mcpServers || {};
|
|
741
|
+
if (!store[serverName]) {
|
|
742
|
+
fail(`Server "${serverName}" not found in ${filePath}.`);
|
|
743
|
+
}
|
|
744
|
+
const enablementPath = getGeminiEnablementPath(home);
|
|
745
|
+
ensureDir(enablementPath);
|
|
746
|
+
const enablementData = readJson(enablementPath);
|
|
747
|
+
enablementData[serverName] = { enabled: !options.disabled };
|
|
748
|
+
writeFile(enablementPath, JSON.stringify(enablementData, null, 2));
|
|
749
|
+
return;
|
|
719
750
|
}
|
|
720
751
|
const store =
|
|
721
752
|
clientType === "opencode" || clientType === "crush"
|
|
@@ -848,6 +879,24 @@ function writeJsonConfig(filePath, serverName, argsArray, clientType) {
|
|
|
848
879
|
writeFile(filePath, JSON.stringify(data, null, 2));
|
|
849
880
|
return;
|
|
850
881
|
}
|
|
882
|
+
if (clientType === "gemini") {
|
|
883
|
+
if (options.transport === "stdio") {
|
|
884
|
+
store[serverName] = {
|
|
885
|
+
command: options.command,
|
|
886
|
+
args: argsArray,
|
|
887
|
+
};
|
|
888
|
+
} else {
|
|
889
|
+
const entry = {
|
|
890
|
+
httpUrl: options.url,
|
|
891
|
+
};
|
|
892
|
+
if (Object.keys(options.headers).length > 0) {
|
|
893
|
+
entry.headers = options.headers;
|
|
894
|
+
}
|
|
895
|
+
store[serverName] = entry;
|
|
896
|
+
}
|
|
897
|
+
writeFile(filePath, JSON.stringify(data, null, 2));
|
|
898
|
+
return;
|
|
899
|
+
}
|
|
851
900
|
if (options.transport === "stdio") {
|
|
852
901
|
data.mcpServers[serverName] = {
|
|
853
902
|
command: options.command,
|
|
@@ -1601,6 +1650,11 @@ function inferTransport(clientType, entry, parsedArgs) {
|
|
|
1601
1650
|
if (clientType === "antigravity") {
|
|
1602
1651
|
return entry?.type === "http" ? "http" : "stdio";
|
|
1603
1652
|
}
|
|
1653
|
+
if (clientType === "gemini") {
|
|
1654
|
+
if (entry?.httpUrl) return "http";
|
|
1655
|
+
if (entry?.url) return "sse";
|
|
1656
|
+
return "stdio";
|
|
1657
|
+
}
|
|
1604
1658
|
if (clientType === "crush") {
|
|
1605
1659
|
if (entry?.type === "http") return "http";
|
|
1606
1660
|
if (entry?.type === "sse") return "sse";
|
|
@@ -1629,6 +1683,9 @@ function inferUrl(clientType, entry) {
|
|
|
1629
1683
|
if (clientType === "antigravity") {
|
|
1630
1684
|
return entry?.serverUrl || null;
|
|
1631
1685
|
}
|
|
1686
|
+
if (clientType === "gemini") {
|
|
1687
|
+
return entry?.httpUrl || entry?.url || null;
|
|
1688
|
+
}
|
|
1632
1689
|
return entry?.url || null;
|
|
1633
1690
|
}
|
|
1634
1691
|
|
|
@@ -1788,9 +1845,10 @@ Run:
|
|
|
1788
1845
|
mcp-conf help <command>
|
|
1789
1846
|
|
|
1790
1847
|
Notes:
|
|
1791
|
-
Scope defaults to --global (Copilot
|
|
1848
|
+
Scope defaults to --global (Copilot and Gemini use --local only).
|
|
1792
1849
|
For Claude, --local maps to the project scope file ./.mcp.json.
|
|
1793
1850
|
For Codex, --local writes to ./.codex/config.toml.
|
|
1851
|
+
For Gemini, --local writes to ./.gemini/settings.json.
|
|
1794
1852
|
`);
|
|
1795
1853
|
return;
|
|
1796
1854
|
}
|
|
@@ -1802,7 +1860,7 @@ Usage:
|
|
|
1802
1860
|
mcp-conf add --client <name> --name <serverName> [--env <name> | --env-path <path> | --session-env | --mcp <dest>] [options]
|
|
1803
1861
|
|
|
1804
1862
|
Options:
|
|
1805
|
-
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | crush (repeatable)
|
|
1863
|
+
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
|
|
1806
1864
|
--name <serverName> required MCP server name key
|
|
1807
1865
|
--env <name> env profile name (stdio only), writes --env=<name>
|
|
1808
1866
|
--env-path <path> .env path (stdio only)
|
|
@@ -1821,6 +1879,7 @@ Options:
|
|
|
1821
1879
|
|
|
1822
1880
|
Notes:
|
|
1823
1881
|
Antigravity and Qwen are global-only; use --global.
|
|
1882
|
+
Gemini is local-only (project .gemini/settings.json); use --local.
|
|
1824
1883
|
`);
|
|
1825
1884
|
break;
|
|
1826
1885
|
case "rm":
|
|
@@ -1830,7 +1889,7 @@ Usage:
|
|
|
1830
1889
|
mcp-conf rm --client <name> --name <serverName> [options]
|
|
1831
1890
|
|
|
1832
1891
|
Options:
|
|
1833
|
-
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | crush (repeatable)
|
|
1892
|
+
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
|
|
1834
1893
|
--name <serverName> required MCP server name key
|
|
1835
1894
|
--global write to global user config (default)
|
|
1836
1895
|
--local write to project config (where supported)
|
|
@@ -1840,6 +1899,7 @@ Options:
|
|
|
1840
1899
|
|
|
1841
1900
|
Notes:
|
|
1842
1901
|
Antigravity and Qwen are global-only; use --global.
|
|
1902
|
+
Gemini is local-only (project .gemini/settings.json); use --local.
|
|
1843
1903
|
`);
|
|
1844
1904
|
break;
|
|
1845
1905
|
case "ls":
|
|
@@ -1849,7 +1909,7 @@ Usage:
|
|
|
1849
1909
|
mcp-conf ls --client <name> [options]
|
|
1850
1910
|
|
|
1851
1911
|
Options:
|
|
1852
|
-
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | crush (repeatable)
|
|
1912
|
+
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
|
|
1853
1913
|
--global write to global user config (default)
|
|
1854
1914
|
--local write to project config (where supported)
|
|
1855
1915
|
--all-projects Claude global: list across all projects
|
|
@@ -1857,6 +1917,7 @@ Options:
|
|
|
1857
1917
|
|
|
1858
1918
|
Notes:
|
|
1859
1919
|
Antigravity and Qwen are global-only; use --global.
|
|
1920
|
+
Gemini is local-only (project .gemini/settings.json); use --local.
|
|
1860
1921
|
`);
|
|
1861
1922
|
break;
|
|
1862
1923
|
case "enable":
|
|
@@ -1866,7 +1927,7 @@ Usage:
|
|
|
1866
1927
|
mcp-conf enable --client <name> --name <serverName> [options]
|
|
1867
1928
|
|
|
1868
1929
|
Options:
|
|
1869
|
-
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | crush (repeatable)
|
|
1930
|
+
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
|
|
1870
1931
|
--name <serverName> required MCP server name key
|
|
1871
1932
|
--global write to global user config (default)
|
|
1872
1933
|
--local write to project config (where supported)
|
|
@@ -1876,6 +1937,7 @@ Options:
|
|
|
1876
1937
|
|
|
1877
1938
|
Notes:
|
|
1878
1939
|
Antigravity and Qwen are global-only; use --global.
|
|
1940
|
+
Gemini is local-only (project .gemini/settings.json); use --local.
|
|
1879
1941
|
`);
|
|
1880
1942
|
break;
|
|
1881
1943
|
case "disable":
|
|
@@ -1885,7 +1947,7 @@ Usage:
|
|
|
1885
1947
|
mcp-conf disable --client <name> --name <serverName> [options]
|
|
1886
1948
|
|
|
1887
1949
|
Options:
|
|
1888
|
-
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | crush (repeatable)
|
|
1950
|
+
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
|
|
1889
1951
|
--name <serverName> required MCP server name key
|
|
1890
1952
|
--global write to global user config (default)
|
|
1891
1953
|
--local write to project config (where supported)
|
|
@@ -1895,6 +1957,7 @@ Options:
|
|
|
1895
1957
|
|
|
1896
1958
|
Notes:
|
|
1897
1959
|
Antigravity and Qwen are global-only; use --global.
|
|
1960
|
+
Gemini is local-only (project .gemini/settings.json); use --local.
|
|
1898
1961
|
`);
|
|
1899
1962
|
break;
|
|
1900
1963
|
case "where":
|
|
@@ -1904,7 +1967,7 @@ Usage:
|
|
|
1904
1967
|
mcp-conf where --client <name> --name <serverName> [options]
|
|
1905
1968
|
|
|
1906
1969
|
Options:
|
|
1907
|
-
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | crush (repeatable)
|
|
1970
|
+
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
|
|
1908
1971
|
--name <serverName> required MCP server name key
|
|
1909
1972
|
--global write to global user config (default)
|
|
1910
1973
|
--local write to project config (where supported)
|
|
@@ -1913,6 +1976,7 @@ Options:
|
|
|
1913
1976
|
|
|
1914
1977
|
Notes:
|
|
1915
1978
|
Antigravity and Qwen are global-only; use --global.
|
|
1979
|
+
Gemini is local-only (project .gemini/settings.json); use --local.
|
|
1916
1980
|
`);
|
|
1917
1981
|
break;
|
|
1918
1982
|
case "show":
|
|
@@ -1922,7 +1986,7 @@ Usage:
|
|
|
1922
1986
|
mcp-conf show --client <name> --name <serverName> [options]
|
|
1923
1987
|
|
|
1924
1988
|
Options:
|
|
1925
|
-
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | crush (repeatable)
|
|
1989
|
+
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
|
|
1926
1990
|
--name <serverName> required MCP server name key
|
|
1927
1991
|
--global read from global user config (default)
|
|
1928
1992
|
--local read from project config (where supported)
|
|
@@ -1933,6 +1997,7 @@ Options:
|
|
|
1933
1997
|
|
|
1934
1998
|
Notes:
|
|
1935
1999
|
Antigravity and Qwen are global-only; use --global.
|
|
2000
|
+
Gemini is local-only (project .gemini/settings.json); use --local.
|
|
1936
2001
|
`);
|
|
1937
2002
|
break;
|
|
1938
2003
|
case "update":
|
|
@@ -1942,7 +2007,7 @@ Usage:
|
|
|
1942
2007
|
mcp-conf update --client <name> --name <serverName> [--env <name> | --env-path <path> | --session-env | --mcp <dest>] [options]
|
|
1943
2008
|
|
|
1944
2009
|
Options:
|
|
1945
|
-
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | crush (repeatable)
|
|
2010
|
+
--client <name> cline | codex | claude | goose | cursor | windsurf | opencode | kilo | copilot | antigravity | qwen | gemini | crush (repeatable)
|
|
1946
2011
|
--name <serverName> required MCP server name key
|
|
1947
2012
|
--env <name> env profile name (stdio only), writes --env=<name>
|
|
1948
2013
|
--env-path <path> .env path (stdio only)
|
|
@@ -1959,6 +2024,7 @@ Options:
|
|
|
1959
2024
|
|
|
1960
2025
|
Notes:
|
|
1961
2026
|
Antigravity and Qwen are global-only; use --global.
|
|
2027
|
+
Gemini is local-only (project .gemini/settings.json); use --local.
|
|
1962
2028
|
`);
|
|
1963
2029
|
break;
|
|
1964
2030
|
case "tui":
|
|
@@ -25,6 +25,8 @@ mcp-conf add --client kilo --name abap --transport http --url http://localhost:3
|
|
|
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
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
|
|
28
30
|
mcp-conf add --client crush --name abap --mcp TRIAL
|
|
29
31
|
mcp-conf add --client crush --name abap --transport http --url http://localhost:3000/mcp/stream/http
|
|
30
32
|
mcp-conf tui
|
|
@@ -53,6 +55,7 @@ mcp-conf enable --client codex --name abap
|
|
|
53
55
|
mcp-conf enable --client cline --name abap
|
|
54
56
|
mcp-conf enable --client antigravity --name abap
|
|
55
57
|
mcp-conf enable --client qwen --name abap
|
|
58
|
+
mcp-conf enable --client gemini --name abap
|
|
56
59
|
mcp-conf enable --client crush --name abap
|
|
57
60
|
```
|
|
58
61
|
|
|
@@ -63,6 +66,7 @@ mcp-conf rm --client cline --name abap
|
|
|
63
66
|
mcp-conf rm --client claude --name abap
|
|
64
67
|
mcp-conf rm --client antigravity --name abap
|
|
65
68
|
mcp-conf rm --client qwen --name abap
|
|
69
|
+
mcp-conf rm --client gemini --name abap
|
|
66
70
|
mcp-conf rm --client crush --name abap
|
|
67
71
|
```
|
|
68
72
|
|
|
@@ -74,6 +78,7 @@ mcp-conf ls --client claude --local
|
|
|
74
78
|
mcp-conf ls --client claude --all-projects
|
|
75
79
|
mcp-conf ls --client antigravity --global
|
|
76
80
|
mcp-conf ls --client qwen --global
|
|
81
|
+
mcp-conf ls --client gemini
|
|
77
82
|
mcp-conf ls --client crush
|
|
78
83
|
mcp-conf ls --client crush --local
|
|
79
84
|
```
|
|
@@ -97,7 +102,7 @@ mcp-conf tui
|
|
|
97
102
|
|
|
98
103
|
Options:
|
|
99
104
|
- Commands: `add`, `rm`, `ls`, `show`, `enable`, `disable`, `where`, `update`, `tui` (first argument)
|
|
100
|
-
- `--client <name>` (repeatable): `cline`, `codex`, `claude`, `goose`, `cursor`, `windsurf`, `opencode` (`kilo` alias), `copilot`, `antigravity`, `qwen`, `crush`
|
|
105
|
+
- `--client <name>` (repeatable): `cline`, `codex`, `claude`, `goose`, `cursor`, `windsurf`, `opencode` (`kilo` alias), `copilot`, `antigravity`, `qwen`, `gemini`, `crush`
|
|
101
106
|
- `--env <name>`: use named env profile; writes `--env=<name>` (stdio only)
|
|
102
107
|
- `--env-path <path>`: use a specific `.env` file (stdio only)
|
|
103
108
|
- `--session-env`: use shell/session environment variables (stdio only)
|
|
@@ -106,7 +111,7 @@ Options:
|
|
|
106
111
|
- `--transport <type>`: `stdio`, `sse`, or `http` (`http` maps to `streamableHttp`)
|
|
107
112
|
- `--command <bin>`: command to run (default: `mcp-abap-adt`)
|
|
108
113
|
- `--global`: write to the global user config (default)
|
|
109
|
-
- `--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`)
|
|
110
115
|
- `--all-projects`: for Claude (global scope), apply `rm/enable/disable/ls/where` across all projects
|
|
111
116
|
- `--project <path>`: for Claude (global scope), target a specific project path
|
|
112
117
|
- `--url <http(s)://...>`: required for `sse` and `http`
|
|
@@ -121,6 +126,7 @@ Notes:
|
|
|
121
126
|
- Cursor/Copilot enable/disable are not implemented yet.
|
|
122
127
|
- Antigravity enable/disable uses `disabled: true|false` on the entry.
|
|
123
128
|
- Antigravity and Qwen are global-only; use `--global`.
|
|
129
|
+
- Gemini is local-only (project `.gemini/settings.json`); use `--local`.
|
|
124
130
|
- Claude stores enable/disable state under `enabledMcpServers` and `disabledMcpServers` for each project.
|
|
125
131
|
- Claude enable/disable always updates `~/.claude.json` (global scope), even if you pass `--local`.
|
|
126
132
|
- Antigravity HTTP entries use `serverUrl` instead of `url`.
|
|
@@ -184,5 +190,7 @@ Local (project) locations:
|
|
|
184
190
|
- Project: `./.vscode/mcp.json` (uses `servers.<name>` entries)
|
|
185
191
|
- **Antigravity**:
|
|
186
192
|
- Project: `./.antigravity/mcp.json` (community-reported; not supported yet)
|
|
193
|
+
- **Gemini**:
|
|
194
|
+
- Project: `./.gemini/settings.json` (uses `mcpServers.<name>`)
|
|
187
195
|
- **Crush**:
|
|
188
196
|
- Project: `./.crush.json` (uses `mcp.<name>` entries with `disabled: true|false`)
|