Skip to main content
Glama
lennney

Agent Search MCP

Agent Search MCP

๐Ÿ” Free multi-source search for AI agents โ€” multi-source verification, token savings, MCP native.

License Node.js MCP

Works with Hermes, Claude Code, Cursor, Windsurf, OpenClaw, and any MCP-compatible client.


English ยท ไธญๆ–‡ ยท ๅฎ‰่ฃ… ยท ๆ–‡ๆกฃ


Quick Start

# Option 1: npx (recommended)
npx agent-search-mcp

# Option 2: global install
npm install -g agent-search-mcp

Platform Setup

# ~/.hermes/config.yaml
mcp_servers:
  agent-search:
    command: npx
    args: ["agent-search-mcp"]
// ~/.claude/mcp.json
{
  "mcpServers": {
    "agent-search": {
      "command": "npx",
      "args": ["agent-search-mcp"]
    }
  }
}
// .cursor/mcp.json
{
  "mcpServers": {
    "agent-search": {
      "command": "npx",
      "args": ["agent-search-mcp"]
    }
  }
}
// ~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "agent-search": {
      "command": "npx",
      "args": ["agent-search-mcp"]
    }
  }
}
// openclaw.config.ts
{
  mcpServers: {
    "agent-search": {
      command: "npx",
      args: ["agent-search-mcp"]
    }
  }
}

Related MCP server: GroundRoute

Features

๐Ÿ†“ Free by Default

No API key required. Uses DuckDuckGo + Sogou search engines.

Engine

Type

API Key

Coverage

DuckDuckGo

Free

โŒ

Global

Sogou

Free

โŒ

Chinese

Brave Search

Paid (Free Tier)

Optional

Global

Tavily

Paid (Free Tier)

Optional

Global

๐ŸŽฏ Multi-Source Verification

Results are verified across multiple search engines. Each result includes a confidence score (1-3) based on how many engines returned it.

{
  "title": "Build an MCP Server",
  "url": "https://example.com/mcp",
  "snippet": "How to build MCP servers...",
  "confidence": 2  // Verified by 2 engines
}

๐Ÿ’ฐ Save Tokens

Optimized output reduces token consumption by ~40-50%:

Optimization

Savings

Top-1 snippet per URL

~25%

Title truncation (โ‰ค100 chars)

~15%

Snippet truncation (โ‰ค200 chars)

~15%

Deduplication

~10%

Confidence filtering

~10%

๐Ÿ”ง Progressive Disclosure

Three tools, discoverable by agents:

Tool

Purpose

When to Use

free_search

Basic search

Quick questions

free_search_advanced

Filtered search

Date ranges, domains, high confidence

free_extract

URL extraction

Read full page content


Tools

Basic web search with multi-source verification.

{
  "query": "TypeScript MCP server",
  "count": 5
}

free_search_advanced

Advanced search with filters.

{
  "query": "MCP server",
  "count": 10,
  "min_confidence": 2,
  "time_range": "week",
  "language": "zh",
  "include_domains": ["github.com"],
  "exclude_domains": ["reddit.com"]
}

Parameters:

  • min_confidence (1-3): Only return results verified by N+ sources

  • time_range: day, week, month, year

  • language: auto, en, zh

  • include_domains: Only search these domains

  • exclude_domains: Exclude these domains

free_extract

Extract full content from a URL as Markdown.

{
  "url": "https://example.com/article",
  "max_length": 5000
}

Resources

search://capabilities

Returns a Markdown document describing all available tools and features. Agents can discover capabilities on-demand.

search://health

Returns JSON with health status of each search provider:

[
  {
    "provider": "duckduckgo",
    "lastSuccess": 1719000000000,
    "errorCount": 0,
    "avgLatency": 450,
    "isHealthy": true
  }
]

Configuration

Environment Variables

Variable

Description

Required

BRAVE_API_KEY

Brave Search API key (2000 free/month)

No

TAVILY_API_KEY

Tavily API key (1000 free/month)

No

LOG_LEVEL

Log level (info, debug)

No

Zero config works โ€” no API keys needed for basic search.

With Paid Engines

Set environment variables to enable fallback to paid engines when free results are insufficient:

export BRAVE_API_KEY=your_key_here
export TAVILY_API_KEY=your_key_here

Architecture

Agent
  โ†“ MCP Protocol (stdio)
MCP Server
  โ”œโ”€โ”€ Tools Layer (progressive disclosure)
  โ”‚   โ”œโ”€โ”€ free_search (default)
  โ”‚   โ”œโ”€โ”€ free_search_advanced (optional)
  โ”‚   โ””โ”€โ”€ free_extract (optional)
  โ”œโ”€โ”€ Aggregation Layer
  โ”‚   โ”œโ”€โ”€ Top-1 Snippet merge
  โ”‚   โ”œโ”€โ”€ URL + Title dedup
  โ”‚   โ”œโ”€โ”€ Scoring + Confidence
  โ”‚   โ””โ”€โ”€ Output truncation
  โ”œโ”€โ”€ Fallback Chain
  โ”‚   โ”œโ”€โ”€ Phase 1: Free engines (DDG + Sogou)
  โ”‚   โ””โ”€โ”€ Phase 2: Paid engines (Brave + Tavily)
  โ””โ”€โ”€ Infrastructure
      โ”œโ”€โ”€ Cache (LRU, 60s TTL)
      โ”œโ”€โ”€ Rate Limiter (1s per provider)
      โ”œโ”€โ”€ Health Tracker
      โ””โ”€โ”€ SSRF Protection

