@qverisai/mcp 0.5.0 → 0.7.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/dist/index.js CHANGED
@@ -16,7 +16,7 @@
16
16
  * "mcpServers": {
17
17
  * "qveris": {
18
18
  * "command": "npx",
19
- * "args": ["@qverisai/mcp"],
19
+ * "args": ["-y", "@qverisai/mcp"],
20
20
  * "env": { "QVERIS_API_KEY": "your-api-key" }
21
21
  * }
22
22
  * }
@@ -26,11 +26,14 @@
26
26
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
27
27
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
28
28
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
29
+ import { pathToFileURL } from 'node:url';
29
30
  import { v4 as uuidv4 } from 'uuid';
30
31
  import { createClientFromEnv } from './api/client.js';
31
32
  import { searchToolsSchema, executeSearchTools, } from './tools/search.js';
32
33
  import { executeToolSchema, executeExecuteTool, } from './tools/execute.js';
33
34
  import { getToolsByIdsSchema, executeGetToolsByIds, } from './tools/get-by-ids.js';
35
+ import { usageHistorySchema, executeUsageHistory, } from './tools/usage-history.js';
36
+ import { creditsLedgerSchema, executeCreditsLedger, } from './tools/credits-ledger.js';
34
37
  // ============================================================================
35
38
  // Server Configuration
36
39
  // ============================================================================
@@ -39,240 +42,291 @@ const SERVER_NAME = 'qveris';
39
42
  const require = createRequire(import.meta.url);
40
43
  const { version: SERVER_VERSION } = require('../package.json');
41
44
  /**
42
- * Main entry point for the Qveris MCP Server.
45
+ * List the MCP tools exposed by this server.
43
46
  *
44
- * Sets up the MCP server with stdio transport, registers the discover,
45
- * inspect, and call handlers, and starts listening for requests.
47
+ * Kept as a pure export so the public MCP interface can be tested without
48
+ * starting stdio transport.
46
49
  */
