@oevortex/ddg_search 1.1.0 → 1.1.2
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/Dockerfile +20 -0
- package/README.md +10 -6
- package/bin/cli.js +4 -8
- package/package.json +1 -1
- package/src/index.js +3 -3
- package/src/tools/feloTool.js +6 -6
package/Dockerfile
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Use official Node.js LTS image
|
|
2
|
+
FROM node:20-alpine
|
|
3
|
+
|
|
4
|
+
# Set working directory
|
|
5
|
+
WORKDIR /app
|
|
6
|
+
|
|
7
|
+
# Copy package.json and package-lock.json
|
|
8
|
+
COPY package*.json ./
|
|
9
|
+
|
|
10
|
+
# Install dependencies
|
|
11
|
+
RUN npm install --production
|
|
12
|
+
|
|
13
|
+
# Copy source code
|
|
14
|
+
COPY . .
|
|
15
|
+
|
|
16
|
+
# Expose port (if your app listens on a port, e.g. 3000)
|
|
17
|
+
EXPOSE 3000
|
|
18
|
+
|
|
19
|
+
# Default command (adjust if your entry point is different)
|
|
20
|
+
CMD ["node", "src/index.js"]
|
package/README.md
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<img src="https://img.shields.io/npm/v/@oevortex/ddg_search.svg" alt="npm version" />
|
|
3
3
|
<img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License: Apache 2.0" />
|
|
4
|
-
<img src="https://img.shields.io/badge/YouTube-%40OEvortex-red.svg" alt="YouTube Channel" />
|
|
4
|
+
<img src="https://img.shields.io/badge/YouTube-%40OEvortex-red.svg" alt="YouTube Channel" />
|
|
5
|
+
<h1>DuckDuckGo & Felo AI Search MCP 🔍🧠</h1>
|
|
5
6
|
<p>A blazing-fast, privacy-friendly Model Context Protocol (MCP) server for web search and AI-powered responses using DuckDuckGo and Felo AI.</p>
|
|
7
|
+
<a href="https://glama.ai/mcp/servers/@OEvortex/ddg_search">
|
|
8
|
+
<img width="380" height="200" src="https://glama.ai/mcp/servers/@OEvortex/ddg_search/badge" alt="DuckDuckGo Search MCP server" />
|
|
9
|
+
</a>
|
|
6
10
|
<a href="https://youtube.com/@OEvortex"><strong>Subscribe for updates & tutorials</strong></a>
|
|
7
11
|
</div>
|
|
8
12
|
|
|
@@ -36,12 +40,12 @@
|
|
|
36
40
|
<b>Run instantly with npx:</b>
|
|
37
41
|
|
|
38
42
|
```bash
|
|
39
|
-
npx -y @oevortex/ddg_search
|
|
43
|
+
npx -y @oevortex/ddg_search@latest
|
|
40
44
|
```
|
|
41
45
|
</div>
|
|
42
46
|
|
|
43
47
|
> [!TIP]
|
|
44
|
-
> This will download and run the MCP server directly without installation – perfect for quick use with AI assistants.
|
|
48
|
+
> This will download and run the latest version of the MCP server directly without installation – perfect for quick use with AI assistants.
|
|
45
49
|
|
|
46
50
|
---
|
|
47
51
|
|
|
@@ -79,7 +83,7 @@ npm start
|
|
|
79
83
|
## 🧑💻 Command Line Options
|
|
80
84
|
|
|
81
85
|
```bash
|
|
82
|
-
npx -y @oevortex/ddg_search --help
|
|
86
|
+
npx -y @oevortex/ddg_search@latest --help
|
|
83
87
|
```
|
|
84
88
|
|
|
85
89
|
> [!TIP]
|
|
@@ -99,7 +103,7 @@ Add the server to your MCP client configuration:
|
|
|
99
103
|
"mcpServers": {
|
|
100
104
|
"ddg-search": {
|
|
101
105
|
"command": "npx",
|
|
102
|
-
"args": ["-y", "@oevortex/ddg_search"]
|
|
106
|
+
"args": ["-y", "@oevortex/ddg_search@latest"]
|
|
103
107
|
}
|
|
104
108
|
}
|
|
105
109
|
}
|
|
@@ -223,4 +227,4 @@ Apache License 2.0
|
|
|
223
227
|
|
|
224
228
|
<div align="center">
|
|
225
229
|
<sub>Made with ❤️ by <a href="https://youtube.com/@OEvortex">@OEvortex</a></sub>
|
|
226
|
-
</div>
|
|
230
|
+
</div>
|
package/bin/cli.js
CHANGED
|
@@ -14,14 +14,12 @@ async function startServer() {
|
|
|
14
14
|
const { searchToolDefinition, searchToolHandler } = await import(`${modulePath}/tools/searchTool.js`);
|
|
15
15
|
const { fetchUrlToolDefinition, fetchUrlToolHandler } = await import(`${modulePath}/tools/fetchUrlTool.js`);
|
|
16
16
|
const { metadataToolDefinition, metadataToolHandler } = await import(`${modulePath}/tools/metadataTool.js`);
|
|
17
|
-
const { feloToolDefinition, feloToolHandler } = await import(`${modulePath}/tools/feloTool.js`);
|
|
18
|
-
|
|
19
|
-
// Create the MCP server
|
|
17
|
+
const { feloToolDefinition, feloToolHandler } = await import(`${modulePath}/tools/feloTool.js`); // Create the MCP server
|
|
20
18
|
const server = new Server({
|
|
21
19
|
id: 'ddg-search-mcp',
|
|
22
20
|
name: 'DuckDuckGo & Felo AI Search MCP',
|
|
23
21
|
description: 'A Model Context Protocol server for web search using DuckDuckGo and Felo AI',
|
|
24
|
-
version: '1.1.
|
|
22
|
+
version: '1.1.1'
|
|
25
23
|
}, {
|
|
26
24
|
capabilities: {
|
|
27
25
|
tools: {}
|
|
@@ -74,9 +72,7 @@ async function startServer() {
|
|
|
74
72
|
]
|
|
75
73
|
};
|
|
76
74
|
}
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
// Display promotional message
|
|
75
|
+
}); // Display promotional message
|
|
80
76
|
console.error('\n\x1b[36m╔════════════════════════════════════════════════════════════╗');
|
|
81
77
|
console.error('║ ║');
|
|
82
78
|
console.error('║ \x1b[1m\x1b[31mDuckDuckGo & Felo AI Search MCP\x1b[0m\x1b[36m by \x1b[1m\x1b[33m@OEvortex\x1b[0m\x1b[36m ║');
|
|
@@ -105,7 +101,7 @@ if (helpFlag) {
|
|
|
105
101
|
DuckDuckGo & Felo AI Search MCP - A Model Context Protocol server for web search
|
|
106
102
|
|
|
107
103
|
Usage:
|
|
108
|
-
npx -y @oevortex/ddg_search [options]
|
|
104
|
+
npx -y @oevortex/ddg_search@latest [options]
|
|
109
105
|
|
|
110
106
|
Options:
|
|
111
107
|
-h, --help Show this help message
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@oevortex/ddg_search","version":"1.1.
|
|
1
|
+
{"name":"@oevortex/ddg_search","version":"1.1.2","description":"A Model Context Protocol server for web search using DuckDuckGo and Felo AI","main":"src/index.js","bin":{"ddg-search-mcp":"bin/cli.js","oevortex-ddg-search":"bin/cli.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node bin/cli.js","prepublishOnly":"npm run lint","lint":"echo \"No linting configured\""},"publishConfig":{"access":"public"},"keywords":["mcp","model-context-protocol","duckduckgo","felo","search","web-search","ai-search","claude","ai","llm"],"author":"OEvortex","license":"Apache-2.0","type":"module","dependencies":{"@modelcontextprotocol/sdk":"^1.9.0","axios":"^1.8.4","cheerio":"^1.0.0","jsdom":"^26.1.0","uuid":"^9.0.1"}}
|
package/src/index.js
CHANGED
|
@@ -10,10 +10,10 @@ import { feloToolDefinition, feloToolHandler } from './tools/feloTool.js';
|
|
|
10
10
|
|
|
11
11
|
// Create the MCP server
|
|
12
12
|
const server = new Server({
|
|
13
|
-
id: '
|
|
14
|
-
name: '
|
|
13
|
+
id: 'ddg-search-mcp',
|
|
14
|
+
name: 'DuckDuckGo & Felo AI Search MCP',
|
|
15
15
|
description: 'A Model Context Protocol server for web search using DuckDuckGo and Felo AI',
|
|
16
|
-
version: '1.1.
|
|
16
|
+
version: '1.1.1'
|
|
17
17
|
}, {
|
|
18
18
|
capabilities: {
|
|
19
19
|
tools: {}
|
package/src/tools/feloTool.js
CHANGED
|
@@ -5,26 +5,26 @@ import { searchFelo } from '../utils/search_felo.js';
|
|
|
5
5
|
*/
|
|
6
6
|
export const feloToolDefinition = {
|
|
7
7
|
name: 'felo-search',
|
|
8
|
-
description: '
|
|
8
|
+
description: 'Advanced web search tool for technical intelligence. Retrieves up-to-date information from the web, including latest software releases, security advisories, migration guides, benchmarks, developer documentation, and community insights. Designed for function calling and automation, it provides structured, relevant results for engineering, DevOps, and research workflows. Supports both standard and streaming responses for real-time data consumption.',
|
|
9
9
|
inputSchema: {
|
|
10
10
|
type: 'object',
|
|
11
11
|
properties: {
|
|
12
12
|
query: {
|
|
13
13
|
type: 'string',
|
|
14
|
-
description: '
|
|
14
|
+
description: 'A detailed search query or prompt describing the technical information needed. Supports natural language and keyword-based queries for precise results.'
|
|
15
15
|
},
|
|
16
16
|
stream: {
|
|
17
17
|
type: 'boolean',
|
|
18
|
-
description: '
|
|
18
|
+
description: 'Enable streaming mode to receive incremental, real-time search results as they are discovered. Useful for monitoring live updates or large result sets. Default is false (returns full result at once).',
|
|
19
19
|
default: false
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
required: ['query']
|
|
23
23
|
},
|
|
24
24
|
annotations: {
|
|
25
|
-
title: 'Felo AI Search',
|
|
26
|
-
readOnlyHint:
|
|
27
|
-
openWorldHint:
|
|
25
|
+
title: 'Felo AI Advanced Web Search',
|
|
26
|
+
readOnlyHint: 'Results are read-only and cannot be modified. Use for information retrieval only.',
|
|
27
|
+
openWorldHint: 'Searches the open web and technical sources for the most current and relevant data. Not limited to a fixed dataset.'
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
|