Documentation / ๆ–‡ๆกฃ

Document

Description

PRD

Product Requirements Document

Architecture

Technical Architecture

Plan

Implementation Plan

Review Results

5-Team Review Results

Fork Plan

Fork & Modification Plan

CHANGELOG

Version History


Development

# Clone
git clone https://github.com/lennney/agent-search-mcp.git
cd agent-search-mcp

# Install
npm install

# Build
npm run build

# Test
npm test

# Run
npm start

License

Apache License 2.0

Based on open-websearch by Aas-ee.

Copyright 2025 Open-WebSearch MCP Server Contributors
Based on open-websearch by Aas-ee (Apache 2.0).
Modified by Agent Search MCP Contributors.
Copyright 2026 Agent Search MCP Contributors

Contributing

Contributions welcome! Please read CONTRIBUTING.md first.


Keywords

MCP server, Model Context Protocol, AI agent search, free web search, multi-source search, DuckDuckGo MCP, Sogou search, token optimization, Hermes MCP, Claude Code MCP, Cursor MCP, AI tool, web search for agents, search aggregation, confidence scoring

Available Tools

3 tools
free_extractA

Extract full content from a URL. Returns clean markdown.

Best for: Reading a specific page found in search results. Not recommended for: Bulk extraction โ€” use search first.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to extract
max_lengthNoMax characters to return

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It discloses the output format (clean markdown) and that it extracts full content. However, it does not mention potential behaviors like handling redirects, error responses, or rate limits. Given the simplicity, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences with front-loaded purpose and clear usage guidelines. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, but the description clarifies the return type (clean markdown). It provides enough context for a simple extraction tool, though it could mention error handling or limitations. Overall, it is complete for its scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for both parameters (url and max_length). The description does not add new parameter details beyond what the schema already provides, so it meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool extracts full content from a URL and returns clean markdown. It distinguishes itself from sibling tools like free_search and free_search_advanced by specifying it is for reading a specific page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('Best for: Reading a specific page found in search results') and when not to use it ('Not recommended for: Bulk extraction โ€” use search first'), providing clear guidance and an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

free_search_advancedA

Advanced search with filters and quality control.

Best for: Date ranges, domain filtering, high-confidence only, Chinese content. Not recommended for: Simple queries โ€” use free_search instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query
countNoNumber of results (1-20)
min_confidenceNoOnly return results verified by N+ sources
time_rangeNoFilter by recency
languageNoLanguage preferenceauto
include_domainsNoOnly search these domains
exclude_domainsNoExclude these domains

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must fully disclose behavior. While it mentions 'quality control' and parameter min_confidence implies verification, it doesn't detail aspects like result ordering, rate limits, or output structure. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence stating purpose, then bullet-like lists for best/not recommended. No wasted words, front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so description should hint at return structure, but it doesn't. The tool's function (search results) is clear, but details like result format or pagination are missing. Adequate for basic use but incomplete for complex scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters described. The description adds high-level context ('filters and quality control') but no additional meaning beyond what the schema already provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Advanced search with filters and quality control' and distinguishes from sibling 'free_search' by specifying best for date ranges, domain filtering, high-confidence, Chinese content. It also explicitly says not for simple queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use ('Best for: Date ranges, domain filtering, high-confidence only, Chinese content') and when-not-to-use ('Not recommended for: Simple queries โ€” use free_search instead'), directly referencing a sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedfree_extract
    • First observedfree_search
    • First observedfree_search_advanced

TDQS

A4.3/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinctly different purpose: basic search (free_search), advanced search with filters (free_search_advanced), and content extraction from URLs (free_extract). No overlap.

Naming Consistency4/5

All tools share the 'free_' prefix. While 'free_search' and 'free_search_advanced' follow a noun-modifier pattern, 'free_extract' uses a verb form, creating a minor inconsistency.

Tool Count5/5

Three tools cover the essential functionality of a search server (search, advanced search, and content extraction) without redundancy or excess.

Completeness4/5

Core needs are met, but advanced features like pagination, result count control, or batch operations are absent, which could be limiting for complex workflows.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A free and unlimited web search server that enables AI models to search, crawl, and research web content using DuckDuckGo without requiring API keys. It features parallel crawling and a smart ranking system to prioritize the most relevant information for complex queries.
    73
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Web search for AI agents across 6 engines (Serper, Brave, Exa, Tavily, Firecrawl, Perplexity) through one search tool. Routes each query to the cheapest engine that clears a quality bar and caches repeats. Hosted, streamable-HTTP, BYOK supported.
    1
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Free multi-source search for AI agents with multi-source verification, token savings, and MCP native support.
    7
    56
    109
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Free self-hosted web search for AI agents with multi-engine parallel search, semantic re-ranking, and native China network support. Zero API keys.
    2
    26
    MIT