@qodalis/mcp-cli 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.
Files changed (42) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +137 -26
  3. package/dist/src/cli.js +21 -11
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/config.d.ts +10 -6
  6. package/dist/src/config.d.ts.map +1 -1
  7. package/dist/src/config.js +25 -6
  8. package/dist/src/config.js.map +1 -1
  9. package/dist/src/dev/api.d.ts +94 -0
  10. package/dist/src/dev/api.d.ts.map +1 -0
  11. package/dist/src/dev/api.js +425 -0
  12. package/dist/src/dev/api.js.map +1 -0
  13. package/dist/src/dev/docs.d.ts +93 -0
  14. package/dist/src/dev/docs.d.ts.map +1 -0
  15. package/dist/src/dev/docs.js +275 -0
  16. package/dist/src/dev/docs.js.map +1 -0
  17. package/dist/src/dev/prompts.d.ts +11 -0
  18. package/dist/src/dev/prompts.d.ts.map +1 -0
  19. package/dist/src/dev/prompts.js +141 -0
  20. package/dist/src/dev/prompts.js.map +1 -0
  21. package/dist/src/dev/scaffold.d.ts +55 -0
  22. package/dist/src/dev/scaffold.d.ts.map +1 -0
  23. package/dist/src/dev/scaffold.js +213 -0
  24. package/dist/src/dev/scaffold.js.map +1 -0
  25. package/dist/src/dev/tools.d.ts +170 -0
  26. package/dist/src/dev/tools.d.ts.map +1 -0
  27. package/dist/src/dev/tools.js +258 -0
  28. package/dist/src/dev/tools.js.map +1 -0
  29. package/dist/src/index.d.ts +7 -2
  30. package/dist/src/index.d.ts.map +1 -1
  31. package/dist/src/index.js +6 -1
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/remote.d.ts +3 -1
  34. package/dist/src/remote.d.ts.map +1 -1
  35. package/dist/src/remote.js +17 -10
  36. package/dist/src/remote.js.map +1 -1
  37. package/dist/src/server.d.ts +11 -2
  38. package/dist/src/server.d.ts.map +1 -1
  39. package/dist/src/server.js +85 -15
  40. package/dist/src/server.js.map +1 -1
  41. package/docs/llms-full.txt +1740 -0
  42. package/package.json +7 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/dev/tools.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
- export { ConfigError, createEnvReader, describeConfig, ENV_FILE_VARIABLES, loadConfig, names, normalizeUrl, type AuthConfig, type Config, type Env, } from './config.js';
1
+ export { ConfigError, createEnvReader, DEFAULT_DOCS_URL, describeConfig, ENV_FILE_VARIABLES, loadConfig, names, normalizeUrl, type AuthConfig, type Config, type Env, } from './config.js';
2
+ export { ApiSource, extractDeclarations, formatLookup, lookupSymbol, normalizePackageName, type ApiLookup, type ApiSourceOptions, type TypeFiles, } from './dev/api.js';
3
+ export { DocsSource, parseDocs, readDocs, searchDocs, type Docs, type DocSection, type DocTopic, type SearchHit, } from './dev/docs.js';
4
+ export { getPrompt, PROMPTS } from './dev/prompts.js';
5
+ export { planScaffold, scaffoldPlugin, ScaffoldError, type ScaffoldPlan } from './dev/scaffold.js';
6
+ export { DEV_TOOLS, DevTools, type DevToolsOptions } from './dev/tools.js';
2
7
  export { applyEnvFile, parseEnvFile } from './env-file.js';
3
8
  export { classify, RemoteError, type FailureKind } from './errors.js';
4
9
  export { isToolAllowed, matchesPattern, type RemoteTool } from './filters.js';
5
10
  export { createFetch, MCP_PATH, RemoteServer, TOOLS_TTL_MS, type RemoteOptions } from './remote.js';
