@qodalis/mcp-cli 0.0.0-stage → 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/CHANGELOG.md +50 -0
- package/LICENSE +21 -0
- package/README.md +384 -2
- package/dist/src/cli.d.ts +3 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +102 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/config.d.ts +60 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +149 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/dev/api.d.ts +94 -0
- package/dist/src/dev/api.d.ts.map +1 -0
- package/dist/src/dev/api.js +425 -0
- package/dist/src/dev/api.js.map +1 -0
- package/dist/src/dev/docs.d.ts +93 -0
- package/dist/src/dev/docs.d.ts.map +1 -0
- package/dist/src/dev/docs.js +275 -0
- package/dist/src/dev/docs.js.map +1 -0
- package/dist/src/dev/prompts.d.ts +11 -0
- package/dist/src/dev/prompts.d.ts.map +1 -0
- package/dist/src/dev/prompts.js +141 -0
- package/dist/src/dev/prompts.js.map +1 -0
- package/dist/src/dev/scaffold.d.ts +55 -0
- package/dist/src/dev/scaffold.d.ts.map +1 -0
- package/dist/src/dev/scaffold.js +213 -0
- package/dist/src/dev/scaffold.js.map +1 -0
- package/dist/src/dev/tools.d.ts +170 -0
- package/dist/src/dev/tools.d.ts.map +1 -0
- package/dist/src/dev/tools.js +258 -0
- package/dist/src/dev/tools.js.map +1 -0
- package/dist/src/env-file.d.ts +9 -0
- package/dist/src/env-file.d.ts.map +1 -0
- package/dist/src/env-file.js +54 -0
- package/dist/src/env-file.js.map +1 -0
- package/dist/src/errors.d.ts +22 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +115 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/filters.d.ts +13 -0
- package/dist/src/filters.d.ts.map +1 -0
- package/dist/src/filters.js +16 -0
- package/dist/src/filters.js.map +1 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +12 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/remote.d.ts +64 -0
- package/dist/src/remote.d.ts.map +1 -0
- package/dist/src/remote.js +242 -0
- package/dist/src/remote.js.map +1 -0
- package/dist/src/server.d.ts +22 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +156 -0
- package/dist/src/server.js.map +1 -0
- package/docs/llms-full.txt +1740 -0
- package/package.json +70 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Server } from '@modelcontextprotocol/server';
|
|
2
|
+
import type { Config } from './config.js';
|
|
3
|
+
import type { DevTools } from './dev/tools.js';
|
|
4
|
+
import type { RemoteServer } from './remote.js';
|
|
5
|
+
export declare const SERVER_NAME: string;
|
|
6
|
+
export declare const SERVER_VERSION: string;
|
|
7
|
+
export declare const WEBSITE_URL = "https://github.com/qodalis-solutions/mcp-cli";
|
|
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
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The local MCP server Claude Code talks to over stdio: `tools/list` returns the
|
|
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.
|
|
20
|
+
*/
|
|
21
|
+
export declare const createProxyServer: (remote: RemoteServer | undefined, config: Config, options?: ProxyServerOptions) => Server;
|
|
22
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +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;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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { ProtocolError, Server } from '@modelcontextprotocol/server';
|
|
3
|
+
import { PromptError } from './dev/prompts.js';
|
|
4
|
+
import { RemoteError } from './errors.js';
|
|
5
|
+
import { isToolAllowed } from './filters.js';
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
/** package.json sits one level up from src/ and two levels up from dist/src/. */
|
|
8
|
+
const readPackageJson = () => {
|
|
9
|
+
for (const candidate of ['../package.json', '../../package.json']) {
|
|
10
|
+
try {
|
|
11
|
+
return require(candidate);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
// try the next location
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return { name: '@qodalis/mcp-cli', version: '0.0.0' };
|
|
18
|
+
};
|
|
19
|
+
const packageJson = readPackageJson();
|
|
20
|
+
export const SERVER_NAME = packageJson.name;
|
|
21
|
+
export const SERVER_VERSION = packageJson.version;
|
|
22
|
+
export const WEBSITE_URL = 'https://github.com/qodalis-solutions/mcp-cli';
|
|
23
|
+
const INVALID_PARAMS = -32602;
|
|
24
|
+
const INTERNAL_ERROR = -32603;
|
|
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
|
+
: []),
|
|
42
|
+
].join('\n');
|
|
43
|
+
const errorResult = (message) => ({
|
|
44
|
+
content: [{ text: message, type: 'text' }],
|
|
45
|
+
isError: true,
|
|
46
|
+
});
|
|
47
|
+
/** Why a tool the server knows is hidden by the client-side settings. */
|
|
48
|
+
const hiddenReason = (tool, config) => config.readOnly && tool.annotations?.readOnlyHint !== true
|
|
49
|
+
? `Tool ${tool.name} is not available: QCLI_READ_ONLY allows only read-only tools.`
|
|
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));
|
|
54
|
+
/**
|
|
55
|
+
* The local MCP server Claude Code talks to over stdio: `tools/list` returns the
|
|
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.
|
|
60
|
+
*/
|
|
61
|
+
export const createProxyServer = (remote, config, options = {}) => {
|
|
62
|
+
const dev = options.dev;
|
|
63
|
+
const server = new Server({ name: SERVER_NAME, version: SERVER_VERSION, websiteUrl: WEBSITE_URL }, {
|
|
64
|
+
capabilities: {
|
|
65
|
+
tools: { listChanged: false },
|
|
66
|
+
...(dev
|
|
67
|
+
? { prompts: { listChanged: false }, resources: { listChanged: false } }
|
|
68
|
+
: {}),
|
|
69
|
+
},
|
|
70
|
+
instructions: buildInstructions(config, dev !== undefined),
|
|
71
|
+
});
|
|
72
|
+
server.setRequestHandler('tools/list', async () => {
|
|
73
|
+
const local = dev?.tools() ?? [];
|
|
74
|
+
if (!remote) {
|
|
75
|
+
return { tools: local };
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const tools = await remote.listTools();
|
|
79
|
+
const remoteTools = tools.filter((tool) => isToolAllowed(tool, config) && !dev?.has(tool.name));
|
|
80
|
+
return { tools: [...local, ...remoteTools] };
|
|
81
|
+
}
|
|
82
|
+
catch (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 };
|
|
87
|
+
}
|
|
88
|
+
throw asProtocolError(error);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
server.setRequestHandler('tools/call', async (request, ctx) => {
|
|
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
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
const tool = await remote.findTool(params.name);
|
|
105
|
+
if (!tool) {
|
|
106
|
+
throw new ProtocolError(INVALID_PARAMS, `Unknown tool: ${params.name}`);
|
|
107
|
+
}
|
|
108
|
+
if (!isToolAllowed(tool, config)) {
|
|
109
|
+
throw new ProtocolError(INVALID_PARAMS, hiddenReason(tool, config));
|
|
110
|
+
}
|
|
111
|
+
return await remote.callTool({ arguments: params.arguments ?? {}, name: params.name }, ctx.mcpReq?.signal);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (error instanceof ProtocolError) {
|
|
115
|
+
throw error;
|
|
116
|
+
}
|
|
117
|
+
if (error instanceof RemoteError) {
|
|
118
|
+
return errorResult(error.message);
|
|
119
|
+
}
|
|
120
|
+
return errorResult(error?.message ?? String(error));
|
|
121
|
+
}
|
|
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
|
+
}
|
|
154
|
+
return server;
|
|
155
|
+
};
|
|
156
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|