@mcp-use/cli 2.8.2-canary.0 → 2.8.2-canary.2
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/commands/client.d.ts +0 -3
- package/dist/commands/client.d.ts.map +1 -1
- package/dist/index.cjs +106 -85
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +106 -85
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/commands/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/commands/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -1805,88 +1805,9 @@ async function whoamiCommand() {
|
|
|
1805
1805
|
|
|
1806
1806
|
// src/commands/client.ts
|
|
1807
1807
|
var import_commander = require("commander");
|
|
1808
|
-
var
|
|
1808
|
+
var import_mcp_use = require("mcp-use");
|
|
1809
1809
|
var import_client = require("mcp-use/client");
|
|
1810
|
-
|
|
1811
|
-
// src/utils/session-storage.ts
|
|
1812
|
-
var import_node_os4 = require("os");
|
|
1813
|
-
var import_node_path3 = require("path");
|
|
1814
|
-
var import_promises4 = require("fs/promises");
|
|
1815
|
-
var import_node_fs5 = require("fs");
|
|
1816
|
-
var SESSION_FILE_PATH = (0, import_node_path3.join)((0, import_node_os4.homedir)(), ".mcp-use", "cli-sessions.json");
|
|
1817
|
-
async function ensureSessionDir() {
|
|
1818
|
-
const dir = (0, import_node_path3.join)((0, import_node_os4.homedir)(), ".mcp-use");
|
|
1819
|
-
if (!(0, import_node_fs5.existsSync)(dir)) {
|
|
1820
|
-
await (0, import_promises4.mkdir)(dir, { recursive: true });
|
|
1821
|
-
}
|
|
1822
|
-
}
|
|
1823
|
-
async function loadSessions() {
|
|
1824
|
-
try {
|
|
1825
|
-
await ensureSessionDir();
|
|
1826
|
-
if (!(0, import_node_fs5.existsSync)(SESSION_FILE_PATH)) {
|
|
1827
|
-
return { activeSession: null, sessions: {} };
|
|
1828
|
-
}
|
|
1829
|
-
const content = await (0, import_promises4.readFile)(SESSION_FILE_PATH, "utf-8");
|
|
1830
|
-
return JSON.parse(content);
|
|
1831
|
-
} catch (error) {
|
|
1832
|
-
return { activeSession: null, sessions: {} };
|
|
1833
|
-
}
|
|
1834
|
-
}
|
|
1835
|
-
async function saveSessions(storage) {
|
|
1836
|
-
await ensureSessionDir();
|
|
1837
|
-
await (0, import_promises4.writeFile)(SESSION_FILE_PATH, JSON.stringify(storage, null, 2), "utf-8");
|
|
1838
|
-
}
|
|
1839
|
-
async function saveSession(name, config) {
|
|
1840
|
-
const storage = await loadSessions();
|
|
1841
|
-
storage.sessions[name] = {
|
|
1842
|
-
...config,
|
|
1843
|
-
lastUsed: (/* @__PURE__ */ new Date()).toISOString()
|
|
1844
|
-
};
|
|
1845
|
-
if (!storage.activeSession) {
|
|
1846
|
-
storage.activeSession = name;
|
|
1847
|
-
}
|
|
1848
|
-
await saveSessions(storage);
|
|
1849
|
-
}
|
|
1850
|
-
async function getActiveSession() {
|
|
1851
|
-
const storage = await loadSessions();
|
|
1852
|
-
if (!storage.activeSession || !storage.sessions[storage.activeSession]) {
|
|
1853
|
-
return null;
|
|
1854
|
-
}
|
|
1855
|
-
return {
|
|
1856
|
-
name: storage.activeSession,
|
|
1857
|
-
config: storage.sessions[storage.activeSession]
|
|
1858
|
-
};
|
|
1859
|
-
}
|
|
1860
|
-
async function getSession(name) {
|
|
1861
|
-
const storage = await loadSessions();
|
|
1862
|
-
return storage.sessions[name] || null;
|
|
1863
|
-
}
|
|
1864
|
-
async function setActiveSession(name) {
|
|
1865
|
-
const storage = await loadSessions();
|
|
1866
|
-
if (!storage.sessions[name]) {
|
|
1867
|
-
throw new Error(`Session '${name}' not found`);
|
|
1868
|
-
}
|
|
1869
|
-
storage.activeSession = name;
|
|
1870
|
-
storage.sessions[name].lastUsed = (/* @__PURE__ */ new Date()).toISOString();
|
|
1871
|
-
await saveSessions(storage);
|
|
1872
|
-
}
|
|
1873
|
-
async function listAllSessions() {
|
|
1874
|
-
const storage = await loadSessions();
|
|
1875
|
-
return Object.entries(storage.sessions).map(([name, config]) => ({
|
|
1876
|
-
name,
|
|
1877
|
-
config,
|
|
1878
|
-
isActive: name === storage.activeSession
|
|
1879
|
-
}));
|
|
1880
|
-
}
|
|
1881
|
-
async function updateSessionInfo(name, serverInfo, capabilities) {
|
|
1882
|
-
const storage = await loadSessions();
|
|
1883
|
-
if (storage.sessions[name]) {
|
|
1884
|
-
storage.sessions[name].serverInfo = serverInfo;
|
|
1885
|
-
storage.sessions[name].capabilities = capabilities;
|
|
1886
|
-
storage.sessions[name].lastUsed = (/* @__PURE__ */ new Date()).toISOString();
|
|
1887
|
-
await saveSessions(storage);
|
|
1888
|
-
}
|
|
1889
|
-
}
|
|
1810
|
+
var import_node_readline = require("readline");
|
|
1890
1811
|
|
|
1891
1812
|
// src/utils/format.ts
|
|
1892
1813
|
function formatTable(data, columns) {
|
|
@@ -2124,6 +2045,86 @@ function formatPromptMessages(messages) {
|
|
|
2124
2045
|
return lines.join("\n");
|
|
2125
2046
|
}
|
|
2126
2047
|
|
|
2048
|
+
// src/utils/session-storage.ts
|
|
2049
|
+
var import_node_os4 = require("os");
|
|
2050
|
+
var import_node_path3 = require("path");
|
|
2051
|
+
var import_promises4 = require("fs/promises");
|
|
2052
|
+
var import_node_fs5 = require("fs");
|
|
2053
|
+
var SESSION_FILE_PATH = (0, import_node_path3.join)((0, import_node_os4.homedir)(), ".mcp-use", "cli-sessions.json");
|
|
2054
|
+
async function ensureSessionDir() {
|
|
2055
|
+
const dir = (0, import_node_path3.join)((0, import_node_os4.homedir)(), ".mcp-use");
|
|
2056
|
+
if (!(0, import_node_fs5.existsSync)(dir)) {
|
|
2057
|
+
await (0, import_promises4.mkdir)(dir, { recursive: true });
|
|
2058
|
+
}
|
|
2059
|
+
}
|
|
2060
|
+
async function loadSessions() {
|
|
2061
|
+
try {
|
|
2062
|
+
await ensureSessionDir();
|
|
2063
|
+
if (!(0, import_node_fs5.existsSync)(SESSION_FILE_PATH)) {
|
|
2064
|
+
return { activeSession: null, sessions: {} };
|
|
2065
|
+
}
|
|
2066
|
+
const content = await (0, import_promises4.readFile)(SESSION_FILE_PATH, "utf-8");
|
|
2067
|
+
return JSON.parse(content);
|
|
2068
|
+
} catch (error) {
|
|
2069
|
+
return { activeSession: null, sessions: {} };
|
|
2070
|
+
}
|
|
2071
|
+
}
|
|
2072
|
+
async function saveSessions(storage) {
|
|
2073
|
+
await ensureSessionDir();
|
|
2074
|
+
await (0, import_promises4.writeFile)(SESSION_FILE_PATH, JSON.stringify(storage, null, 2), "utf-8");
|
|
2075
|
+
}
|
|
2076
|
+
async function saveSession(name, config) {
|
|
2077
|
+
const storage = await loadSessions();
|
|
2078
|
+
storage.sessions[name] = {
|
|
2079
|
+
...config,
|
|
2080
|
+
lastUsed: (/* @__PURE__ */ new Date()).toISOString()
|
|
2081
|
+
};
|
|
2082
|
+
if (!storage.activeSession) {
|
|
2083
|
+
storage.activeSession = name;
|
|
2084
|
+
}
|
|
2085
|
+
await saveSessions(storage);
|
|
2086
|
+
}
|
|
2087
|
+
async function getActiveSession() {
|
|
2088
|
+
const storage = await loadSessions();
|
|
2089
|
+
if (!storage.activeSession || !storage.sessions[storage.activeSession]) {
|
|
2090
|
+
return null;
|
|
2091
|
+
}
|
|
2092
|
+
return {
|
|
2093
|
+
name: storage.activeSession,
|
|
2094
|
+
config: storage.sessions[storage.activeSession]
|
|
2095
|
+
};
|
|
2096
|
+
}
|
|
2097
|
+
async function getSession(name) {
|
|
2098
|
+
const storage = await loadSessions();
|
|
2099
|
+
return storage.sessions[name] || null;
|
|
2100
|
+
}
|
|
2101
|
+
async function setActiveSession(name) {
|
|
2102
|
+
const storage = await loadSessions();
|
|
2103
|
+
if (!storage.sessions[name]) {
|
|
2104
|
+
throw new Error(`Session '${name}' not found`);
|
|
2105
|
+
}
|
|
2106
|
+
storage.activeSession = name;
|
|
2107
|
+
storage.sessions[name].lastUsed = (/* @__PURE__ */ new Date()).toISOString();
|
|
2108
|
+
await saveSessions(storage);
|
|
2109
|
+
}
|
|
2110
|
+
async function listAllSessions() {
|
|
2111
|
+
const storage = await loadSessions();
|
|
2112
|
+
return Object.entries(storage.sessions).map(([name, config]) => ({
|
|
2113
|
+
name,
|
|
2114
|
+
config,
|
|
2115
|
+
isActive: name === storage.activeSession
|
|
2116
|
+
}));
|
|
2117
|
+
}
|
|
2118
|
+
async function updateSessionInfo(name, serverInfo, capabilities) {
|
|
2119
|
+
const storage = await loadSessions();
|
|
2120
|
+
if (storage.sessions[name]) {
|
|
2121
|
+
storage.sessions[name].serverInfo = serverInfo;
|
|
2122
|
+
storage.sessions[name].capabilities = capabilities;
|
|
2123
|
+
storage.sessions[name].lastUsed = (/* @__PURE__ */ new Date()).toISOString();
|
|
2124
|
+
await saveSessions(storage);
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
2127
|
+
|
|
2127
2128
|
// src/commands/client.ts
|
|
2128
2129
|
var activeSessions = /* @__PURE__ */ new Map();
|
|
2129
2130
|
async function getOrRestoreSession(sessionName) {
|
|
@@ -2151,16 +2152,19 @@ async function getOrRestoreSession(sessionName) {
|
|
|
2151
2152
|
}
|
|
2152
2153
|
try {
|
|
2153
2154
|
const client = new import_client.MCPClient();
|
|
2155
|
+
const cliClientInfo = getCliClientInfo();
|
|
2154
2156
|
if (config.type === "http") {
|
|
2155
2157
|
client.addServer(sessionName, {
|
|
2156
2158
|
url: config.url,
|
|
2157
|
-
headers: config.authToken ? { Authorization: `Bearer ${config.authToken}` } : void 0
|
|
2159
|
+
headers: config.authToken ? { Authorization: `Bearer ${config.authToken}` } : void 0,
|
|
2160
|
+
clientInfo: cliClientInfo
|
|
2158
2161
|
});
|
|
2159
2162
|
} else if (config.type === "stdio") {
|
|
2160
2163
|
client.addServer(sessionName, {
|
|
2161
2164
|
command: config.command,
|
|
2162
2165
|
args: config.args || [],
|
|
2163
|
-
env: config.env
|
|
2166
|
+
env: config.env,
|
|
2167
|
+
clientInfo: cliClientInfo
|
|
2164
2168
|
});
|
|
2165
2169
|
} else {
|
|
2166
2170
|
console.error(formatError(`Unknown session type: ${config.type}`));
|
|
@@ -2175,11 +2179,26 @@ async function getOrRestoreSession(sessionName) {
|
|
|
2175
2179
|
return null;
|
|
2176
2180
|
}
|
|
2177
2181
|
}
|
|
2182
|
+
function getCliClientInfo() {
|
|
2183
|
+
return {
|
|
2184
|
+
name: "mcp-use CLI",
|
|
2185
|
+
title: "mcp-use CLI",
|
|
2186
|
+
version: (0, import_mcp_use.getPackageVersion)(),
|
|
2187
|
+
description: "mcp-use CLI - Command-line interface for MCP servers",
|
|
2188
|
+
icons: [
|
|
2189
|
+
{
|
|
2190
|
+
src: "https://mcp-use.com/logo.png"
|
|
2191
|
+
}
|
|
2192
|
+
],
|
|
2193
|
+
websiteUrl: "https://mcp-use.com"
|
|
2194
|
+
};
|
|
2195
|
+
}
|
|
2178
2196
|
async function connectCommand(urlOrCommand, options) {
|
|
2179
2197
|
try {
|
|
2180
2198
|
const sessionName = options.name || `session-${Date.now()}`;
|
|
2181
2199
|
const client = new import_client.MCPClient();
|
|
2182
2200
|
let session;
|
|
2201
|
+
const cliClientInfo = getCliClientInfo();
|
|
2183
2202
|
if (options.stdio) {
|
|
2184
2203
|
const parts = urlOrCommand.split(" ");
|
|
2185
2204
|
const command = parts[0];
|
|
@@ -2189,7 +2208,8 @@ async function connectCommand(urlOrCommand, options) {
|
|
|
2189
2208
|
);
|
|
2190
2209
|
client.addServer(sessionName, {
|
|
2191
2210
|
command,
|
|
2192
|
-
args
|
|
2211
|
+
args,
|
|
2212
|
+
clientInfo: cliClientInfo
|
|
2193
2213
|
});
|
|
2194
2214
|
session = await client.createSession(sessionName);
|
|
2195
2215
|
await saveSession(sessionName, {
|
|
@@ -2202,7 +2222,8 @@ async function connectCommand(urlOrCommand, options) {
|
|
|
2202
2222
|
console.error(formatInfo(`Connecting to ${urlOrCommand}...`));
|
|
2203
2223
|
client.addServer(sessionName, {
|
|
2204
2224
|
url: urlOrCommand,
|
|
2205
|
-
headers: options.auth ? { Authorization: `Bearer ${options.auth}` } : void 0
|
|
2225
|
+
headers: options.auth ? { Authorization: `Bearer ${options.auth}` } : void 0,
|
|
2226
|
+
clientInfo: cliClientInfo
|
|
2206
2227
|
});
|
|
2207
2228
|
session = await client.createSession(sessionName);
|
|
2208
2229
|
await saveSession(sessionName, {
|