6
- export { buildInstructions, createProxyServer, SERVER_NAME, SERVER_VERSION, WEBSITE_URL, } from './server.js';
11
+ export { buildInstructions, createProxyServer, SERVER_NAME, type ProxyServerOptions, SERVER_VERSION, WEBSITE_URL, } from './server.js';
7
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,GAAG,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,WAAW,GACd,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,GAAG,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,SAAS,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,SAAS,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,KAAK,kBAAkB,EACvB,cAAc,EACd,WAAW,GACd,MAAM,aAAa,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,4 +1,9 @@
1
- export { ConfigError, createEnvReader, describeConfig, ENV_FILE_VARIABLES, loadConfig, names, normalizeUrl, } from './config.js';
1
+ export { ConfigError, createEnvReader, DEFAULT_DOCS_URL, describeConfig, ENV_FILE_VARIABLES, loadConfig, names, normalizeUrl, } from './config.js';
2
+ export { ApiSource, extractDeclarations, formatLookup, lookupSymbol, normalizePackageName, } from './dev/api.js';
3
+ export { DocsSource, parseDocs, readDocs, searchDocs, } from './dev/docs.js';
4
+ export { getPrompt, PROMPTS } from './dev/prompts.js';
5
+ export { planScaffold, scaffoldPlugin, ScaffoldError } from './dev/scaffold.js';
6
+ export { DEV_TOOLS, DevTools } from './dev/tools.js';
2
7
  export { applyEnvFile, parseEnvFile } from './env-file.js';
3
8
  export { classify, RemoteError } from './errors.js';
4
9
  export { isToolAllowed, matchesPattern } from './filters.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,GAIf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAmB,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AACpG,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,WAAW,GACd,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,GAIf,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,oBAAoB,GAIvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,GAKb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAqB,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAwB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAmB,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AACpG,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EAEX,cAAc,EACd,WAAW,GACd,MAAM,aAAa,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type CallToolRequestParams, type CallToolResult, type FetchLike } from '@modelcontextprotocol/client';
2
- import type { Config } from './config.js';
2
+ import { type Config } from './config.js';
3
3
  import type { RemoteTool } from './filters.js';
4
4
  export declare const MCP_PATH = "/api/qcli/mcp";
5
5
  export declare const SESSIONS_PATH = "/api/v1/qcli/sessions";