47
- async function main() {
48
- // Initialize API client (validates QVERIS_API_KEY)
49
- let client;
50
- try {
51
- client = createClientFromEnv();
52
- }
53
- catch (error) {
54
- console.error(error instanceof Error ? error.message : 'Failed to initialize Qveris client');
55
- process.exit(1);
56
- }
57
- // Generate a default session ID for this server instance
58
- const defaultSessionId = uuidv4();
59
- // Create MCP server
60
- const server = new Server({
61
- name: SERVER_NAME,
62
- version: SERVER_VERSION,
63
- }, {
64
- capabilities: {
65
- tools: {},
50
+ export function listQverisMcpTools() {
51
+ return [
52
+ // Primary tools (aligned with CLI naming)
53
+ {
54
+ name: 'discover',
55
+ description: 'Discover available tools based on natural language queries. ' +
56
+ 'Returns relevant tools that can help accomplish tasks. ' +
57
+ 'Use this to find tools before inspecting or calling them. ' +
58
+ 'Results may include billing_rule metadata for rule-level pricing.',
59
+ inputSchema: searchToolsSchema,
66
60
  },
67
- });
68
- // =========================================================================
69
- // Tool Handlers
70
- // =========================================================================
71
- /**
72
- * Lists available tools.
73
- * Returns the discover, inspect, and call definitions (plus deprecated aliases).
74
- */
75
- server.setRequestHandler(ListToolsRequestSchema, async () => {
76
- return {
77
- tools: [
78
- // Primary tools (aligned with CLI naming)
79
- {
80
- name: 'discover',
81
- description: 'Discover available tools based on natural language queries. ' +
82
- 'Returns relevant tools that can help accomplish tasks. ' +
83
- 'Use this to find tools before inspecting or calling them.',
84
- inputSchema: searchToolsSchema,
85
- },
86
- {
87
- name: 'inspect',
88
- description: 'Inspect tools by their IDs to get detailed information. ' +
89
- 'Returns parameters, success rate, latency, and examples. ' +
90
- 'Use tool_ids from a previous discover call.',
91
- inputSchema: getToolsByIdsSchema,
92
- },
93
- {
94
- name: 'call',
95
- description: 'Call a specific remote tool with provided parameters. ' +
96
- 'The tool_id and search_id must come from a previous discover call. ' +
97
- 'Pass parameters to the tool through params_to_tool.',
98
- inputSchema: executeToolSchema,
99
- },
100
- // Deprecated aliases (backward compatibility)
101
- {
102
- name: 'search_tools',
103
- description: '[Deprecated: use "discover" instead] Search for available tools based on natural language queries.',
104
- inputSchema: searchToolsSchema,
105
- },
106
- {
107
- name: 'get_tools_by_ids',
108
- description: '[Deprecated: use "inspect" instead] Get descriptions of tools based on their tool IDs.',
109
- inputSchema: getToolsByIdsSchema,
110
- },
111
- {
112
- name: 'execute_tool',
113
- description: '[Deprecated: use "call" instead] Execute a specific remote tool with provided parameters.',
114
- inputSchema: executeToolSchema,
115
- },
116
- ],
117
- };
118
- });
119
- // Deprecated tool name aliases canonical names
120
- const DEPRECATED_ALIASES = {
121
- search_tools: 'discover',
122
- get_tools_by_ids: 'inspect',
123
- execute_tool: 'call',
124
- };
125
- /**
126
- * Handles tool execution requests.
127
- * Routes to the appropriate handler based on tool name.
128
- * Deprecated aliases emit a warning to stderr.
129
- */
130
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
131
- const { name: rawName, arguments: args } = request.params;
132
- // Resolve deprecated aliases
133
- let name = rawName;
134
- if (DEPRECATED_ALIASES[rawName]) {
135
- name = DEPRECATED_ALIASES[rawName];
136
- process.stderr.write(`[qveris] Deprecated: "${rawName}" → use "${name}" instead\n`);
137
- }
138
- try {
139
- if (name === 'discover') {
140
- const input = (args ?? {});
141
- // Validate required fields
142
- if (!input.query || typeof input.query !== 'string') {
143
- return {
144
- content: [
145
- {
146
- type: 'text',
147
- text: JSON.stringify({
148
- error: 'Missing required parameter: query',
149
- hint: 'Provide a natural language query describing the tool capability you need',
150
- }),
151
- },
152
- ],
153
- isError: true,
154
- };
155
- }
156
- const result = await executeSearchTools(client, input, defaultSessionId);
157
- return {
158
- content: [
159
- {
160
- type: 'text',
161
- text: JSON.stringify(result, null, 2),
162
- },
163
- ],
164
- };
165
- }
166
- if (name === 'inspect') {
167
- const input = (args ?? {});
168
- // Validate required fields
169
- if (!input.tool_ids || !Array.isArray(input.tool_ids) || input.tool_ids.length === 0) {
170
- return {
171
- content: [
172
- {
173
- type: 'text',
174
- text: JSON.stringify({
175
- error: 'Missing or invalid required parameter: tool_ids',
176
- hint: 'Provide an array of tool IDs (at least one) to retrieve tool information',
177
- }),
178
- },
179
- ],
180
- isError: true,
181
- };
182
- }
183
- const result = await executeGetToolsByIds(client, input, defaultSessionId);
61
+ {
62
+ name: 'inspect',
63
+ description: 'Inspect tools by their IDs to get detailed information. ' +
64
+ 'Returns parameters, success rate, latency, examples, and billing_rule when available. ' +
65
+ 'Use tool_ids from a previous discover call.',
66
+ inputSchema: getToolsByIdsSchema,
67
+ },
68
+ {
69
+ name: 'call',
70
+ description: 'Call a specific remote tool with provided parameters. ' +
71
+ 'The tool_id and search_id must come from a previous discover call. ' +
72
+ 'Pass parameters to the tool through params_to_tool. ' +
73
+ 'The response may include pre-settlement billing; use usage_history or credits_ledger for final charge status.',
74
+ inputSchema: executeToolSchema,
75
+ },
76
+ {
77
+ name: 'usage_history',
78
+ description: 'Context-safe usage audit query. Defaults to aggregated summary, supports precise search by execution_id/search_id/charge_outcome/credit range, and writes large exports to a local JSONL file instead of returning all rows.',
79
+ inputSchema: usageHistorySchema,
80
+ },
81
+ {
82
+ name: 'credits_ledger',
83
+ description: 'Context-safe final credits ledger query. Defaults to aggregated summary, supports precise search by entry type/direction/credit range, and writes large exports to a local JSONL file instead of returning all rows.',
84
+ inputSchema: creditsLedgerSchema,
85
+ },
86
+ // Deprecated aliases (backward compatibility)
87
+ {
88
+ name: 'search_tools',
89
+ description: '[Deprecated: use "discover" instead] Search for available tools based on natural language queries.',
90
+ inputSchema: searchToolsSchema,
91
+ },
92
+ {
93
+ name: 'get_tools_by_ids',
94
+ description: '[Deprecated: use "inspect" instead] Get descriptions of tools based on their tool IDs.',
95
+ inputSchema: getToolsByIdsSchema,
96
+ },
97
+ {
98
+ name: 'execute_tool',
99
+ description: '[Deprecated: use "call" instead] Execute a specific remote tool with provided parameters.',
100
+ inputSchema: executeToolSchema,
101
+ },
102
+ ];
103
+ }
104
+ // Deprecated tool name aliases -> canonical names.
105
+ export const DEPRECATED_ALIASES = {
106
+ search_tools: 'discover',
107
+ get_tools_by_ids: 'inspect',
108
+ execute_tool: 'call',
109
+ };
110
+ /**
111
+ * Route one MCP tool call to the matching Qveris operation.
112
+ */
113
+ export async function executeQverisMcpTool(client, defaultSessionId, rawName, args, warn = (message) => process.stderr.write(message)) {
114
+ // Resolve deprecated aliases.
115
+ let name = rawName;
116
+ if (DEPRECATED_ALIASES[rawName]) {
117
+ name = DEPRECATED_ALIASES[rawName];
118
+ warn(`[qveris] Deprecated: "${rawName}" -> use "${name}" instead\n`);
119
+ }
120
+ try {
121
+ if (name === 'discover') {
122
+ const input = (args ?? {});
123
+ // Validate required fields.
124
+ if (!input.query || typeof input.query !== 'string') {
184
125
  return {
185
126
  content: [
186
127
  {
187
128
  type: 'text',
188
- text: JSON.stringify(result, null, 2),
129
+ text: JSON.stringify({
130
+ error: 'Missing required parameter: query',
131
+ hint: 'Provide a natural language query describing the tool capability you need',
132
+ }),
189
133
  },
190
134
  ],
135
+ isError: true,
191
136
  };
192
137
  }
193
- if (name === 'call') {
194
- const input = (args ?? {});
195
- // Validate required fields
196
- const missingFields = [];
197
- if (!input.tool_id)
198
- missingFields.push('tool_id');
199
- if (!input.search_id)
200
- missingFields.push('search_id');
201
- if (!input.params_to_tool)
202
- missingFields.push('params_to_tool');
203
- if (missingFields.length > 0) {
204
- return {
205
- content: [
206
- {
207
- type: 'text',
208
- text: JSON.stringify({
209
- error: `Missing required parameters: ${missingFields.join(', ')}`,
210
- hint: 'tool_id and search_id must come from a previous discover call',
211
- }),
212
- },
213
- ],
214
- isError: true,
215
- };
216
- }
217
- const result = await executeExecuteTool(client, input, defaultSessionId);
138
+ const result = await executeSearchTools(client, input, defaultSessionId);
139
+ return {
140
+ content: [
141
+ {
142
+ type: 'text',
143
+ text: JSON.stringify(result, null, 2),
144
+ },
145
+ ],
146
+ };
147
+ }
148
+ if (name === 'inspect') {
149
+ const input = (args ?? {});
150
+ // Validate required fields.
151
+ if (!input.tool_ids || !Array.isArray(input.tool_ids) || input.tool_ids.length === 0) {
218
152
  return {
219
153
  content: [
220
154
  {
221
155
  type: 'text',
222
- text: JSON.stringify(result, null, 2),
156
+ text: JSON.stringify({
157
+ error: 'Missing or invalid required parameter: tool_ids',
158
+ hint: 'Provide an array of tool IDs (at least one) to retrieve tool information',
159
+ }),
223
160
  },
224
161
  ],
162
+ isError: true,
225
163
  };
226
164
  }
227
- // Unknown tool
165
+ const result = await executeGetToolsByIds(client, input, defaultSessionId);
228
166
  return {
229
167
  content: [
230
168
  {
231
169
  type: 'text',
232
- text: JSON.stringify({
233
- error: `Unknown tool: ${rawName}`,
234
- available_tools: ['discover', 'inspect', 'call'],
235
- }),
170
+ text: JSON.stringify(result, null, 2),
236
171
  },
237
172
  ],
238
- isError: true,
239
173
  };
240
174
  }
241
- catch (error) {
242
- // Handle API errors
243
- if (isApiError(error)) {
175
+ if (name === 'call') {
176
+ const input = (args ?? {});
177
+ // Validate required fields.
178
+ const missingFields = [];
179
+ if (!input.tool_id)
180
+ missingFields.push('tool_id');
181
+ if (!input.search_id)
182
+ missingFields.push('search_id');
183
+ if (!input.params_to_tool)
184
+ missingFields.push('params_to_tool');
185
+ if (missingFields.length > 0) {
244
186
  return {
245
187
  content: [
246
188
  {
247
189
  type: 'text',
248
190
  text: JSON.stringify({
249
- error: error.message,
250
- status: error.status,
251
- details: error.details,
191
+ error: `Missing required parameters: ${missingFields.join(', ')}`,
192
+ hint: 'tool_id and search_id must come from a previous discover call',
252
193
  }),
253
194
  },
254
195
  ],
255
196
  isError: true,
256
197
  };
257
198
  }
258
- // Handle other errors (including fetch network errors)
259
- const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
260
- const errorCause = error instanceof Error && error.cause instanceof Error
261
- ? error.cause.message
262
- : undefined;
199
+ const result = await executeExecuteTool(client, input, defaultSessionId);
200
+ return {
201
+ content: [
202
+ {
203
+ type: 'text',
204
+ text: JSON.stringify(result, null, 2),
205
+ },
206
+ ],
207
+ };
208
+ }
209
+ if (name === 'usage_history') {
210
+ const input = (args ?? {});
211
+ const result = await executeUsageHistory(client, input);
212
+ return {
213
+ content: [
214
+ {
215
+ type: 'text',
216
+ text: JSON.stringify(result, null, 2),
217
+ },
218
+ ],
219
+ };
220
+ }
221
+ if (name === 'credits_ledger') {
222
+ const input = (args ?? {});
223
+ const result = await executeCreditsLedger(client, input);
224
+ return {
225
+ content: [
226
+ {
227
+ type: 'text',
228
+ text: JSON.stringify(result, null, 2),
229
+ },
230
+ ],
231
+ };
232
+ }
233
+ // Unknown tool.
234
+ return {
235
+ content: [
236
+ {
237
+ type: 'text',
238
+ text: JSON.stringify({
239
+ error: `Unknown tool: ${rawName}`,
240
+ available_tools: ['discover', 'inspect', 'call', 'usage_history', 'credits_ledger'],
241
+ }),
242
+ },
243
+ ],
244
+ isError: true,
245
+ };
246
+ }
247
+ catch (error) {
248
+ // Handle API errors.
249
+ if (isApiError(error)) {
263
250
  return {
264
251
  content: [
265
252
  {
266
253
  type: 'text',
267
254
  text: JSON.stringify({
268
- error: errorMessage,
269
- ...(errorCause && { cause: errorCause }),
255
+ error: error.message,
256
+ status: error.status,
257
+ details: error.details,
270
258
  }),
271
259
  },
272
260
  ],
273
261
  isError: true,
274
262
  };
275
263
  }
264
+ // Handle other errors (including fetch network errors).
265
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
266
+ const errorCause = error instanceof Error && error.cause instanceof Error
267
+ ? error.cause.message
268
+ : undefined;
269
+ return {
270
+ content: [
271
+ {
272
+ type: 'text',
273
+ text: JSON.stringify({
274
+ error: errorMessage,
275
+ ...(errorCause && { cause: errorCause }),
276
+ }),
277
+ },
278
+ ],
279
+ isError: true,
280
+ };
281
+ }
282
+ }
283
+ /**
284
+ * Main entry point for the Qveris MCP Server.
285
+ *
286
+ * Sets up the MCP server with stdio transport, registers the discover,
287
+ * inspect, and call handlers, and starts listening for requests.
288
+ */
289
+ export async function main() {
290
+ // Initialize API client (validates QVERIS_API_KEY)
291
+ let client;
292
+ try {
293
+ client = createClientFromEnv();
294
+ }
295
+ catch (error) {
296
+ console.error(error instanceof Error ? error.message : 'Failed to initialize Qveris client');
297
+ process.exit(1);
298
+ }
299
+ // Generate a default session ID for this server instance
300
+ const defaultSessionId = uuidv4();
301
+ // Create MCP server
302
+ const server = new Server({
303
+ name: SERVER_NAME,
304
+ version: SERVER_VERSION,
305
+ }, {
306
+ capabilities: {
307
+ tools: {},
308
+ },
309
+ });
310
+ // =========================================================================
311
+ // Tool Handlers
312
+ // =========================================================================
313
+ /**
314
+ * Lists available tools.
315
+ * Returns the discover, inspect, and call definitions (plus deprecated aliases).
316
+ */
317
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
318
+ return {
319
+ tools: listQverisMcpTools(),
320
+ };
321
+ });
322
+ /**
323
+ * Handles tool execution requests.
324
+ * Routes to the appropriate handler based on tool name.
325
+ * Deprecated aliases emit a warning to stderr.
326
+ */
327
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
328
+ const { name, arguments: args } = request.params;
329
+ return executeQverisMcpTool(client, defaultSessionId, name, args);
276
330
  });
277
331
  // =========================================================================
278
332
  // Start Server
@@ -292,9 +346,12 @@ function isApiError(error) {
292
346
  'status' in error &&
293
347
  'message' in error);
294
348
  }
295
- // Run the server
296
- main().catch((error) => {
297
- console.error('Fatal error:', error);
298
- process.exit(1);
299
- });
349
+ // Run the server only when this file is the process entrypoint.
350
+ const entrypoint = process.argv[1] ? pathToFileURL(process.argv[1]).href : undefined;
351
+ if (entrypoint === import.meta.url) {
352
+ main().catch((error) => {
353
+ console.error('Fatal error:', error);
354
+ process.exit(1);
355
+ });
356
+ }
300
357
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { ApiEnvelope, CreditsLedgerItem, CreditsLedgerResponse, UsageEventItem, UsageEventsResponse } from '../types.js';
2
+ export declare const DEFAULT_DETAIL_LIMIT = 10;
3
+ export declare const MAX_DETAIL_LIMIT = 50;
4
+ export declare const DEFAULT_PAGE_SIZE = 500;
5
+ export declare const MAX_SUMMARY_ROWS = 5000;
6
+ export declare const MAX_SEARCH_SCAN_ROWS = 2000;
7
+ export declare const MAX_EXPORT_ROWS = 50000;
8
+ export type AuditMode = 'summary' | 'search' | 'export_file';
9
+ export type Bucket = 'hour' | 'day' | 'week';
10
+ export interface CommonAuditInput {
11
+ mode?: AuditMode | 'export-file';
12
+ start_date?: string;
13
+ end_date?: string;
14
+ bucket?: Bucket;
15
+ min_credits?: number;
16
+ max_credits?: number;
17
+ limit?: number;
18
+ }
19
+ export interface UsageFilterInput extends CommonAuditInput {
20
+ execution_id?: string;
21
+ search_id?: string;
22
+ event_type?: string;
23
+ kind?: string;
24
+ success?: boolean;
25
+ charge_outcome?: string;
26
+ }
27
+ export interface LedgerFilterInput extends CommonAuditInput {
28
+ entry_type?: string;
29
+ direction?: 'consume' | 'grant' | 'any';
30
+ }
31
+ export declare function unwrapEnvelope<T>(response: ApiEnvelope<T> | T): T;
32
+ export declare function normalizeMode(mode: CommonAuditInput['mode']): AuditMode;
33
+ export declare function clampLimit(limit?: number): number;
34
+ export declare function resolveDateRange(input: CommonAuditInput): {
35
+ start_date: string;
36
+ end_date: string;
37
+ };
38
+ export declare function chooseBucket(input: CommonAuditInput): Bucket;
39
+ export declare function getUsageItems(response: UsageEventsResponse): UsageEventItem[];
40
+ export declare function getLedgerItems(response: CreditsLedgerResponse): CreditsLedgerItem[];
41
+ export declare function usageAmount(row: UsageEventItem): number;
42
+ export declare function ledgerAmount(row: CreditsLedgerItem): number;
43
+ export declare function matchesUsage(row: UsageEventItem, input: UsageFilterInput): boolean;
44
+ export declare function matchesLedger(row: CreditsLedgerItem, input: LedgerFilterInput): boolean;
45
+ export declare function pickUsage(row: UsageEventItem): Record<string, unknown>;
46
+ export declare function pickLedger(row: CreditsLedgerItem): Record<string, unknown>;
47
+ export declare function summarizeUsage(rows: UsageEventItem[], input: UsageFilterInput, scannedRecords: number, total: number | undefined, truncated: boolean): Record<string, unknown>;
48
+ export declare function summarizeUsageFromServer(serverSummary: Record<string, unknown>, input: UsageFilterInput, scannedRecords: number, total: number | undefined): Record<string, unknown>;
49
+ export declare function summarizeLedger(rows: CreditsLedgerItem[], input: LedgerFilterInput, scannedRecords: number, total: number | undefined, truncated: boolean): Record<string, unknown>;
50
+ export declare function summarizeLedgerFromServer(serverSummary: Record<string, unknown>, input: LedgerFilterInput, scannedRecords: number, total: number | undefined): Record<string, unknown>;
51
+ export declare function writeJsonlExport(kind: string, rows: unknown[], metadata: Record<string, unknown>): Record<string, unknown>;
52
+ //# sourceMappingURL=audit-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-utils.d.ts","sourceRoot":"","sources":["../../src/tools/audit-utils.ts"],"names":[],"mappings":"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"}