Skip to main content
Glama
Nipurn123

DuckDuckGo MCP Server

by Nipurn123

DuckDuckGo MCP Server πŸ¦†

A fast, free, and unlimited web search MCP server using DuckDuckGo. No API keys required!

npm version License: MIT MCP

Why This MCP?

  • βœ… 100% Free - No API keys, no subscriptions, no rate limits

  • βœ… Works Everywhere - DuckDuckGo HTML endpoint bypasses CAPTCHA

  • βœ… 3 Powerful Tools - Search, crawl, and research with AI ranking

  • βœ… Parallel Crawling - Fetch multiple pages simultaneously

  • βœ… Smart Ranking - Research tool ranks results by relevance to your question

Installation

For Claude Desktop / 100xprompt / Cursor / Windsurf

Add to your MCP config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "duckduckgo": {
      "command": "npx",
      "args": ["-y", "duckduckgo-mcp"]
    }
  }
}

From Source

git clone https://github.com/yourusername/duckduckgo-mcp.git
cd duckduckgo-mcp
npm install
npm run build

Then add to config:

{
  "mcpServers": {
    "duckduckgo": {
      "command": "node",
      "args": ["/path/to/duckduckgo-mcp/build/index.js"]
    }
  }
}

Tools

1. search

Quick web search. Returns titles, URLs, and descriptions.

{
  "name": "search",
  "arguments": {
    "query": "latest AI news 2026",
    "count": 10
  }
}

Parameters:

Parameter

Type

Default

Max

Description

query

string

required

-

Search query

count

number

10

20

Number of results


2. search_and_crawl

Search + crawl all result pages in parallel. Get full content from each source.

{
  "name": "search_and_crawl",
  "arguments": {
    "query": "best JavaScript frameworks 2026",
    "count": 5,
    "maxContentLength": 3000
  }
}

Parameters:

Parameter

Type

Default

Max

Description

query

string

required

-

Search query

count

number

5

10

Number of results to crawl

maxContentLength

number

3000

10000

Max characters per page


3. research ⭐

Best for answering questions. Searches, crawls in parallel, then ranks results by relevance to your question using:

Scoring Factor

Weight

Description

Keywords

30%

How many question keywords appear in content

Content Quality

25%

Length, structure, no paywalls

Source Authority

20%

Domain reputation (Wikipedia=10, Reuters=9, etc.)

Relevance

25%

Question type matching (how-to, what, why, etc.)

{
  "name": "research",
  "arguments": {
    "question": "How does Starlink help Ukraine in the war?",
    "count": 5,
    "maxContentLength": 3000
  }
}

Example Output:

[1] Wikipedia - Score: 6.4/10
    Keywords: 10 | Quality: 5 | Authority: 10 | Relevance: 0.6

[2] Defense Magazine - Score: 5.8/10
    Keywords: 10 | Quality: 7.5 | Authority: 3 | Relevance: 1.2

Usage Examples

With Claude / 100xprompt

Just ask naturally:

  • "Search for the latest news about Tesla"

  • "Research how quantum computing works"

  • "Find and compare React vs Vue performance"

Programmatic

// Search
const results = await mcp.callTool("search", {
  query: "TypeScript best practices",
  count: 10,
});

// Research with ranking
const research = await mcp.callTool("research", {
  question: "What are the best practices for securing REST APIs?",
  count: 5,
});

How It Works

  1. DuckDuckGo HTML Endpoint - Uses html.duckduckgo.com which returns static HTML

  2. No CAPTCHA - Unlike Google, DuckDuckGo doesn't block automated requests

  3. Parallel Crawling - All URLs fetched simultaneously for speed

  4. Smart Extraction - Removes nav, ads, sidebars; extracts main content

Source Authority Scores

High-authority domains get better rankings:

Domain

Score

Wikipedia

10

Reuters, AP News, BBC

9

NYT, WSJ, Bloomberg

8

.gov sites

8

.edu sites

7

TechCrunch, Wired, Ars

6

Medium, Reddit

3-4

Comparison

Feature

DuckDuckGo MCP

Tavily

Google Search API

Free

βœ… Yes

❌ No

❌ No

API Key

❌ Not needed

βœ… Required

βœ… Required

Rate Limits

❌ None

βœ… Yes

βœ… Yes

CAPTCHA Issues

❌ No

❌ No

βœ… Yes

Parallel Crawl

βœ… Yes

βœ… Yes

❌ No

Result Ranking

βœ… Yes

βœ… Yes

❌ No

Limitations

  • Some sites block scrapers (403 errors) - this is normal

  • Content quality varies by source

  • Not suitable for JavaScript-heavy SPA pages

Development

# Install dependencies
npm install

# Build
npm run build

# Test
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"search","arguments":{"query":"test"}},"id":1}' | node build/index.js

Contributing

PRs welcome! Ideas:

  • Add more authority domains

  • Improve content extraction

  • Add caching layer

  • Support for images/news search

License

MIT Β© 2026

Star History

If you find this useful, please ⭐ star the repo!

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nipurn123/duckduckgo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server