@@ -41,6 +41,8 @@ export declare class RemoteServer {
41
41
  private readonly closeFetch;
42
42
  private readonly log;
43
43
  private readonly now;
44
+ /** `config.url`, required to talk to a server */
45
+ private readonly url;
44
46
  constructor(config: Config, options: RemoteOptions);
45
47
  /** Remote tools (unfiltered), from the cache unless it is older than the TTL or `refresh`. */
46
48
  listTools(refresh?: boolean): Promise<RemoteTool[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,SAAS,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQ1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AACxC,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,wFAAwF;AACxF,eAAO,MAAM,YAAY,QAAS,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG;IACxB,kDAAkD;IAClD,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,wCAAwC;IACxC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG;IAAE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAc1F,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,YAAY;IAWjB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX5B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,UAAU,CAAkD;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAGd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa;IAc3C,8FAA8F;IACxF,SAAS,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAsBvD,8EAA8E;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAK7D,2EAA2E;IACrE,QAAQ,CAAC,MAAM,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAkBtF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B,mGAAmG;YACrF,GAAG;IAgCjB,OAAO,CAAC,OAAO;YAWD,IAAI;YAsBJ,UAAU;YAMV,WAAW;IAYzB,iEAAiE;YACnD,MAAM;IAuCpB,OAAO,CAAC,eAAe;CAQ1B"}
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,SAAS,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAQvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AACxC,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,wFAAwF;AACxF,eAAO,MAAM,YAAY,QAAS,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG;IACxB,kDAAkD;IAClD,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,wCAAwC;IACxC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG;IAAE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAc1F,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,YAAY;IAajB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAb5B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,UAAU,CAAkD;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAGR,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa;IAkB3C,8FAA8F;IACxF,SAAS,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAsBvD,8EAA8E;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAK7D,2EAA2E;IACrE,QAAQ,CAAC,MAAM,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAkBtF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B,mGAAmG;YACrF,GAAG;IAgCjB,OAAO,CAAC,OAAO;YAWD,IAAI;YAmBJ,UAAU;YAMV,WAAW;IAYzB,iEAAiE;YACnD,MAAM;IAuCpB,OAAO,CAAC,eAAe;CAQ1B"}
@@ -1,5 +1,6 @@
1
1
  import { Client, ProtocolError, StreamableHTTPClientTransport, } from '@modelcontextprotocol/client';
2
2
  import { Agent, fetch as undiciFetch } from 'undici';
3
+ import { ConfigError } from './config.js';
3
4
  import { classify, httpStatus, isRetryableNetworkError, networkCode, RemoteError, } from './errors.js';
4
5
  export const MCP_PATH = '/api/qcli/mcp';
5
6
  export const SESSIONS_PATH = '/api/v1/qcli/sessions';
@@ -40,9 +41,15 @@ export class RemoteServer {
40
41
  closeFetch;
41
42
  log;
42
43
  now;
44
+ /** `config.url`, required to talk to a server */
45
+ url;
43
46
  constructor(config, options) {
44
47
  this.config = config;
45
48
  this.options = options;
49
+ if (!config.url) {
50
+ throw new ConfigError('QCLI_URL is required to connect to a Qodalis CLI server.');
51
+ }
52
+ this.url = config.url;
46
53
  if (options.fetch) {
47
54
  this.fetchFn = options.fetch;
48
55
  this.closeFetch = async () => undefined;
@@ -103,7 +110,7 @@ export class RemoteServer {
103
110
  await client?.close().catch(() => undefined);
104
111
  if (this.sessionToken) {
105
112
  // End the password session we opened (best effort)
106
- await this.fetchFn(`${this.config.url}${SESSIONS_PATH}/current`, {
113
+ await this.fetchFn(`${this.url}${SESSIONS_PATH}/current`, {
107
114
  headers: { Authorization: `Bearer ${this.sessionToken}` },
108
115
  method: 'DELETE',
109
116
  signal: AbortSignal.timeout(2000),
@@ -154,7 +161,7 @@ export class RemoteServer {
154
161
  }
155
162
  async open() {
156
163
  const token = await this.bearerToken();
157
- const transport = new StreamableHTTPClientTransport(new URL(`${this.config.url}${MCP_PATH}`), {
164
+ const transport = new StreamableHTTPClientTransport(new URL(`${this.url}${MCP_PATH}`), {
158
165
  fetch: this.fetchFn,
159
166
  requestInit: { headers: token ? { Authorization: `Bearer ${token}` } : {} },
160
167
  });
@@ -167,7 +174,7 @@ export class RemoteServer {
167
174
  throw error;
168
175
  }
169
176
  const info = client.getServerVersion();
170
- this.log(`connected to ${this.config.url}${info ? ` (${info.name} ${info.version})` : ''}`);
177
+ this.log(`connected to ${this.url}${info ? ` (${info.name} ${info.version})` : ''}`);
171
178
  this.client = client;
172
179
  return client;
173
180
  }
@@ -189,29 +196,29 @@ export class RemoteServer {
189
196
  }
190
197
  /** POST /api/v1/qcli/sessions with QCLI_USER / QCLI_PASSWORD. */
191
198
  async signIn(user, password) {
192
- const response = await this.fetchFn(`${this.config.url}${SESSIONS_PATH}`, {
199
+ const response = await this.fetchFn(`${this.url}${SESSIONS_PATH}`, {
193
200
  body: JSON.stringify({ password, username: user }),
194
201
  headers: { Accept: 'application/json', 'Content-Type': 'application/json' },
195
202
  method: 'POST',
196
203
  });
197
204
  const text = await response.text();
198
205
  if (response.status === 401 || response.status === 400 || response.status === 403) {
199
- throw new RemoteError('login', `${this.config.url} rejected QCLI_USER / QCLI_PASSWORD for "${user}" (${response.status}${errorText(text)}).`);
206
+ throw new RemoteError('login', `${this.url} rejected QCLI_USER / QCLI_PASSWORD for "${user}" (${response.status}${errorText(text)}).`);
200
207
  }
201
208
  if (response.status === 404) {
202
- throw new RemoteError('login', `${this.config.url} has no users plugin (404 on ${SESSIONS_PATH}): use QCLI_TOKEN with the server's mcp token instead of QCLI_USER / QCLI_PASSWORD.`);
209
+ throw new RemoteError('login', `${this.url} has no users plugin (404 on ${SESSIONS_PATH}): use QCLI_TOKEN with the server's mcp token instead of QCLI_USER / QCLI_PASSWORD.`);
203
210
  }
204
211
  if (response.status === 429) {
205
- throw new RemoteError('login', `${this.config.url}: too many failed sign-ins for "${user}"; try again later.`);
212
+ throw new RemoteError('login', `${this.url}: too many failed sign-ins for "${user}"; try again later.`);
206
213
  }
207
214
  if (!response.ok) {
208
215
  throw classify(Object.assign(new Error(text), { status: response.status, data: { text } }), this.classifyContext());
209
216
  }
210
217
  const token = JSON.parse(text).token;
211
218
  if (typeof token !== 'string' || !token) {
212
- throw new RemoteError('login', `${this.config.url} did not return a session token.`);
219
+ throw new RemoteError('login', `${this.url} did not return a session token.`);
213
220
  }
214
- this.log(`signed in to ${this.config.url} as ${user}`);
221
+ this.log(`signed in to ${this.url} as ${user}`);
215
222
  return token;
216
223
  }
217
224
  classifyContext() {
@@ -219,7 +226,7 @@ export class RemoteServer {
219
226
  auth: this.config.auth.kind,
220
227
  connectionTimeoutMs: this.config.connectionTimeoutMs,
221
228
  requestTimeoutMs: this.config.requestTimeoutMs,
222
- url: this.config.url,
229
+ url: this.url,
223
230
  };
224
231
  }
225
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,22 @@
1
1
  import { Server } from '@modelcontextprotocol/server';
2
2
  import type { Config } from './config.js';
3
+ import type { DevTools } from './dev/tools.js';
3
4
  import type { RemoteServer } from './remote.js';
4
5
  export declare const SERVER_NAME: string;
5
6
  export declare const SERVER_VERSION: string;
6
7
  export declare const WEBSITE_URL = "https://github.com/qodalis-solutions/mcp-cli";
7
- export declare const buildInstructions: (config: Config) => string;
8
+ export declare const buildInstructions: (config: Config, dev?: boolean) => string;
9
+ export type ProxyServerOptions = {
10
+ /** Plugin-development tools, prompts and docs resources served locally */
11
+ dev?: DevTools | undefined;
12
+ log?: (message: string) => void;
13
+ };
8
14
  /**
9
15
  * The local MCP server Claude Code talks to over stdio: `tools/list` returns the
10
16
  * remote tools (unchanged) that pass the client-side filters, `tools/call` is forwarded.
17
+ * With `options.dev` it also serves the `qcli_*` plugin-development tools (listed
18
+ * first, same filters), the prompts and the docs topics as resources; without a
19
+ * `remote` (no QCLI_URL) it serves only those.
11
20
  */
12
- export declare const createProxyServer: (remote: RemoteServer, config: Config) => Server;
21
+ export declare const createProxyServer: (remote: RemoteServer | undefined, config: Config, options?: ProxyServerOptions) => Server;
13
22
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,MAAM,EAAuB,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkBhD,eAAO,MAAM,WAAW,QAAmB,CAAC;AAC5C,eAAO,MAAM,cAAc,QAAsB,CAAC;AAClD,eAAO,MAAM,WAAW,iDAAiD,CAAC;AAK1E,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,MASnC,CAAC;AAajB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,YAAY,EAAE,QAAQ,MAAM,KAAG,MA+CxE,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,MAAM,EAAuB,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkBhD,eAAO,MAAM,WAAW,QAAmB,CAAC;AAC5C,eAAO,MAAM,cAAc,QAAsB,CAAC;AAClD,eAAO,MAAM,WAAW,iDAAiD,CAAC;AAK1E,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,aAAqB,KAAG,MAkB1D,CAAC;AAajB,MAAM,MAAM,kBAAkB,GAAG;IAC7B,0EAA0E;IAC1E,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAOF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC1B,QAAQ,YAAY,GAAG,SAAS,EAChC,QAAQ,MAAM,EACd,UAAS,kBAAuB,KACjC,MA2GF,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { createRequire } from 'node:module';
2
2
  import { ProtocolError, Server } from '@modelcontextprotocol/server';
3
+ import { PromptError } from './dev/prompts.js';
3
4
  import { RemoteError } from './errors.js';
4
5
  import { isToolAllowed } from './filters.js';
5
6
  const require = createRequire(import.meta.url);
@@ -21,14 +22,23 @@ export const SERVER_VERSION = packageJson.version;
21
22
  export const WEBSITE_URL = 'https://github.com/qodalis-solutions/mcp-cli';
22
23
  const INVALID_PARAMS = -32602;
23
24
  const INTERNAL_ERROR = -32603;
24
- export const buildInstructions = (config) => [
25
- `Proxy to the Qodalis CLI server at ${config.url}.`,
26
- "The tools are the server's CLI commands and features (files, data explorer, jobs, plugins), limited by the permissions of the configured account.",
27
- 'Call server_info first to see the server version and which features are enabled.',
28
- config.readOnly
29
- ? 'Read-only mode: only tools the server marks as read-only are available.'
30
- : 'Tools that change data are available; check a tool’s description before calling it.',
31
- 'After a network or VPN interruption simply retry the call: the proxy reconnects automatically.',
25
+ export const buildInstructions = (config, dev = config.devTools) => [
26
+ ...(config.url
27
+ ? [
28
+ `Proxy to the Qodalis CLI server at ${config.url}.`,
29
+ "The server tools are the server's CLI commands and features (files, data explorer, jobs, plugins), limited by the permissions of the configured account.",
30
+ 'Call server_info first to see the server version and which features are enabled.',
31
+ config.readOnly
32
+ ? 'Read-only mode: only tools marked read-only are available.'
33
+ : 'Tools that change data are available; check a tool’s description before calling it.',
34
+ 'After a network or VPN interruption simply retry the call: the proxy reconnects automatically.',
35
+ ]
36
+ : ['Qodalis CLI plugin-development tools (developer mode: no server is configured).']),
37
+ ...(dev
38
+ ? [
39
+ 'To build Qodalis CLI plugins (web terminal commands, or Node/.NET/Python server commands): search the guide with qcli_docs_search, read a topic with qcli_docs_read, get exact TypeScript declarations with qcli_api (e.g. ICliCommandProcessor, ICliExecutionContext, ICliModule) instead of guessing, and create a plugin project with qcli_scaffold_plugin. The prompts create-web-plugin and create-server-command walk through the whole task.',
40
+ ]
41
+ : []),
32
42
  ].join('\n');
33
43
  const errorResult = (message) => ({
34
44
  content: [{ text: message, type: 'text' }],
@@ -38,29 +48,58 @@ const errorResult = (message) => ({
38
48
  const hiddenReason = (tool, config) => config.readOnly && tool.annotations?.readOnlyHint !== true
39
49
  ? `Tool ${tool.name} is not available: QCLI_READ_ONLY allows only read-only tools.`
40
50
  : `Tool ${tool.name} is not available: excluded by QCLI_TOOLS / QCLI_EXCLUDE.`;
51
+ const asProtocolError = (error) => error instanceof ProtocolError
52
+ ? error
53
+ : new ProtocolError(INTERNAL_ERROR, error?.message ?? String(error));
41
54
  /**
42
55
  * The local MCP server Claude Code talks to over stdio: `tools/list` returns the
43
56
  * remote tools (unchanged) that pass the client-side filters, `tools/call` is forwarded.
57
+ * With `options.dev` it also serves the `qcli_*` plugin-development tools (listed
58
+ * first, same filters), the prompts and the docs topics as resources; without a
59
+ * `remote` (no QCLI_URL) it serves only those.
44
60
  */
45
- export const createProxyServer = (remote, config) => {
61
+ export const createProxyServer = (remote, config, options = {}) => {
62
+ const dev = options.dev;
46
63
  const server = new Server({ name: SERVER_NAME, version: SERVER_VERSION, websiteUrl: WEBSITE_URL }, {
47
- capabilities: { tools: { listChanged: false } },
48
- instructions: buildInstructions(config),
64
+ capabilities: {
65
+ tools: { listChanged: false },
66
+ ...(dev
67
+ ? { prompts: { listChanged: false }, resources: { listChanged: false } }
68
+ : {}),
69
+ },
70
+ instructions: buildInstructions(config, dev !== undefined),
49
71
  });
50
72
  server.setRequestHandler('tools/list', async () => {
73
+ const local = dev?.tools() ?? [];
74
+ if (!remote) {
75
+ return { tools: local };
76
+ }
51
77
  try {
52
78
  const tools = await remote.listTools();
53
- return { tools: tools.filter((tool) => isToolAllowed(tool, config)) };
79
+ const remoteTools = tools.filter((tool) => isToolAllowed(tool, config) && !dev?.has(tool.name));
80
+ return { tools: [...local, ...remoteTools] };
54
81
  }
55
82
  catch (error) {
56
- if (error instanceof ProtocolError) {
57
- throw error;
83
+ if (local.length > 0) {
84
+ // The local tools stay usable while the server is unreachable.
85
+ options.log?.(`tools/list: ${error?.message}; listing the local tools only`);
86
+ return { tools: local };
58
87
  }
59
- throw new ProtocolError(INTERNAL_ERROR, error.message);
88
+ throw asProtocolError(error);
60
89
  }
61
90
  });
62
91
  server.setRequestHandler('tools/call', async (request, ctx) => {
63
92
  const params = request.params;
93
+ if (dev?.has(params.name)) {
94
+ const hidden = dev.hiddenReason(params.name);
95
+ if (hidden) {
96
+ throw new ProtocolError(INVALID_PARAMS, hidden);
97
+ }
98
+ return dev.call(params.name, params.arguments ?? {}, ctx.mcpReq?.signal);
99
+ }
100
+ if (!remote) {
101
+ throw new ProtocolError(INVALID_PARAMS, `Unknown tool: ${params.name} (developer mode: set QCLI_URL to use a server's tools).`);
102
+ }
64
103
  try {
65
104
  const tool = await remote.findTool(params.name);
66
105
  if (!tool) {
@@ -81,6 +120,37 @@ export const createProxyServer = (remote, config) => {
81
120
  return errorResult(error?.message ?? String(error));
82
121
  }
83
122
  });
123
+ if (dev) {
124
+ server.setRequestHandler('prompts/list', async () => ({ prompts: dev.prompts() }));
125
+ server.setRequestHandler('prompts/get', async (request) => {
126
+ try {
127
+ return dev.getPrompt(request.params.name, request.params.arguments);
128
+ }
129
+ catch (error) {
130
+ throw error instanceof PromptError
131
+ ? new ProtocolError(INVALID_PARAMS, error.message)
132
+ : asProtocolError(error);
133
+ }
134
+ });
135
+ server.setRequestHandler('resources/list', async () => {
136
+ try {
137
+ return { resources: await dev.resources() };
138
+ }
139
+ catch (error) {
140
+ throw asProtocolError(error);
141
+ }
142
+ });
143
+ server.setRequestHandler('resources/read', async (request) => {
144
+ const uri = request.params.uri;
145
+ const markdown = await dev.readResource(uri).catch((error) => {
146
+ throw asProtocolError(error);
147
+ });
148
+ if (markdown === undefined) {
149
+ throw new ProtocolError(INVALID_PARAMS, `Unknown resource: ${uri}`);
150
+ }
151
+ return { contents: [{ mimeType: 'text/markdown', text: markdown, uri }] };
152
+ });
153
+ }
84
154
  return server;
85
155
  };
86
156
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}