@nanogpt/mcp 1.1.4 → 1.1.5
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/config.d.ts +3 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +17 -23
- package/dist/config.js.map +1 -1
- package/dist/httpClient.d.ts.map +1 -1
- package/dist/httpClient.js +4 -13
- package/dist/httpClient.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/tools/chat.d.ts.map +1 -1
- package/dist/tools/chat.js +1 -4
- package/dist/tools/chat.js.map +1 -1
- package/dist/tools/index.d.ts +0 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/listModels.d.ts.map +1 -1
- package/dist/tools/listModels.js +2 -41
- package/dist/tools/listModels.js.map +1 -1
- package/dist/tools/scrapeUrls.d.ts +2 -2
- package/dist/tools/webSearch.d.ts +164 -11
- package/dist/tools/webSearch.d.ts.map +1 -1
- package/dist/tools/webSearch.js +157 -22
- package/dist/tools/webSearch.js.map +1 -1
- package/package.json +10 -13
- package/dist/tools/vision.d.ts +0 -78
- package/dist/tools/vision.d.ts.map +0 -1
- package/dist/tools/vision.js +0 -155
- package/dist/tools/vision.js.map +0 -1
package/dist/tools/vision.js
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* nanogpt_vision tool
|
|
3
|
-
*
|
|
4
|
-
* Analyze images with a vision-capable model (default: zai-org/glm-4.6v).
|
|
5
|
-
*/
|
|
6
|
-
import { z } from 'zod';
|
|
7
|
-
import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
-
import { requestJson } from '../httpClient.js';
|
|
9
|
-
import { getConfig } from '../config.js';
|
|
10
|
-
import { handleToolError, processRawResponse, buildContent, zodToJsonSchema } from '../toolUtils.js';
|
|
11
|
-
// Input schema
|
|
12
|
-
export const inputSchema = z.object({
|
|
13
|
-
prompt: z.string().min(1),
|
|
14
|
-
image_url: z.string().min(1).optional(),
|
|
15
|
-
image_urls: z.array(z.string().min(1)).min(1).optional(),
|
|
16
|
-
image_data_url: z.string().min(1).optional(),
|
|
17
|
-
image_data_urls: z.array(z.string().min(1)).min(1).optional(),
|
|
18
|
-
image_detail: z.enum(['low', 'high', 'auto']).optional(),
|
|
19
|
-
model: z.string().optional(),
|
|
20
|
-
temperature: z.number().min(0).max(2).optional(),
|
|
21
|
-
max_tokens: z.number().min(1).optional(),
|
|
22
|
-
include_usage: z.boolean().optional(),
|
|
23
|
-
system_prompt: z.string().optional(),
|
|
24
|
-
include_raw: z.boolean().optional().default(false),
|
|
25
|
-
});
|
|
26
|
-
// Output schema
|
|
27
|
-
export const outputSchema = z.object({
|
|
28
|
-
content: z.string(),
|
|
29
|
-
message: z.record(z.unknown()),
|
|
30
|
-
usage: z.record(z.unknown()).optional(),
|
|
31
|
-
raw: z.union([z.record(z.unknown()), z.string()]).optional(),
|
|
32
|
-
});
|
|
33
|
-
// JSON Schemas for MCP registration
|
|
34
|
-
export const inputJsonSchema = zodToJsonSchema(inputSchema);
|
|
35
|
-
export const outputJsonSchema = zodToJsonSchema(outputSchema);
|
|
36
|
-
// Tool metadata
|
|
37
|
-
export const name = 'nanogpt_vision';
|
|
38
|
-
export const description = 'Analyze images with a vision-capable model. Provide an image URL or data URL plus a prompt.';
|
|
39
|
-
// Annotations
|
|
40
|
-
export const annotations = {
|
|
41
|
-
readOnlyHint: false,
|
|
42
|
-
openWorldHint: true,
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* Handler for nanogpt_vision
|
|
46
|
-
*/
|
|
47
|
-
export async function handler(args) {
|
|
48
|
-
try {
|
|
49
|
-
// Validate input
|
|
50
|
-
const input = inputSchema.parse(args);
|
|
51
|
-
const config = getConfig();
|
|
52
|
-
const imageSources = [];
|
|
53
|
-
if (input.image_url)
|
|
54
|
-
imageSources.push(input.image_url);
|
|
55
|
-
if (input.image_data_url)
|
|
56
|
-
imageSources.push(input.image_data_url);
|
|
57
|
-
if (input.image_urls)
|
|
58
|
-
imageSources.push(...input.image_urls);
|
|
59
|
-
if (input.image_data_urls)
|
|
60
|
-
imageSources.push(...input.image_data_urls);
|
|
61
|
-
if (imageSources.length === 0) {
|
|
62
|
-
throw new McpError(ErrorCode.InvalidParams, 'Provide at least one image via image_url/image_urls or image_data_url/image_data_urls.');
|
|
63
|
-
}
|
|
64
|
-
// Determine model
|
|
65
|
-
const model = input.model || config.visionModel;
|
|
66
|
-
if (!model) {
|
|
67
|
-
throw new McpError(ErrorCode.InvalidRequest, 'No vision model specified. Provide "model" or set NANOGPT_VISION_MODEL.');
|
|
68
|
-
}
|
|
69
|
-
// Build content array (text + images)
|
|
70
|
-
const content = [{ type: 'text', text: input.prompt }];
|
|
71
|
-
const detail = input.image_detail;
|
|
72
|
-
const addImage = (url) => {
|
|
73
|
-
if (detail) {
|
|
74
|
-
content.push({ type: 'image_url', image_url: { url, detail } });
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
content.push({ type: 'image_url', image_url: { url } });
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
for (const url of imageSources) {
|
|
81
|
-
addImage(url);
|
|
82
|
-
}
|
|
83
|
-
// Build messages
|
|
84
|
-
const messages = [];
|
|
85
|
-
if (input.system_prompt) {
|
|
86
|
-
messages.push({ role: 'system', content: input.system_prompt });
|
|
87
|
-
}
|
|
88
|
-
messages.push({ role: 'user', content });
|
|
89
|
-
// Build request body
|
|
90
|
-
const requestBody = {
|
|
91
|
-
model,
|
|
92
|
-
messages,
|
|
93
|
-
stream: false, // Force non-streaming for MCP v1
|
|
94
|
-
};
|
|
95
|
-
if (input.temperature !== undefined) {
|
|
96
|
-
requestBody.temperature = input.temperature;
|
|
97
|
-
}
|
|
98
|
-
if (input.max_tokens !== undefined) {
|
|
99
|
-
requestBody.max_tokens = input.max_tokens;
|
|
100
|
-
}
|
|
101
|
-
// Call NanoGPT API
|
|
102
|
-
const response = await requestJson({
|
|
103
|
-
method: 'POST',
|
|
104
|
-
path: '/v1/chat/completions',
|
|
105
|
-
body: requestBody,
|
|
106
|
-
});
|
|
107
|
-
const data = response.json;
|
|
108
|
-
// Extract assistant message
|
|
109
|
-
const choice = data.choices?.[0];
|
|
110
|
-
if (!choice) {
|
|
111
|
-
throw new McpError(ErrorCode.InternalError, 'No response from model');
|
|
112
|
-
}
|
|
113
|
-
const assistantMessage = choice.message;
|
|
114
|
-
const rawContent = assistantMessage.content;
|
|
115
|
-
let contentText = '';
|
|
116
|
-
if (typeof rawContent === 'string') {
|
|
117
|
-
contentText = rawContent;
|
|
118
|
-
}
|
|
119
|
-
else if (rawContent !== undefined) {
|
|
120
|
-
contentText = JSON.stringify(rawContent);
|
|
121
|
-
}
|
|
122
|
-
// Build output
|
|
123
|
-
const output = {
|
|
124
|
-
content: contentText,
|
|
125
|
-
message: assistantMessage,
|
|
126
|
-
};
|
|
127
|
-
if (input.include_usage && data.usage) {
|
|
128
|
-
output.usage = data.usage;
|
|
129
|
-
}
|
|
130
|
-
// Process raw response
|
|
131
|
-
const { raw, resourceLink } = processRawResponse({ status: response.status, headers: response.headers, body: data }, input.include_raw);
|
|
132
|
-
if (raw !== undefined) {
|
|
133
|
-
output.raw = raw;
|
|
134
|
-
}
|
|
135
|
-
// Build content
|
|
136
|
-
let displayText;
|
|
137
|
-
if (contentText) {
|
|
138
|
-
displayText = contentText;
|
|
139
|
-
}
|
|
140
|
-
else if (assistantMessage.tool_calls) {
|
|
141
|
-
displayText = `Assistant requested tool calls: ${JSON.stringify(assistantMessage.tool_calls)}`;
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
displayText = JSON.stringify(assistantMessage);
|
|
145
|
-
}
|
|
146
|
-
return {
|
|
147
|
-
content: buildContent(displayText, resourceLink),
|
|
148
|
-
structuredContent: output,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
catch (err) {
|
|
152
|
-
return handleToolError(err);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=vision.js.map
|
package/dist/tools/vision.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vision.js","sourceRoot":"","sources":["../../src/tools/vision.ts"],"names":[],"mappings":"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"}
|