@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 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" /> <h1>DuckDuckGo & Felo AI Search MCP 🔍🧠</h1>
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.0'
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.0","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"}}
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: 'websearch-mcp',
14
- name: 'WebSearch MCP',
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.0'
16
+ version: '1.1.1'
17
17
  }, {
18
18
  capabilities: {
19
19
  tools: {}
@@ -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: 'Search the web for up-to-date technical information like latest releases, security advisories, migration guides, benchmarks, and community insights',
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: 'The search query or prompt'
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: 'Whether to stream the response (default: false)',
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: true,
27
- openWorldHint: true
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