@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
|
@@ -1,42 +1,195 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* nanogpt_web_search tool
|
|
3
3
|
*
|
|
4
|
-
* Search the web for current information
|
|
4
|
+
* Search the web for current information using multiple providers:
|
|
5
|
+
* - linkup: Default provider, supports standard/deep depth
|
|
6
|
+
* - tavily: Advanced search with answer generation, topic filtering
|
|
7
|
+
* - exa: Neural/semantic search with content extraction
|
|
8
|
+
* - kagi: Privacy-focused search with web/news/search modes
|
|
9
|
+
* - perplexity: AI-powered search with domain/language filtering
|
|
5
10
|
*/
|
|
6
11
|
import { z } from 'zod';
|
|
7
12
|
export declare const inputSchema: z.ZodObject<{
|
|
8
13
|
query: z.ZodString;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
provider: z.ZodOptional<z.ZodEnum<["linkup", "tavily", "exa", "kagi", "perplexity"]>>;
|
|
15
|
+
depth: z.ZodOptional<z.ZodEnum<["standard", "deep", "fast", "auto", "neural"]>>;
|
|
16
|
+
maxResults: z.ZodOptional<z.ZodNumber>;
|
|
12
17
|
includeImages: z.ZodOptional<z.ZodBoolean>;
|
|
13
18
|
fromDate: z.ZodOptional<z.ZodString>;
|
|
14
19
|
toDate: z.ZodOptional<z.ZodString>;
|
|
15
20
|
excludeDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
16
21
|
includeDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
22
|
+
outputType: z.ZodOptional<z.ZodEnum<["searchResults", "sourcedAnswer", "structured"]>>;
|
|
23
|
+
structuredOutputSchema: z.ZodOptional<z.ZodString>;
|
|
24
|
+
kagiSource: z.ZodOptional<z.ZodEnum<["web", "news", "search"]>>;
|
|
25
|
+
includeAnswer: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["basic", "advanced"]>]>>;
|
|
26
|
+
includeRawContent: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["markdown", "text"]>]>>;
|
|
27
|
+
topic: z.ZodOptional<z.ZodEnum<["general", "news", "finance"]>>;
|
|
28
|
+
timeRange: z.ZodOptional<z.ZodEnum<["day", "week", "month", "year", "d", "w", "m", "y"]>>;
|
|
29
|
+
chunksPerSource: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
country: z.ZodOptional<z.ZodString>;
|
|
31
|
+
category: z.ZodOptional<z.ZodEnum<["company", "research paper", "news", "pdf", "github", "tweet", "personal site", "people", "financial report"]>>;
|
|
32
|
+
context: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
33
|
+
maxCharacters: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
maxCharacters?: number | undefined;
|
|
36
|
+
}, {
|
|
37
|
+
maxCharacters?: number | undefined;
|
|
38
|
+
}>]>>;
|
|
39
|
+
contents: z.ZodOptional<z.ZodObject<{
|
|
40
|
+
text: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
41
|
+
maxCharacters: z.ZodOptional<z.ZodNumber>;
|
|
42
|
+
includeHtmlTags: z.ZodOptional<z.ZodBoolean>;
|
|
43
|
+
}, "strip", z.ZodTypeAny, {
|
|
44
|
+
maxCharacters?: number | undefined;
|
|
45
|
+
includeHtmlTags?: boolean | undefined;
|
|
46
|
+
}, {
|
|
47
|
+
maxCharacters?: number | undefined;
|
|
48
|
+
includeHtmlTags?: boolean | undefined;
|
|
49
|
+
}>]>>;
|
|
50
|
+
highlights: z.ZodOptional<z.ZodObject<{
|
|
51
|
+
numSentences: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
highlightsPerUrl: z.ZodOptional<z.ZodNumber>;
|
|
53
|
+
query: z.ZodOptional<z.ZodString>;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
query?: string | undefined;
|
|
56
|
+
numSentences?: number | undefined;
|
|
57
|
+
highlightsPerUrl?: number | undefined;
|
|
58
|
+
}, {
|
|
59
|
+
query?: string | undefined;
|
|
60
|
+
numSentences?: number | undefined;
|
|
61
|
+
highlightsPerUrl?: number | undefined;
|
|
62
|
+
}>>;
|
|
63
|
+
summary: z.ZodOptional<z.ZodObject<{
|
|
64
|
+
query: z.ZodOptional<z.ZodString>;
|
|
65
|
+
}, "strip", z.ZodTypeAny, {
|
|
66
|
+
query?: string | undefined;
|
|
67
|
+
}, {
|
|
68
|
+
query?: string | undefined;
|
|
69
|
+
}>>;
|
|
70
|
+
livecrawl: z.ZodOptional<z.ZodEnum<["never", "fallback", "always", "preferred"]>>;
|
|
71
|
+
subpages: z.ZodOptional<z.ZodNumber>;
|
|
72
|
+
}, "strip", z.ZodTypeAny, {
|
|
73
|
+
text?: boolean | {
|
|
74
|
+
maxCharacters?: number | undefined;
|
|
75
|
+
includeHtmlTags?: boolean | undefined;
|
|
76
|
+
} | undefined;
|
|
77
|
+
highlights?: {
|
|
78
|
+
query?: string | undefined;
|
|
79
|
+
numSentences?: number | undefined;
|
|
80
|
+
highlightsPerUrl?: number | undefined;
|
|
81
|
+
} | undefined;
|
|
82
|
+
summary?: {
|
|
83
|
+
query?: string | undefined;
|
|
84
|
+
} | undefined;
|
|
85
|
+
livecrawl?: "never" | "fallback" | "always" | "preferred" | undefined;
|
|
86
|
+
subpages?: number | undefined;
|
|
87
|
+
}, {
|
|
88
|
+
text?: boolean | {
|
|
89
|
+
maxCharacters?: number | undefined;
|
|
90
|
+
includeHtmlTags?: boolean | undefined;
|
|
91
|
+
} | undefined;
|
|
92
|
+
highlights?: {
|
|
93
|
+
query?: string | undefined;
|
|
94
|
+
numSentences?: number | undefined;
|
|
95
|
+
highlightsPerUrl?: number | undefined;
|
|
96
|
+
} | undefined;
|
|
97
|
+
summary?: {
|
|
98
|
+
query?: string | undefined;
|
|
99
|
+
} | undefined;
|
|
100
|
+
livecrawl?: "never" | "fallback" | "always" | "preferred" | undefined;
|
|
101
|
+
subpages?: number | undefined;
|
|
102
|
+
}>>;
|
|
103
|
+
maxTokensPerPage: z.ZodOptional<z.ZodNumber>;
|
|
104
|
+
searchDomainFilter: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
105
|
+
searchLanguageFilter: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
17
106
|
include_raw: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
18
107
|
}, "strip", z.ZodTypeAny, {
|
|
19
108
|
query: string;
|
|
20
109
|
include_raw: boolean;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
110
|
+
provider?: "linkup" | "tavily" | "exa" | "kagi" | "perplexity" | undefined;
|
|
111
|
+
depth?: "standard" | "deep" | "fast" | "auto" | "neural" | undefined;
|
|
112
|
+
maxResults?: number | undefined;
|
|
24
113
|
includeImages?: boolean | undefined;
|
|
25
114
|
fromDate?: string | undefined;
|
|
26
115
|
toDate?: string | undefined;
|
|
27
116
|
excludeDomains?: string[] | undefined;
|
|
28
117
|
includeDomains?: string[] | undefined;
|
|
118
|
+
outputType?: "searchResults" | "sourcedAnswer" | "structured" | undefined;
|
|
119
|
+
structuredOutputSchema?: string | undefined;
|
|
120
|
+
kagiSource?: "web" | "news" | "search" | undefined;
|
|
121
|
+
includeAnswer?: boolean | "basic" | "advanced" | undefined;
|
|
122
|
+
includeRawContent?: boolean | "text" | "markdown" | undefined;
|
|
123
|
+
topic?: "news" | "general" | "finance" | undefined;
|
|
124
|
+
timeRange?: "day" | "week" | "month" | "year" | "d" | "w" | "m" | "y" | undefined;
|
|
125
|
+
chunksPerSource?: number | undefined;
|
|
126
|
+
country?: string | undefined;
|
|
127
|
+
category?: "news" | "company" | "research paper" | "pdf" | "github" | "tweet" | "personal site" | "people" | "financial report" | undefined;
|
|
128
|
+
context?: boolean | {
|
|
129
|
+
maxCharacters?: number | undefined;
|
|
130
|
+
} | undefined;
|
|
131
|
+
contents?: {
|
|
132
|
+
text?: boolean | {
|
|
133
|
+
maxCharacters?: number | undefined;
|
|
134
|
+
includeHtmlTags?: boolean | undefined;
|
|
135
|
+
} | undefined;
|
|
136
|
+
highlights?: {
|
|
137
|
+
query?: string | undefined;
|
|
138
|
+
numSentences?: number | undefined;
|
|
139
|
+
highlightsPerUrl?: number | undefined;
|
|
140
|
+
} | undefined;
|
|
141
|
+
summary?: {
|
|
142
|
+
query?: string | undefined;
|
|
143
|
+
} | undefined;
|
|
144
|
+
livecrawl?: "never" | "fallback" | "always" | "preferred" | undefined;
|
|
145
|
+
subpages?: number | undefined;
|
|
146
|
+
} | undefined;
|
|
147
|
+
maxTokensPerPage?: number | undefined;
|
|
148
|
+
searchDomainFilter?: string[] | undefined;
|
|
149
|
+
searchLanguageFilter?: string[] | undefined;
|
|
29
150
|
}, {
|
|
30
151
|
query: string;
|
|
31
152
|
include_raw?: boolean | undefined;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
153
|
+
provider?: "linkup" | "tavily" | "exa" | "kagi" | "perplexity" | undefined;
|
|
154
|
+
depth?: "standard" | "deep" | "fast" | "auto" | "neural" | undefined;
|
|
155
|
+
maxResults?: number | undefined;
|
|
35
156
|
includeImages?: boolean | undefined;
|
|
36
157
|
fromDate?: string | undefined;
|
|
37
158
|
toDate?: string | undefined;
|
|
38
159
|
excludeDomains?: string[] | undefined;
|
|
39
160
|
includeDomains?: string[] | undefined;
|
|
161
|
+
outputType?: "searchResults" | "sourcedAnswer" | "structured" | undefined;
|
|
162
|
+
structuredOutputSchema?: string | undefined;
|
|
163
|
+
kagiSource?: "web" | "news" | "search" | undefined;
|
|
164
|
+
includeAnswer?: boolean | "basic" | "advanced" | undefined;
|
|
165
|
+
includeRawContent?: boolean | "text" | "markdown" | undefined;
|
|
166
|
+
topic?: "news" | "general" | "finance" | undefined;
|
|
167
|
+
timeRange?: "day" | "week" | "month" | "year" | "d" | "w" | "m" | "y" | undefined;
|
|
168
|
+
chunksPerSource?: number | undefined;
|
|
169
|
+
country?: string | undefined;
|
|
170
|
+
category?: "news" | "company" | "research paper" | "pdf" | "github" | "tweet" | "personal site" | "people" | "financial report" | undefined;
|
|
171
|
+
context?: boolean | {
|
|
172
|
+
maxCharacters?: number | undefined;
|
|
173
|
+
} | undefined;
|
|
174
|
+
contents?: {
|
|
175
|
+
text?: boolean | {
|
|
176
|
+
maxCharacters?: number | undefined;
|
|
177
|
+
includeHtmlTags?: boolean | undefined;
|
|
178
|
+
} | undefined;
|
|
179
|
+
highlights?: {
|
|
180
|
+
query?: string | undefined;
|
|
181
|
+
numSentences?: number | undefined;
|
|
182
|
+
highlightsPerUrl?: number | undefined;
|
|
183
|
+
} | undefined;
|
|
184
|
+
summary?: {
|
|
185
|
+
query?: string | undefined;
|
|
186
|
+
} | undefined;
|
|
187
|
+
livecrawl?: "never" | "fallback" | "always" | "preferred" | undefined;
|
|
188
|
+
subpages?: number | undefined;
|
|
189
|
+
} | undefined;
|
|
190
|
+
maxTokensPerPage?: number | undefined;
|
|
191
|
+
searchDomainFilter?: string[] | undefined;
|
|
192
|
+
searchLanguageFilter?: string[] | undefined;
|
|
40
193
|
}>;
|
|
41
194
|
export declare const outputSchema: z.ZodObject<{
|
|
42
195
|
data: z.ZodUnknown;
|
|
@@ -54,7 +207,7 @@ export declare const outputSchema: z.ZodObject<{
|
|
|
54
207
|
export declare const inputJsonSchema: import("../toolUtils.js").JsonSchema;
|
|
55
208
|
export declare const outputJsonSchema: import("../toolUtils.js").JsonSchema;
|
|
56
209
|
export declare const name = "nanogpt_web_search";
|
|
57
|
-
export declare const description = "Search the web
|
|
210
|
+
export declare const description = "Search the web using multiple providers. Providers: linkup (default), tavily (AI answers), exa (semantic/neural), kagi (privacy-focused), perplexity (AI-powered). Each provider has unique features - see parameter descriptions.";
|
|
58
211
|
export declare const annotations: {
|
|
59
212
|
readOnlyHint: boolean;
|
|
60
213
|
openWorldHint: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webSearch.d.ts","sourceRoot":"","sources":["../../src/tools/webSearch.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"webSearch.d.ts","sourceRoot":"","sources":["../../src/tools/webSearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2FtB,CAAC;AAGH,eAAO,MAAM,YAAY;;;;;;;;;;;;EAIvB,CAAC;AAGH,eAAO,MAAM,eAAe,sCAA+B,CAAC;AAC5D,eAAO,MAAM,gBAAgB,sCAAgC,CAAC;AAG9D,eAAO,MAAM,IAAI,uBAAuB,CAAC;AACzC,eAAO,MAAM,WAAW,uOAC8M,CAAC;AAGvO,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAkCF;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO;;;GA6H1C"}
|
package/dist/tools/webSearch.js
CHANGED
|
@@ -1,23 +1,100 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* nanogpt_web_search tool
|
|
3
3
|
*
|
|
4
|
-
* Search the web for current information
|
|
4
|
+
* Search the web for current information using multiple providers:
|
|
5
|
+
* - linkup: Default provider, supports standard/deep depth
|
|
6
|
+
* - tavily: Advanced search with answer generation, topic filtering
|
|
7
|
+
* - exa: Neural/semantic search with content extraction
|
|
8
|
+
* - kagi: Privacy-focused search with web/news/search modes
|
|
9
|
+
* - perplexity: AI-powered search with domain/language filtering
|
|
5
10
|
*/
|
|
6
11
|
import { z } from 'zod';
|
|
7
12
|
import { requestJson } from '../httpClient.js';
|
|
8
13
|
import { handleToolError, processRawResponse, buildContent, zodToJsonSchema } from '../toolUtils.js';
|
|
9
|
-
// Input schema
|
|
14
|
+
// Input schema with multi-provider support
|
|
10
15
|
export const inputSchema = z.object({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
// Required
|
|
17
|
+
query: z.string().min(1).describe('The search query'),
|
|
18
|
+
// Provider selection
|
|
19
|
+
provider: z.enum(['linkup', 'tavily', 'exa', 'kagi', 'perplexity']).optional()
|
|
20
|
+
.describe('Web search provider to use. Default: linkup'),
|
|
21
|
+
// Common options
|
|
22
|
+
depth: z.enum(['standard', 'deep', 'fast', 'auto', 'neural']).optional()
|
|
23
|
+
.describe('Search depth. fast/auto/neural only for Exa. Default: standard'),
|
|
24
|
+
maxResults: z.number().int().min(1).max(100).optional()
|
|
25
|
+
.describe('Maximum number of results to return'),
|
|
26
|
+
includeImages: z.boolean().optional()
|
|
27
|
+
.describe('Include image results (Linkup, Tavily)'),
|
|
28
|
+
fromDate: z.string().optional()
|
|
29
|
+
.describe('Start date filter (YYYY-MM-DD)'),
|
|
30
|
+
toDate: z.string().optional()
|
|
31
|
+
.describe('End date filter (YYYY-MM-DD)'),
|
|
32
|
+
excludeDomains: z.array(z.string()).optional()
|
|
33
|
+
.describe('Domains to exclude from results'),
|
|
34
|
+
includeDomains: z.array(z.string()).optional()
|
|
35
|
+
.describe('Only include results from these domains'),
|
|
36
|
+
// Linkup-specific
|
|
37
|
+
outputType: z.enum(['searchResults', 'sourcedAnswer', 'structured']).optional()
|
|
38
|
+
.describe('Output format (Linkup only). Default: searchResults'),
|
|
39
|
+
structuredOutputSchema: z.string().optional()
|
|
40
|
+
.describe('JSON schema for structured output (Linkup only, requires outputType=structured)'),
|
|
41
|
+
// Kagi-specific
|
|
42
|
+
kagiSource: z.enum(['web', 'news', 'search']).optional()
|
|
43
|
+
.describe('Kagi search mode: web (enriched), news, or search (full search API)'),
|
|
44
|
+
// Tavily-specific
|
|
45
|
+
includeAnswer: z.union([z.boolean(), z.enum(['basic', 'advanced'])]).optional()
|
|
46
|
+
.describe('Include AI-generated answer (Tavily)'),
|
|
47
|
+
includeRawContent: z.union([z.boolean(), z.enum(['markdown', 'text'])]).optional()
|
|
48
|
+
.describe('Include raw page content (Tavily)'),
|
|
49
|
+
topic: z.enum(['general', 'news', 'finance']).optional()
|
|
50
|
+
.describe('Search topic category (Tavily)'),
|
|
51
|
+
timeRange: z.enum(['day', 'week', 'month', 'year', 'd', 'w', 'm', 'y']).optional()
|
|
52
|
+
.describe('Time range filter (Tavily)'),
|
|
53
|
+
chunksPerSource: z.number().int().min(1).max(3).optional()
|
|
54
|
+
.describe('Chunks per source for deep search (Tavily, depth=deep only)'),
|
|
55
|
+
country: z.string().optional()
|
|
56
|
+
.describe('Country code for localized results (Tavily, Perplexity)'),
|
|
57
|
+
// Exa-specific
|
|
58
|
+
category: z.enum([
|
|
59
|
+
'company', 'research paper', 'news', 'pdf', 'github',
|
|
60
|
+
'tweet', 'personal site', 'people', 'financial report'
|
|
61
|
+
]).optional()
|
|
62
|
+
.describe('Content category filter (Exa)'),
|
|
63
|
+
context: z.union([
|
|
64
|
+
z.boolean(),
|
|
65
|
+
z.object({ maxCharacters: z.number().int().positive().optional() })
|
|
66
|
+
]).optional()
|
|
67
|
+
.describe('Include surrounding context (Exa)'),
|
|
68
|
+
contents: z.object({
|
|
69
|
+
text: z.union([
|
|
70
|
+
z.boolean(),
|
|
71
|
+
z.object({
|
|
72
|
+
maxCharacters: z.number().int().positive().optional(),
|
|
73
|
+
includeHtmlTags: z.boolean().optional(),
|
|
74
|
+
})
|
|
75
|
+
]).optional(),
|
|
76
|
+
highlights: z.object({
|
|
77
|
+
numSentences: z.number().int().positive().optional(),
|
|
78
|
+
highlightsPerUrl: z.number().int().positive().optional(),
|
|
79
|
+
query: z.string().optional(),
|
|
80
|
+
}).optional(),
|
|
81
|
+
summary: z.object({
|
|
82
|
+
query: z.string().optional(),
|
|
83
|
+
}).optional(),
|
|
84
|
+
livecrawl: z.enum(['never', 'fallback', 'always', 'preferred']).optional(),
|
|
85
|
+
subpages: z.number().int().min(0).optional(),
|
|
86
|
+
}).optional()
|
|
87
|
+
.describe('Content extraction options (Exa)'),
|
|
88
|
+
// Perplexity-specific
|
|
89
|
+
maxTokensPerPage: z.number().int().positive().optional()
|
|
90
|
+
.describe('Max tokens per page (Perplexity)'),
|
|
91
|
+
searchDomainFilter: z.array(z.string()).optional()
|
|
92
|
+
.describe('Domain allowlist/denylist, prefix with - to exclude (Perplexity)'),
|
|
93
|
+
searchLanguageFilter: z.array(z.string()).optional()
|
|
94
|
+
.describe('ISO 639-1 language codes to filter by (Perplexity)'),
|
|
95
|
+
// Debug
|
|
96
|
+
include_raw: z.boolean().optional().default(false)
|
|
97
|
+
.describe('Include raw API response for debugging'),
|
|
21
98
|
});
|
|
22
99
|
// Output schema
|
|
23
100
|
export const outputSchema = z.object({
|
|
@@ -30,7 +107,7 @@ export const inputJsonSchema = zodToJsonSchema(inputSchema);
|
|
|
30
107
|
export const outputJsonSchema = zodToJsonSchema(outputSchema);
|
|
31
108
|
// Tool metadata
|
|
32
109
|
export const name = 'nanogpt_web_search';
|
|
33
|
-
export const description = 'Search the web
|
|
110
|
+
export const description = 'Search the web using multiple providers. Providers: linkup (default), tavily (AI answers), exa (semantic/neural), kagi (privacy-focused), perplexity (AI-powered). Each provider has unique features - see parameter descriptions.';
|
|
34
111
|
// Annotations
|
|
35
112
|
export const annotations = {
|
|
36
113
|
readOnlyHint: false,
|
|
@@ -43,16 +120,18 @@ export async function handler(args) {
|
|
|
43
120
|
try {
|
|
44
121
|
// Validate input
|
|
45
122
|
const input = inputSchema.parse(args);
|
|
46
|
-
// Build request body
|
|
123
|
+
// Build request body with all parameters
|
|
47
124
|
const requestBody = {
|
|
48
125
|
query: input.query,
|
|
49
126
|
};
|
|
127
|
+
// Provider selection
|
|
128
|
+
if (input.provider)
|
|
129
|
+
requestBody.provider = input.provider;
|
|
130
|
+
// Common options
|
|
50
131
|
if (input.depth)
|
|
51
132
|
requestBody.depth = input.depth;
|
|
52
|
-
if (input.
|
|
53
|
-
requestBody.
|
|
54
|
-
if (input.structuredOutputSchema)
|
|
55
|
-
requestBody.structuredOutputSchema = input.structuredOutputSchema;
|
|
133
|
+
if (input.maxResults !== undefined)
|
|
134
|
+
requestBody.maxResults = input.maxResults;
|
|
56
135
|
if (input.includeImages !== undefined)
|
|
57
136
|
requestBody.includeImages = input.includeImages;
|
|
58
137
|
if (input.fromDate)
|
|
@@ -63,6 +142,41 @@ export async function handler(args) {
|
|
|
63
142
|
requestBody.excludeDomains = input.excludeDomains;
|
|
64
143
|
if (input.includeDomains)
|
|
65
144
|
requestBody.includeDomains = input.includeDomains;
|
|
145
|
+
// Linkup-specific
|
|
146
|
+
if (input.outputType)
|
|
147
|
+
requestBody.outputType = input.outputType;
|
|
148
|
+
if (input.structuredOutputSchema)
|
|
149
|
+
requestBody.structuredOutputSchema = input.structuredOutputSchema;
|
|
150
|
+
// Kagi-specific
|
|
151
|
+
if (input.kagiSource)
|
|
152
|
+
requestBody.kagiSource = input.kagiSource;
|
|
153
|
+
// Tavily-specific
|
|
154
|
+
if (input.includeAnswer !== undefined)
|
|
155
|
+
requestBody.includeAnswer = input.includeAnswer;
|
|
156
|
+
if (input.includeRawContent !== undefined)
|
|
157
|
+
requestBody.includeRawContent = input.includeRawContent;
|
|
158
|
+
if (input.topic)
|
|
159
|
+
requestBody.topic = input.topic;
|
|
160
|
+
if (input.timeRange)
|
|
161
|
+
requestBody.timeRange = input.timeRange;
|
|
162
|
+
if (input.chunksPerSource !== undefined)
|
|
163
|
+
requestBody.chunksPerSource = input.chunksPerSource;
|
|
164
|
+
if (input.country)
|
|
165
|
+
requestBody.country = input.country;
|
|
166
|
+
// Exa-specific
|
|
167
|
+
if (input.category)
|
|
168
|
+
requestBody.category = input.category;
|
|
169
|
+
if (input.context !== undefined)
|
|
170
|
+
requestBody.context = input.context;
|
|
171
|
+
if (input.contents)
|
|
172
|
+
requestBody.contents = input.contents;
|
|
173
|
+
// Perplexity-specific
|
|
174
|
+
if (input.maxTokensPerPage !== undefined)
|
|
175
|
+
requestBody.maxTokensPerPage = input.maxTokensPerPage;
|
|
176
|
+
if (input.searchDomainFilter)
|
|
177
|
+
requestBody.searchDomainFilter = input.searchDomainFilter;
|
|
178
|
+
if (input.searchLanguageFilter)
|
|
179
|
+
requestBody.searchLanguageFilter = input.searchLanguageFilter;
|
|
66
180
|
// Call NanoGPT API - web search can take up to 5 minutes
|
|
67
181
|
const response = await requestJson({
|
|
68
182
|
method: 'POST',
|
|
@@ -71,11 +185,21 @@ export async function handler(args) {
|
|
|
71
185
|
timeoutMs: 300000, // 5 minutes
|
|
72
186
|
});
|
|
73
187
|
const data = response.json;
|
|
74
|
-
|
|
188
|
+
const provider = data.metadata?.provider || input.provider || 'linkup';
|
|
189
|
+
// Build output with provider-specific extras
|
|
75
190
|
const output = {
|
|
76
191
|
data: data.data,
|
|
77
192
|
metadata: data.metadata || {},
|
|
78
193
|
};
|
|
194
|
+
// Include provider-specific response data
|
|
195
|
+
if (data.tavily)
|
|
196
|
+
output.tavily = data.tavily;
|
|
197
|
+
if (data.exa)
|
|
198
|
+
output.exa = data.exa;
|
|
199
|
+
if (data.kagi)
|
|
200
|
+
output.kagi = data.kagi;
|
|
201
|
+
if (data.perplexity)
|
|
202
|
+
output.perplexity = data.perplexity;
|
|
79
203
|
// Process raw response
|
|
80
204
|
const { raw, resourceLink } = processRawResponse({ status: response.status, headers: response.headers, body: data }, input.include_raw);
|
|
81
205
|
if (raw !== undefined) {
|
|
@@ -84,8 +208,15 @@ export async function handler(args) {
|
|
|
84
208
|
// Build human-readable content
|
|
85
209
|
let displayText;
|
|
86
210
|
const resultData = data.data;
|
|
211
|
+
const providerLabel = provider.charAt(0).toUpperCase() + provider.slice(1);
|
|
87
212
|
if (Array.isArray(resultData)) {
|
|
88
|
-
displayText = `Found ${resultData.length} result(s) for: "${input.query}"`;
|
|
213
|
+
displayText = `[${providerLabel}] Found ${resultData.length} result(s) for: "${input.query}"`;
|
|
214
|
+
// Show Tavily answer if present
|
|
215
|
+
if (data.tavily?.answer) {
|
|
216
|
+
displayText += `\n\nAnswer: ${String(data.tavily.answer).slice(0, 300)}`;
|
|
217
|
+
if (String(data.tavily.answer).length > 300)
|
|
218
|
+
displayText += '...';
|
|
219
|
+
}
|
|
89
220
|
// Add first few results as preview
|
|
90
221
|
const preview = resultData.slice(0, 3);
|
|
91
222
|
for (const item of preview) {
|
|
@@ -103,10 +234,14 @@ export async function handler(args) {
|
|
|
103
234
|
}
|
|
104
235
|
}
|
|
105
236
|
else if (typeof resultData === 'object' && resultData !== null) {
|
|
106
|
-
displayText = `Search completed for: "${input.query}"\n${JSON.stringify(resultData, null, 2).slice(0, 500)}`;
|
|
237
|
+
displayText = `[${providerLabel}] Search completed for: "${input.query}"\n${JSON.stringify(resultData, null, 2).slice(0, 500)}`;
|
|
107
238
|
}
|
|
108
239
|
else {
|
|
109
|
-
displayText = `Search completed for: "${input.query}"`;
|
|
240
|
+
displayText = `[${providerLabel}] Search completed for: "${input.query}"`;
|
|
241
|
+
}
|
|
242
|
+
// Add cost info if available
|
|
243
|
+
if (data.metadata?.cost !== undefined && data.metadata.cost > 0) {
|
|
244
|
+
displayText += `\n\nCost: $${data.metadata.cost.toFixed(4)}`;
|
|
110
245
|
}
|
|
111
246
|
return {
|
|
112
247
|
content: buildContent(displayText, resourceLink),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webSearch.js","sourceRoot":"","sources":["../../src/tools/webSearch.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"webSearch.js","sourceRoot":"","sources":["../../src/tools/webSearch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nanogpt/mcp",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"description": "MCP server for NanoGPT API integration",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"publishConfig": {
|
|
7
|
-
"access": "public"
|
|
8
|
-
},
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/Nano-GPT-com/nanogpt-mcp.git"
|
|
12
|
-
},
|
|
13
6
|
"engines": {
|
|
14
7
|
"node": ">=22"
|
|
15
8
|
},
|
|
@@ -19,22 +12,26 @@
|
|
|
19
12
|
},
|
|
20
13
|
"scripts": {
|
|
21
14
|
"build": "tsc",
|
|
22
|
-
"prepublishOnly": "npm run build",
|
|
23
15
|
"start": "node dist/index.js",
|
|
24
16
|
"dev": "tsc --watch",
|
|
25
17
|
"test": "node --test tests/*.test.js",
|
|
26
18
|
"typecheck": "tsc --noEmit"
|
|
27
19
|
},
|
|
28
20
|
"dependencies": {
|
|
29
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
30
|
-
"zod": "^3.
|
|
31
|
-
"lru-cache": "^11.0.2"
|
|
32
|
-
"undici": "^5.28.4"
|
|
21
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
22
|
+
"zod": "^3.25.76",
|
|
23
|
+
"lru-cache": "^11.0.2"
|
|
33
24
|
},
|
|
34
25
|
"devDependencies": {
|
|
35
26
|
"@types/node": "^22.10.2",
|
|
36
27
|
"typescript": "^5.7.2"
|
|
37
28
|
},
|
|
29
|
+
"overrides": {
|
|
30
|
+
"qs": "^6.14.1"
|
|
31
|
+
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
38
35
|
"files": [
|
|
39
36
|
"dist/**/*"
|
|
40
37
|
],
|
package/dist/tools/vision.d.ts
DELETED
|
@@ -1,78 +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
|
-
export declare const inputSchema: z.ZodObject<{
|
|
8
|
-
prompt: z.ZodString;
|
|
9
|
-
image_url: z.ZodOptional<z.ZodString>;
|
|
10
|
-
image_urls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
11
|
-
image_data_url: z.ZodOptional<z.ZodString>;
|
|
12
|
-
image_data_urls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
13
|
-
image_detail: z.ZodOptional<z.ZodEnum<["low", "high", "auto"]>>;
|
|
14
|
-
model: z.ZodOptional<z.ZodString>;
|
|
15
|
-
temperature: z.ZodOptional<z.ZodNumber>;
|
|
16
|
-
max_tokens: z.ZodOptional<z.ZodNumber>;
|
|
17
|
-
include_usage: z.ZodOptional<z.ZodBoolean>;
|
|
18
|
-
system_prompt: z.ZodOptional<z.ZodString>;
|
|
19
|
-
include_raw: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
20
|
-
}, "strip", z.ZodTypeAny, {
|
|
21
|
-
include_raw: boolean;
|
|
22
|
-
prompt: string;
|
|
23
|
-
model?: string | undefined;
|
|
24
|
-
temperature?: number | undefined;
|
|
25
|
-
max_tokens?: number | undefined;
|
|
26
|
-
include_usage?: boolean | undefined;
|
|
27
|
-
image_url?: string | undefined;
|
|
28
|
-
image_urls?: string[] | undefined;
|
|
29
|
-
image_data_url?: string | undefined;
|
|
30
|
-
image_data_urls?: string[] | undefined;
|
|
31
|
-
image_detail?: "low" | "high" | "auto" | undefined;
|
|
32
|
-
system_prompt?: string | undefined;
|
|
33
|
-
}, {
|
|
34
|
-
prompt: string;
|
|
35
|
-
include_raw?: boolean | undefined;
|
|
36
|
-
model?: string | undefined;
|
|
37
|
-
temperature?: number | undefined;
|
|
38
|
-
max_tokens?: number | undefined;
|
|
39
|
-
include_usage?: boolean | undefined;
|
|
40
|
-
image_url?: string | undefined;
|
|
41
|
-
image_urls?: string[] | undefined;
|
|
42
|
-
image_data_url?: string | undefined;
|
|
43
|
-
image_data_urls?: string[] | undefined;
|
|
44
|
-
image_detail?: "low" | "high" | "auto" | undefined;
|
|
45
|
-
system_prompt?: string | undefined;
|
|
46
|
-
}>;
|
|
47
|
-
export declare const outputSchema: z.ZodObject<{
|
|
48
|
-
content: z.ZodString;
|
|
49
|
-
message: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
50
|
-
usage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
51
|
-
raw: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodString]>>;
|
|
52
|
-
}, "strip", z.ZodTypeAny, {
|
|
53
|
-
message: Record<string, unknown>;
|
|
54
|
-
content: string;
|
|
55
|
-
raw?: string | Record<string, unknown> | undefined;
|
|
56
|
-
usage?: Record<string, unknown> | undefined;
|
|
57
|
-
}, {
|
|
58
|
-
message: Record<string, unknown>;
|
|
59
|
-
content: string;
|
|
60
|
-
raw?: string | Record<string, unknown> | undefined;
|
|
61
|
-
usage?: Record<string, unknown> | undefined;
|
|
62
|
-
}>;
|
|
63
|
-
export declare const inputJsonSchema: import("../toolUtils.js").JsonSchema;
|
|
64
|
-
export declare const outputJsonSchema: import("../toolUtils.js").JsonSchema;
|
|
65
|
-
export declare const name = "nanogpt_vision";
|
|
66
|
-
export declare const description = "Analyze images with a vision-capable model. Provide an image URL or data URL plus a prompt.";
|
|
67
|
-
export declare const annotations: {
|
|
68
|
-
readOnlyHint: boolean;
|
|
69
|
-
openWorldHint: boolean;
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* Handler for nanogpt_vision
|
|
73
|
-
*/
|
|
74
|
-
export declare function handler(args: unknown): Promise<{
|
|
75
|
-
content: import("../toolUtils.js").ContentItem[];
|
|
76
|
-
structuredContent: Record<string, unknown>;
|
|
77
|
-
}>;
|
|
78
|
-
//# sourceMappingURL=vision.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../src/tools/vision.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAatB,CAAC;AAGH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;EAKvB,CAAC;AAGH,eAAO,MAAM,eAAe,sCAA+B,CAAC;AAC5D,eAAO,MAAM,gBAAgB,sCAAgC,CAAC;AAG9D,eAAO,MAAM,IAAI,mBAAmB,CAAC;AACrC,eAAO,MAAM,WAAW,gGACuE,CAAC;AAGhG,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAiBF;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO;;;GA8H1C"}
|