@ayga/mcp-client 2.0.1 → 3.0.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/README.md +229 -189
- package/dist/index.js +62 -47
- package/dist/index.js.map +1 -1
- package/dist/parser-registry.d.ts +99 -0
- package/dist/parser-registry.d.ts.map +1 -0
- package/dist/parser-registry.js +262 -0
- package/dist/parser-registry.js.map +1 -0
- package/dist/tests/parser-registry.test.d.ts +7 -0
- package/dist/tests/parser-registry.test.d.ts.map +1 -0
- package/dist/tests/parser-registry.test.js +152 -0
- package/dist/tests/parser-registry.test.js.map +1 -0
- package/dist/tool-definitions.d.ts +40 -0
- package/dist/tool-definitions.d.ts.map +1 -0
- package/dist/tool-definitions.js +126 -0
- package/dist/tool-definitions.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consolidated Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* Instead of 40+ individual tools, we define 6 category-based tools
|
|
5
|
+
* with an optional 'engine' parameter for specific parser selection.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Consolidated tool definitions
|
|
9
|
+
*/
|
|
10
|
+
export const TOOL_CATEGORIES = [
|
|
11
|
+
{
|
|
12
|
+
id: "ask_ai",
|
|
13
|
+
name: "Ask AI",
|
|
14
|
+
description: "Query AI models like Perplexity, ChatGPT, Claude, Gemini for answers and analysis",
|
|
15
|
+
categories: ["AI Chat"],
|
|
16
|
+
defaultEngine: "perplexity",
|
|
17
|
+
defaultEnvVar: "DEFAULT_AI_ENGINE",
|
|
18
|
+
queryDescription: "Question or prompt for the AI model",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: "search_web",
|
|
22
|
+
name: "Web Search",
|
|
23
|
+
description: "Search the web using Google, Bing, DuckDuckGo, Yandex or get Google Trends data",
|
|
24
|
+
categories: ["Search Engines", "Google Trends"],
|
|
25
|
+
defaultEngine: "google_search",
|
|
26
|
+
defaultEnvVar: "DEFAULT_SEARCH_ENGINE",
|
|
27
|
+
queryDescription: "Search query",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: "get_social",
|
|
31
|
+
name: "Social Media",
|
|
32
|
+
description: "Get data from social platforms: Instagram profiles/posts, TikTok, Reddit posts/comments, Pinterest",
|
|
33
|
+
categories: ["Instagram", "TikTok", "Reddit", "Pinterest"],
|
|
34
|
+
defaultEngine: "instagram_profile",
|
|
35
|
+
defaultEnvVar: "DEFAULT_SOCIAL_ENGINE",
|
|
36
|
+
queryDescription: "Username, URL, or search query",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "get_video",
|
|
40
|
+
name: "Video Data",
|
|
41
|
+
description: "Search YouTube videos, get video details, comments, or channel information",
|
|
42
|
+
categories: ["YouTube"],
|
|
43
|
+
defaultEngine: "youtube_search",
|
|
44
|
+
defaultEnvVar: "DEFAULT_VIDEO_ENGINE",
|
|
45
|
+
queryDescription: "Search query or video/channel URL",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: "translate",
|
|
49
|
+
name: "Translate",
|
|
50
|
+
description: "Translate text using Google Translate, DeepL, Bing, or Yandex",
|
|
51
|
+
categories: ["Translation"],
|
|
52
|
+
defaultEngine: "google_translate",
|
|
53
|
+
defaultEnvVar: "DEFAULT_TRANSLATION_ENGINE",
|
|
54
|
+
queryDescription: "Text to translate",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: "extract",
|
|
58
|
+
name: "Extract Content",
|
|
59
|
+
description: "Extract text, articles, or links from web pages",
|
|
60
|
+
categories: ["HTML Content"],
|
|
61
|
+
defaultEngine: "text_extractor",
|
|
62
|
+
defaultEnvVar: "DEFAULT_EXTRACTION_ENGINE",
|
|
63
|
+
queryDescription: "URL of the web page",
|
|
64
|
+
},
|
|
65
|
+
];
|
|
66
|
+
/**
|
|
67
|
+
* Get parsers for a tool category
|
|
68
|
+
*/
|
|
69
|
+
export function getParsersForTool(toolId, allParsers) {
|
|
70
|
+
const tool = TOOL_CATEGORIES.find(t => t.id === toolId);
|
|
71
|
+
if (!tool)
|
|
72
|
+
return [];
|
|
73
|
+
return allParsers.filter(p => tool.categories.includes(p.category));
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get default engine for a tool, checking ENV first
|
|
77
|
+
*/
|
|
78
|
+
export function getDefaultEngine(toolId) {
|
|
79
|
+
const tool = TOOL_CATEGORIES.find(t => t.id === toolId);
|
|
80
|
+
if (!tool)
|
|
81
|
+
return "";
|
|
82
|
+
// Check environment variable first
|
|
83
|
+
const envValue = process.env[tool.defaultEnvVar];
|
|
84
|
+
if (envValue) {
|
|
85
|
+
return envValue;
|
|
86
|
+
}
|
|
87
|
+
return tool.defaultEngine;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Find which tool a parser belongs to
|
|
91
|
+
*/
|
|
92
|
+
export function findToolForParser(parserId, allParsers) {
|
|
93
|
+
const parser = allParsers.find(p => p.id === parserId);
|
|
94
|
+
if (!parser)
|
|
95
|
+
return undefined;
|
|
96
|
+
return TOOL_CATEGORIES.find(t => t.categories.includes(parser.category));
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Build MCP tool schema for a consolidated tool
|
|
100
|
+
*/
|
|
101
|
+
export function buildToolSchema(tool, availableEngines) {
|
|
102
|
+
return {
|
|
103
|
+
name: tool.id,
|
|
104
|
+
description: tool.description,
|
|
105
|
+
inputSchema: {
|
|
106
|
+
type: "object",
|
|
107
|
+
properties: {
|
|
108
|
+
query: {
|
|
109
|
+
type: "string",
|
|
110
|
+
description: tool.queryDescription,
|
|
111
|
+
},
|
|
112
|
+
engine: {
|
|
113
|
+
type: "string",
|
|
114
|
+
description: `Specific engine to use. Available: ${availableEngines.join(", ")}. Default: ${getDefaultEngine(tool.id)}`,
|
|
115
|
+
enum: availableEngines,
|
|
116
|
+
},
|
|
117
|
+
timeout: {
|
|
118
|
+
type: "number",
|
|
119
|
+
description: "Timeout in seconds (default: 60)",
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
required: ["query"],
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=tool-definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-definitions.js","sourceRoot":"","sources":["../src/tool-definitions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@ayga/mcp-client",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "MCP client
|
|
1
|
+
{
|
|
2
|
+
"name": "@ayga/mcp-client",
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "MCP client with 6 consolidated AI tools (ask_ai, search_web, get_social, get_video, translate, extract) - context-optimized for LLMs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
7
7
|
"model-context-protocol",
|