nia-wizard 0.1.2 → 0.1.3
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/dist/bin.js +1 -1
- package/dist/{chunk-Y3PXW4WX.js → chunk-KC437AQI.js} +210 -1
- package/dist/chunk-KC437AQI.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-Y3PXW4WX.js.map +0 -1
package/dist/bin.js
CHANGED
|
@@ -166,6 +166,18 @@ function getDefaultServerConfig(apiKey, mode) {
|
|
|
166
166
|
// src/steps/add-mcp-server-to-clients/MCPClient.ts
|
|
167
167
|
var SERVER_NAME = "nia";
|
|
168
168
|
var MCPClient = class {
|
|
169
|
+
/**
|
|
170
|
+
* Documentation URL for this client's MCP setup
|
|
171
|
+
*/
|
|
172
|
+
docsUrl;
|
|
173
|
+
/**
|
|
174
|
+
* Special notes for this client (e.g., alternative install methods)
|
|
175
|
+
*/
|
|
176
|
+
note;
|
|
177
|
+
/**
|
|
178
|
+
* Whether this client uses CLI commands instead of config files
|
|
179
|
+
*/
|
|
180
|
+
usesCLI;
|
|
169
181
|
/**
|
|
170
182
|
* Check if server is already installed
|
|
171
183
|
*/
|
|
@@ -486,6 +498,7 @@ import * as os from "os";
|
|
|
486
498
|
import * as fs2 from "fs";
|
|
487
499
|
var CursorMCPClient = class extends MCPClient {
|
|
488
500
|
name = "Cursor";
|
|
501
|
+
docsUrl = "https://cursor.com/docs/context/mcp";
|
|
489
502
|
async isClientSupported() {
|
|
490
503
|
const platform = process.platform;
|
|
491
504
|
if (platform !== "darwin" && platform !== "win32") {
|
|
@@ -509,6 +522,7 @@ var CursorMCPClient = class extends MCPClient {
|
|
|
509
522
|
return getRemoteServerConfig(apiKey);
|
|
510
523
|
}
|
|
511
524
|
return {
|
|
525
|
+
type: "stdio",
|
|
512
526
|
command: "pipx",
|
|
513
527
|
args: ["run", "--no-cache", "nia-mcp-server"],
|
|
514
528
|
env: {
|
|
@@ -525,6 +539,8 @@ import * as os2 from "os";
|
|
|
525
539
|
import * as fs3 from "fs";
|
|
526
540
|
var ClaudeDesktopMCPClient = class extends MCPClient {
|
|
527
541
|
name = "Claude Desktop";
|
|
542
|
+
docsUrl = "https://modelcontextprotocol.io/quickstart/user";
|
|
543
|
+
note = "Only supports local (stdio) mode";
|
|
528
544
|
async isClientSupported() {
|
|
529
545
|
const platform = process.platform;
|
|
530
546
|
if (platform !== "darwin" && platform !== "win32") {
|
|
@@ -585,6 +601,8 @@ import * as os3 from "os";
|
|
|
585
601
|
import * as path4 from "path";
|
|
586
602
|
var ClaudeCodeMCPClient = class extends MCPClient {
|
|
587
603
|
name = "Claude Code";
|
|
604
|
+
docsUrl = "https://docs.anthropic.com/en/docs/claude-code/mcp-servers";
|
|
605
|
+
usesCLI = true;
|
|
588
606
|
claudeBinaryPath = null;
|
|
589
607
|
async isClientSupported() {
|
|
590
608
|
try {
|
|
@@ -682,6 +700,7 @@ import * as os4 from "os";
|
|
|
682
700
|
import * as fs5 from "fs";
|
|
683
701
|
var VSCodeMCPClient = class extends MCPClient {
|
|
684
702
|
name = "VS Code";
|
|
703
|
+
docsUrl = "https://code.visualstudio.com/docs/copilot/chat/mcp-servers";
|
|
685
704
|
async isClientSupported() {
|
|
686
705
|
const platform = process.platform;
|
|
687
706
|
if (platform !== "darwin" && platform !== "win32" && platform !== "linux") {
|
|
@@ -744,6 +763,7 @@ import * as os5 from "os";
|
|
|
744
763
|
import * as fs6 from "fs";
|
|
745
764
|
var WindsurfMCPClient = class extends MCPClient {
|
|
746
765
|
name = "Windsurf";
|
|
766
|
+
docsUrl = "https://docs.windsurf.com/windsurf/cascade/mcp";
|
|
747
767
|
async isClientSupported() {
|
|
748
768
|
const platform = process.platform;
|
|
749
769
|
if (platform !== "darwin" && platform !== "win32" && platform !== "linux") {
|
|
@@ -797,6 +817,8 @@ import * as os6 from "os";
|
|
|
797
817
|
import * as fs7 from "fs";
|
|
798
818
|
var ZedMCPClient = class extends MCPClient {
|
|
799
819
|
name = "Zed";
|
|
820
|
+
docsUrl = "https://zed.dev/docs/ai/mcp";
|
|
821
|
+
note = "Only supports local (stdio) mode";
|
|
800
822
|
async isClientSupported() {
|
|
801
823
|
const platform = process.platform;
|
|
802
824
|
if (platform !== "darwin" && platform !== "linux") {
|
|
@@ -845,6 +867,7 @@ import * as os7 from "os";
|
|
|
845
867
|
import * as fs8 from "fs";
|
|
846
868
|
var ClineMCPClient = class extends MCPClient {
|
|
847
869
|
name = "Cline";
|
|
870
|
+
docsUrl = "https://docs.cline.bot/mcp/configuring-mcp-servers";
|
|
848
871
|
async isClientSupported() {
|
|
849
872
|
const configPath = await this.getConfigPath();
|
|
850
873
|
const configDir = path8.dirname(configPath);
|
|
@@ -893,6 +916,9 @@ var ClineMCPClient = class extends MCPClient {
|
|
|
893
916
|
import { execSync as execSync2, spawnSync } from "child_process";
|
|
894
917
|
var CodexMCPClient = class extends MCPClient {
|
|
895
918
|
name = "Codex CLI";
|
|
919
|
+
docsUrl = "https://developers.openai.com/codex/mcp/";
|
|
920
|
+
usesCLI = true;
|
|
921
|
+
note = "Only supports local mode, uses CLI configuration";
|
|
896
922
|
async isClientSupported() {
|
|
897
923
|
try {
|
|
898
924
|
execSync2("codex --version", { stdio: "ignore" });
|
|
@@ -965,6 +991,7 @@ import * as os8 from "os";
|
|
|
965
991
|
import * as fs9 from "fs";
|
|
966
992
|
var ContinueMCPClient = class extends MCPClient {
|
|
967
993
|
name = "Continue.dev";
|
|
994
|
+
docsUrl = "https://docs.continue.dev/customize/mcp-tools";
|
|
968
995
|
async isClientSupported() {
|
|
969
996
|
const configPath = await this.getConfigPath();
|
|
970
997
|
const configDir = path9.dirname(configPath);
|
|
@@ -1016,6 +1043,8 @@ import * as os9 from "os";
|
|
|
1016
1043
|
import * as fs10 from "fs";
|
|
1017
1044
|
var JetBrainsMCPClient = class extends MCPClient {
|
|
1018
1045
|
name = "JetBrains";
|
|
1046
|
+
docsUrl = "https://www.jetbrains.com/help/idea/mcp-server.html";
|
|
1047
|
+
note = "Only supports local (stdio) mode";
|
|
1019
1048
|
async isClientSupported() {
|
|
1020
1049
|
const homeDir = os9.homedir();
|
|
1021
1050
|
const possibleDirs = [
|
|
@@ -1051,6 +1080,7 @@ import * as os10 from "os";
|
|
|
1051
1080
|
import * as fs11 from "fs";
|
|
1052
1081
|
var AntigravityMCPClient = class extends MCPClient {
|
|
1053
1082
|
name = "Google Antigravity";
|
|
1083
|
+
docsUrl = "https://developers.google.com/gemini-code-assist/docs/use-mcp-servers";
|
|
1054
1084
|
async isClientSupported() {
|
|
1055
1085
|
const configPath = await this.getConfigPath();
|
|
1056
1086
|
const configDir = path11.dirname(configPath);
|
|
@@ -1088,6 +1118,7 @@ import * as os11 from "os";
|
|
|
1088
1118
|
import * as fs12 from "fs";
|
|
1089
1119
|
var TraeMCPClient = class extends MCPClient {
|
|
1090
1120
|
name = "Trae";
|
|
1121
|
+
docsUrl = "https://docs.trae.ai/ide/model-context-protocol";
|
|
1091
1122
|
async isClientSupported() {
|
|
1092
1123
|
const configPath = await this.getConfigPath();
|
|
1093
1124
|
const configDir = path12.dirname(configPath);
|
|
@@ -1128,6 +1159,7 @@ import * as os12 from "os";
|
|
|
1128
1159
|
import * as fs13 from "fs";
|
|
1129
1160
|
var RooCodeMCPClient = class extends MCPClient {
|
|
1130
1161
|
name = "Roo Code";
|
|
1162
|
+
docsUrl = "https://docs.roocode.com/features/mcp/using-mcp-in-roo";
|
|
1131
1163
|
async isClientSupported() {
|
|
1132
1164
|
const configPath = await this.getConfigPath();
|
|
1133
1165
|
const configDir = path13.dirname(configPath);
|
|
@@ -1166,6 +1198,7 @@ import * as os13 from "os";
|
|
|
1166
1198
|
import * as fs14 from "fs";
|
|
1167
1199
|
var KiloCodeMCPClient = class extends MCPClient {
|
|
1168
1200
|
name = "Kilo Code";
|
|
1201
|
+
docsUrl = "https://kilo.ai/docs/features/mcp/using-mcp-in-kilo-code";
|
|
1169
1202
|
async isClientSupported() {
|
|
1170
1203
|
const configPath = await this.getConfigPath();
|
|
1171
1204
|
const configDir = path14.dirname(configPath);
|
|
@@ -1208,6 +1241,7 @@ import * as os14 from "os";
|
|
|
1208
1241
|
import * as fs15 from "fs";
|
|
1209
1242
|
var GeminiCLIMCPClient = class extends MCPClient {
|
|
1210
1243
|
name = "Gemini CLI";
|
|
1244
|
+
docsUrl = "https://googlegemini.com/docs/gemini-cli/tools/mcp-server";
|
|
1211
1245
|
async isClientSupported() {
|
|
1212
1246
|
const configPath = await this.getConfigPath();
|
|
1213
1247
|
const configDir = path15.dirname(configPath);
|
|
@@ -1249,6 +1283,8 @@ import * as os15 from "os";
|
|
|
1249
1283
|
import * as fs16 from "fs";
|
|
1250
1284
|
var OpencodeMCPClient = class extends MCPClient {
|
|
1251
1285
|
name = "Opencode";
|
|
1286
|
+
docsUrl = "https://opencode.ai/docs/mcp-servers/";
|
|
1287
|
+
note = "Also available as dedicated plugin: bunx nia-opencode@latest install (Demo: https://x.com/arlanr/status/1879212916125777962)";
|
|
1252
1288
|
async isClientSupported() {
|
|
1253
1289
|
const configPath = await this.getConfigPath();
|
|
1254
1290
|
const configDir = path16.dirname(configPath);
|
|
@@ -1289,6 +1325,7 @@ import * as os16 from "os";
|
|
|
1289
1325
|
import * as fs17 from "fs";
|
|
1290
1326
|
var QodoGenMCPClient = class extends MCPClient {
|
|
1291
1327
|
name = "Qodo Gen";
|
|
1328
|
+
docsUrl = "https://docs.qodo.ai/qodo-documentation/qodo-gen/tools-mcps/agentic-tools-mcps";
|
|
1292
1329
|
async isClientSupported() {
|
|
1293
1330
|
const configPath = await this.getConfigPath();
|
|
1294
1331
|
const configDir = path17.dirname(configPath);
|
|
@@ -1326,6 +1363,7 @@ import * as os17 from "os";
|
|
|
1326
1363
|
import * as fs18 from "fs";
|
|
1327
1364
|
var QwenCoderMCPClient = class extends MCPClient {
|
|
1328
1365
|
name = "Qwen Coder";
|
|
1366
|
+
docsUrl = "https://qwenlm.github.io/blog/qwen2.5-coder-family/";
|
|
1329
1367
|
async isClientSupported() {
|
|
1330
1368
|
const configPath = await this.getConfigPath();
|
|
1331
1369
|
const configDir = path18.dirname(configPath);
|
|
@@ -1367,6 +1405,7 @@ import * as os18 from "os";
|
|
|
1367
1405
|
import * as fs19 from "fs";
|
|
1368
1406
|
var VisualStudioMCPClient = class extends MCPClient {
|
|
1369
1407
|
name = "Visual Studio 2022";
|
|
1408
|
+
docsUrl = "https://learn.microsoft.com/en-us/visualstudio/ide/mcp-servers";
|
|
1370
1409
|
async isClientSupported() {
|
|
1371
1410
|
if (process.platform !== "win32") {
|
|
1372
1411
|
return false;
|
|
@@ -1409,6 +1448,7 @@ import * as os19 from "os";
|
|
|
1409
1448
|
import * as fs20 from "fs";
|
|
1410
1449
|
var CrushMCPClient = class extends MCPClient {
|
|
1411
1450
|
name = "Crush";
|
|
1451
|
+
docsUrl = "https://github.com/charmbracelet/crush";
|
|
1412
1452
|
async isClientSupported() {
|
|
1413
1453
|
const configPath = await this.getConfigPath();
|
|
1414
1454
|
const configDir = path20.dirname(configPath);
|
|
@@ -1449,6 +1489,7 @@ import * as fs21 from "fs";
|
|
|
1449
1489
|
var COPILOT_TOOLS = ["index", "search", "manage_resource", "nia_web_search", "nia_deep_research_agent"];
|
|
1450
1490
|
var CopilotCLIMCPClient = class extends MCPClient {
|
|
1451
1491
|
name = "Copilot CLI";
|
|
1492
|
+
docsUrl = "https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp";
|
|
1452
1493
|
async isClientSupported() {
|
|
1453
1494
|
const configPath = await this.getConfigPath();
|
|
1454
1495
|
const configDir = path21.dirname(configPath);
|
|
@@ -1488,6 +1529,7 @@ var CopilotCLIMCPClient = class extends MCPClient {
|
|
|
1488
1529
|
};
|
|
1489
1530
|
var CopilotAgentMCPClient = class extends MCPClient {
|
|
1490
1531
|
name = "Copilot Coding Agent";
|
|
1532
|
+
docsUrl = "https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp";
|
|
1491
1533
|
async isClientSupported() {
|
|
1492
1534
|
return fs21.existsSync(".github");
|
|
1493
1535
|
}
|
|
@@ -1526,6 +1568,8 @@ import * as path22 from "path";
|
|
|
1526
1568
|
import * as os21 from "os";
|
|
1527
1569
|
var AugmentMCPClient = class extends MCPClient {
|
|
1528
1570
|
name = "Augment Code";
|
|
1571
|
+
docsUrl = "https://docs.augmentcode.com/setup-augment/mcp";
|
|
1572
|
+
note = "Only supports local (stdio) mode";
|
|
1529
1573
|
async isClientSupported() {
|
|
1530
1574
|
return false;
|
|
1531
1575
|
}
|
|
@@ -1561,6 +1605,8 @@ import * as os22 from "os";
|
|
|
1561
1605
|
import * as fs22 from "fs";
|
|
1562
1606
|
var KiroMCPClient = class extends MCPClient {
|
|
1563
1607
|
name = "Kiro";
|
|
1608
|
+
docsUrl = "https://kiro.dev/docs/mcp/";
|
|
1609
|
+
note = "Only supports local (stdio) mode";
|
|
1564
1610
|
async isClientSupported() {
|
|
1565
1611
|
const configPath = await this.getConfigPath();
|
|
1566
1612
|
const configDir = path23.dirname(configPath);
|
|
@@ -1595,6 +1641,8 @@ import * as os23 from "os";
|
|
|
1595
1641
|
import * as fs23 from "fs";
|
|
1596
1642
|
var LMStudioMCPClient = class extends MCPClient {
|
|
1597
1643
|
name = "LM Studio";
|
|
1644
|
+
docsUrl = "https://lmstudio.ai/docs/app/mcp";
|
|
1645
|
+
note = "Only supports local (stdio) mode";
|
|
1598
1646
|
async isClientSupported() {
|
|
1599
1647
|
const configPath = await this.getConfigPath();
|
|
1600
1648
|
const configDir = path24.dirname(configPath);
|
|
@@ -1627,6 +1675,8 @@ import * as os24 from "os";
|
|
|
1627
1675
|
import * as fs24 from "fs";
|
|
1628
1676
|
var BoltAIMCPClient = class extends MCPClient {
|
|
1629
1677
|
name = "BoltAI";
|
|
1678
|
+
docsUrl = "https://docs.boltai.com/docs/plugins/mcp-servers";
|
|
1679
|
+
note = "Only supports local (stdio) mode, macOS only";
|
|
1630
1680
|
async isClientSupported() {
|
|
1631
1681
|
if (process.platform !== "darwin") {
|
|
1632
1682
|
return false;
|
|
@@ -1662,6 +1712,8 @@ import * as os25 from "os";
|
|
|
1662
1712
|
import * as fs25 from "fs";
|
|
1663
1713
|
var PerplexityMCPClient = class extends MCPClient {
|
|
1664
1714
|
name = "Perplexity Desktop";
|
|
1715
|
+
docsUrl = "https://docs.perplexity.ai/guides/mcp-server";
|
|
1716
|
+
note = "Only supports local (stdio) mode, macOS only";
|
|
1665
1717
|
async isClientSupported() {
|
|
1666
1718
|
if (process.platform !== "darwin") {
|
|
1667
1719
|
return false;
|
|
@@ -1697,6 +1749,8 @@ import * as os26 from "os";
|
|
|
1697
1749
|
import * as fs26 from "fs";
|
|
1698
1750
|
var WarpMCPClient = class extends MCPClient {
|
|
1699
1751
|
name = "Warp";
|
|
1752
|
+
docsUrl = "https://docs.warp.dev/knowledge-and-collaboration/mcp";
|
|
1753
|
+
note = "Only supports local (stdio) mode";
|
|
1700
1754
|
async isClientSupported() {
|
|
1701
1755
|
const configPath = await this.getConfigPath();
|
|
1702
1756
|
const configDir = path27.dirname(configPath);
|
|
@@ -1731,6 +1785,8 @@ import * as os27 from "os";
|
|
|
1731
1785
|
import * as fs27 from "fs";
|
|
1732
1786
|
var AmazonQMCPClient = class extends MCPClient {
|
|
1733
1787
|
name = "Amazon Q Developer CLI";
|
|
1788
|
+
docsUrl = "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp-configuration.html";
|
|
1789
|
+
note = "Only supports local (stdio) mode";
|
|
1734
1790
|
async isClientSupported() {
|
|
1735
1791
|
const configPath = await this.getConfigPath();
|
|
1736
1792
|
const configDir = path28.dirname(configPath);
|
|
@@ -1761,6 +1817,9 @@ var AmazonQMCPClient = class extends MCPClient {
|
|
|
1761
1817
|
import { execSync as execSync3, spawnSync as spawnSync2 } from "child_process";
|
|
1762
1818
|
var FactoryMCPClient = class extends MCPClient {
|
|
1763
1819
|
name = "Factory";
|
|
1820
|
+
docsUrl = "https://docs.factory.ai/cli/configuration/mcp";
|
|
1821
|
+
usesCLI = true;
|
|
1822
|
+
note = "Uses droid CLI for configuration";
|
|
1764
1823
|
async isClientSupported() {
|
|
1765
1824
|
try {
|
|
1766
1825
|
execSync3("droid --version", { stdio: "ignore" });
|
|
@@ -1843,6 +1902,9 @@ var FactoryMCPClient = class extends MCPClient {
|
|
|
1843
1902
|
import { execSync as execSync4, spawnSync as spawnSync3 } from "child_process";
|
|
1844
1903
|
var AmpMCPClient = class extends MCPClient {
|
|
1845
1904
|
name = "Amp";
|
|
1905
|
+
docsUrl = "https://ampcode.com/docs/customize/mcp";
|
|
1906
|
+
usesCLI = true;
|
|
1907
|
+
note = "Only supports remote mode, uses CLI configuration";
|
|
1846
1908
|
async isClientSupported() {
|
|
1847
1909
|
try {
|
|
1848
1910
|
execSync4("amp --version", { stdio: "ignore" });
|
|
@@ -1914,6 +1976,8 @@ import * as os28 from "os";
|
|
|
1914
1976
|
import * as fs28 from "fs";
|
|
1915
1977
|
var VibeMCPClient = class extends MCPClient {
|
|
1916
1978
|
name = "Mistral Vibe CLI";
|
|
1979
|
+
docsUrl = "https://github.com/mistralai/mistral-vibe?tab=readme-ov-file#mcp-server-configuration";
|
|
1980
|
+
note = "Only supports remote mode, uses TOML config";
|
|
1917
1981
|
async isClientSupported() {
|
|
1918
1982
|
const configPath = await this.getConfigPath();
|
|
1919
1983
|
return fs28.existsSync(configPath);
|
|
@@ -1991,6 +2055,44 @@ Authorization = "Bearer ${apiKey}"
|
|
|
1991
2055
|
};
|
|
1992
2056
|
|
|
1993
2057
|
// src/steps/add-mcp-server-to-clients/index.ts
|
|
2058
|
+
function getAllClients() {
|
|
2059
|
+
return [
|
|
2060
|
+
// Core / popular clients first
|
|
2061
|
+
new CursorMCPClient(),
|
|
2062
|
+
new ClaudeCodeMCPClient(),
|
|
2063
|
+
new ClaudeDesktopMCPClient(),
|
|
2064
|
+
new VSCodeMCPClient(),
|
|
2065
|
+
new WindsurfMCPClient(),
|
|
2066
|
+
new ClineMCPClient(),
|
|
2067
|
+
new ContinueMCPClient(),
|
|
2068
|
+
new ZedMCPClient(),
|
|
2069
|
+
new JetBrainsMCPClient(),
|
|
2070
|
+
// Additional clients
|
|
2071
|
+
new AntigravityMCPClient(),
|
|
2072
|
+
new TraeMCPClient(),
|
|
2073
|
+
new RooCodeMCPClient(),
|
|
2074
|
+
new KiloCodeMCPClient(),
|
|
2075
|
+
new GeminiCLIMCPClient(),
|
|
2076
|
+
new OpencodeMCPClient(),
|
|
2077
|
+
new QodoGenMCPClient(),
|
|
2078
|
+
new QwenCoderMCPClient(),
|
|
2079
|
+
new VisualStudioMCPClient(),
|
|
2080
|
+
new CrushMCPClient(),
|
|
2081
|
+
new CopilotCLIMCPClient(),
|
|
2082
|
+
new CopilotAgentMCPClient(),
|
|
2083
|
+
new AugmentMCPClient(),
|
|
2084
|
+
new KiroMCPClient(),
|
|
2085
|
+
new LMStudioMCPClient(),
|
|
2086
|
+
new BoltAIMCPClient(),
|
|
2087
|
+
new PerplexityMCPClient(),
|
|
2088
|
+
new WarpMCPClient(),
|
|
2089
|
+
new AmazonQMCPClient(),
|
|
2090
|
+
new CodexMCPClient(),
|
|
2091
|
+
new FactoryMCPClient(),
|
|
2092
|
+
new AmpMCPClient(),
|
|
2093
|
+
new VibeMCPClient()
|
|
2094
|
+
];
|
|
2095
|
+
}
|
|
1994
2096
|
async function getSupportedClients() {
|
|
1995
2097
|
const allClients = [
|
|
1996
2098
|
// Core / popular clients first
|
|
@@ -2387,11 +2489,118 @@ function dependenciesReady() {
|
|
|
2387
2489
|
}
|
|
2388
2490
|
|
|
2389
2491
|
// src/run.ts
|
|
2492
|
+
async function runManualMode() {
|
|
2493
|
+
const allClients = getAllClients();
|
|
2494
|
+
const selectedName = await abortIfCancelled(
|
|
2495
|
+
clack_default.select({
|
|
2496
|
+
message: "Select a coding agent to view its configuration:",
|
|
2497
|
+
options: allClients.map((client2) => ({
|
|
2498
|
+
value: client2.name,
|
|
2499
|
+
label: client2.name,
|
|
2500
|
+
hint: client2.note || void 0
|
|
2501
|
+
}))
|
|
2502
|
+
})
|
|
2503
|
+
);
|
|
2504
|
+
const client = allClients.find((c) => c.name === selectedName);
|
|
2505
|
+
if (!client) {
|
|
2506
|
+
clack_default.log.error("Client not found");
|
|
2507
|
+
return;
|
|
2508
|
+
}
|
|
2509
|
+
console.log("");
|
|
2510
|
+
clack_default.log.info(chalk3.bold(`Configuration for ${client.name}`));
|
|
2511
|
+
console.log("");
|
|
2512
|
+
if (client.docsUrl) {
|
|
2513
|
+
console.log(chalk3.cyan(" Documentation:"));
|
|
2514
|
+
console.log(` ${chalk3.underline(client.docsUrl)}`);
|
|
2515
|
+
console.log("");
|
|
2516
|
+
}
|
|
2517
|
+
if (client.note) {
|
|
2518
|
+
console.log(chalk3.yellow(" Note:"));
|
|
2519
|
+
console.log(` ${client.note}`);
|
|
2520
|
+
console.log("");
|
|
2521
|
+
}
|
|
2522
|
+
let configPath = "";
|
|
2523
|
+
try {
|
|
2524
|
+
configPath = await client.getConfigPath();
|
|
2525
|
+
console.log(chalk3.cyan(" Config file path:"));
|
|
2526
|
+
console.log(` ${configPath}`);
|
|
2527
|
+
console.log("");
|
|
2528
|
+
} catch {
|
|
2529
|
+
if (client.usesCLI) {
|
|
2530
|
+
console.log(chalk3.cyan(" Configuration method:"));
|
|
2531
|
+
console.log(` Uses CLI commands (no config file)`);
|
|
2532
|
+
console.log("");
|
|
2533
|
+
}
|
|
2534
|
+
}
|
|
2535
|
+
const exampleApiKey = "nk_YOUR_API_KEY_HERE";
|
|
2536
|
+
console.log(chalk3.cyan(" Local mode config (stdio):"));
|
|
2537
|
+
const localConfig = client.getServerConfig(exampleApiKey, "local");
|
|
2538
|
+
console.log(chalk3.dim(" Add this to your config file under the servers section:"));
|
|
2539
|
+
console.log("");
|
|
2540
|
+
console.log(chalk3.green(` "${client.name === "Cursor" ? "mcpServers" : client.getServerPropertyName()}": {`));
|
|
2541
|
+
console.log(chalk3.green(` "nia": ${JSON.stringify(localConfig, null, 6).split("\n").map((line, i) => i === 0 ? line : " " + line).join("\n")}`));
|
|
2542
|
+
console.log(chalk3.green(` }`));
|
|
2543
|
+
console.log("");
|
|
2544
|
+
console.log(chalk3.cyan(" Remote mode config (HTTP):"));
|
|
2545
|
+
const remoteConfig = client.getServerConfig(exampleApiKey, "remote");
|
|
2546
|
+
console.log(chalk3.dim(" Add this to your config file under the servers section:"));
|
|
2547
|
+
console.log("");
|
|
2548
|
+
console.log(chalk3.green(` "${client.name === "Cursor" ? "mcpServers" : client.getServerPropertyName()}": {`));
|
|
2549
|
+
console.log(chalk3.green(` "nia": ${JSON.stringify(remoteConfig, null, 6).split("\n").map((line, i) => i === 0 ? line : " " + line).join("\n")}`));
|
|
2550
|
+
console.log(chalk3.green(` }`));
|
|
2551
|
+
console.log("");
|
|
2552
|
+
if (client.usesCLI) {
|
|
2553
|
+
console.log(chalk3.cyan(" CLI commands:"));
|
|
2554
|
+
if (client.name === "Claude Code") {
|
|
2555
|
+
console.log(chalk3.dim(" Local mode:"));
|
|
2556
|
+
console.log(` claude mcp add nia -e "NIA_API_KEY=${exampleApiKey}" -e "NIA_API_URL=https://apigcp.trynia.ai/" -s user -- pipx run --no-cache nia-mcp-server`);
|
|
2557
|
+
console.log("");
|
|
2558
|
+
console.log(chalk3.dim(" Remote mode:"));
|
|
2559
|
+
console.log(` claude mcp add --transport http nia ${REMOTE_MCP_URL} --header "Authorization: Bearer ${exampleApiKey}" -s user`);
|
|
2560
|
+
} else if (client.name === "Codex CLI") {
|
|
2561
|
+
console.log(chalk3.dim(" Local mode:"));
|
|
2562
|
+
console.log(` codex mcp add nia --env "NIA_API_KEY=${exampleApiKey}" --env "NIA_API_URL=https://apigcp.trynia.ai/" -- pipx run --no-cache nia-mcp-server`);
|
|
2563
|
+
} else if (client.name === "Factory") {
|
|
2564
|
+
console.log(chalk3.dim(" Local mode:"));
|
|
2565
|
+
console.log(` droid mcp add nia "pipx run --no-cache nia-mcp-server" --env "NIA_API_KEY=${exampleApiKey}" --env "NIA_API_URL=https://apigcp.trynia.ai/"`);
|
|
2566
|
+
console.log("");
|
|
2567
|
+
console.log(chalk3.dim(" Remote mode:"));
|
|
2568
|
+
console.log(` droid mcp add nia ${REMOTE_MCP_URL} --type http --header "Authorization: Bearer ${exampleApiKey}"`);
|
|
2569
|
+
} else if (client.name === "Amp") {
|
|
2570
|
+
console.log(chalk3.dim(" Remote mode:"));
|
|
2571
|
+
console.log(` amp mcp add nia --header "Authorization=Bearer ${exampleApiKey}" ${REMOTE_MCP_URL}`);
|
|
2572
|
+
}
|
|
2573
|
+
console.log("");
|
|
2574
|
+
}
|
|
2575
|
+
clack_default.outro(chalk3.dim("Press Enter to exit"));
|
|
2576
|
+
}
|
|
2390
2577
|
async function runWizard(options) {
|
|
2391
2578
|
if (options.debug) {
|
|
2392
2579
|
enableDebug();
|
|
2393
2580
|
}
|
|
2394
2581
|
printWelcome();
|
|
2582
|
+
const wizardMode = await abortIfCancelled(
|
|
2583
|
+
clack_default.select({
|
|
2584
|
+
message: "What would you like to do?",
|
|
2585
|
+
options: [
|
|
2586
|
+
{
|
|
2587
|
+
value: "install",
|
|
2588
|
+
label: "Install Nia MCP Server",
|
|
2589
|
+
hint: "Automatically configure your coding agents"
|
|
2590
|
+
},
|
|
2591
|
+
{
|
|
2592
|
+
value: "manual",
|
|
2593
|
+
label: "Manual Setup (View Config)",
|
|
2594
|
+
hint: "View configuration for manual setup or troubleshooting"
|
|
2595
|
+
}
|
|
2596
|
+
],
|
|
2597
|
+
initialValue: "install"
|
|
2598
|
+
})
|
|
2599
|
+
);
|
|
2600
|
+
if (wizardMode === "manual") {
|
|
2601
|
+
await runManualMode();
|
|
2602
|
+
return;
|
|
2603
|
+
}
|
|
2395
2604
|
const apiKey = await getApiKey(options.apiKey);
|
|
2396
2605
|
let mode;
|
|
2397
2606
|
if (options.local !== void 0) {
|
|
@@ -2535,4 +2744,4 @@ export {
|
|
|
2535
2744
|
runMCPAdd,
|
|
2536
2745
|
runMCPRemove
|
|
2537
2746
|
};
|
|
2538
|
-
//# sourceMappingURL=chunk-
|
|
2747
|
+
//# sourceMappingURL=chunk-KC437AQI.js.map
|