Duyệt miễn phí mỗi ngày. Lên Pro để cài đặt và dùng Airsc MCP không giới hạn.

Xem gói Pro
MCP serverAn toànTự động trình duyệt & dữ liệu webCần cài đặt chút Đã chạy thử thật

openserp

karust · karust/openserp

Một MCP server tự lưu trữ để tìm kiếm web trên Google, Bing và nhiều công cụ khác, cung cấp kết quả dạng Markdown sạch cho agent.

Self-hosted web search for AI agents and SEO. Google, Bing, Yandex, Baidu, DuckDuckGo & Ecosia, rendered in a real browser: ranked results and clean page Markdown. API, CLI, MCP 🎉

1.5k sao180Giấy phép: MITCập nhật Hôm nay0 lượt mở

Xem kết quả thực tế

Giao diện dòng lệnh hiển thị kết quả tìm kiếm trực tiếp

Ảnh từ README của tác giảGiao diện dòng lệnh hiển thị kết quả tìm kiếm trực tiếp

Ảnh từ README của tác giả karust ·Nguồn

Bạn có thể làm gì với nó

  • Cấp cho AI agent khả năng tìm kiếm web thời gian thực mà không cần trả phí cho các API tìm kiếm.
  • Trích xuất nội dung Markdown sạch từ kết quả tìm kiếm để agent phân tích.
  • Thực hiện 'megasearch' trên nhiều công cụ tìm kiếm cùng lúc để tìm thông tin chuyên sâu.

Đã chạy thử thật · 10 tool

Chúng tôi đã khởi động MCP server này trong máy ảo cách ly, và nó cung cấp các tool sau:

  • search

    Search web results with a specific OpenSERP engine.

  • mega_search

    Search across multiple engines with balanced, any, or fast execution.

  • fast_search

    Return the first successful web result set, prioritizing healthy, low-latency engines.

  • any_search

    Start engines in your order and return the first successful web result set. On Cloud, slow attempts can overlap.

  • image_search

    Search image results with a specific OpenSERP engine.

  • mega_image

    Search images across multiple engines.

  • get_usage

    Return OpenSERP Cloud account and credit information.

  • list_engines

    List OSS engines or Cloud capabilities and operational status.

  • extract

    Extract LLM-ready content from a URL.

  • batch_extract

    Extract LLM-ready content from up to 20 URLs in one request. Prefer this over repeated extract calls when grounding an answer in several pages: it is one round-trip, and a URL that fails returns an it

npx -y @openserp/mcp · 26/10/2026

Kiểm tra an toàn

An toàn

Không thấy dấu hiệu rủi ro trong các file đã quét.

Quét tự động các file trong repo. Luôn xem lại code trước khi chạy.

Trích từ README

OpenSERP

OpenSERP is a free, open-source SERP API and CLI for Google, Yandex, Baidu, Bing, DuckDuckGo, and Ecosia.

No API keys, no per-search billing: one command gives you live, structured search results on localhost - including engines the paid APIs don't cover. Use it as a search tool for LLMs and agents, or as a backend for SEO rank tracking. If you'd rather not run infrastructure, there is a hosted version with the same API.

Features

  • Dedicated endpoints for six engines, same JSON schema across all of them
  • Megasearch - one query across several engines at once, merged and deduped
  • URL extraction - search results plus clean markdown of the target pages in one call
  • SERP features: AI summaries, answer boxes, people-also-ask, related searches
  • Image search, filters (language, date range, file type, site), JSON/Markdown/Text/NdJSON output
  • Proxies, cache, resilient mode, prebuilt Docker images

Quick Start

Docker

Prebuilt images are published to docker hub: karust/openserp.

# Run the API server via prebuilt image
docker run --rm -p 127.0.0.1:7000:7000 karust/openserp:latest serve -a 0.0.0.0 -p 7000

# Or
docker compose up

Go install

go install github.com/karust/openserp@latest
openserp search duckduckgo "open source serp api" --format markdown

From Source

git clone https://github.com/karust/openserp.git
cd openserp
go build -o openserp .
./openserp serve

First request

# mode=any returns the first engine that responds
curl "http://127.0.0.1:7000/mega/search?engines=bing,google&text=golang+vs+rust&extract=1&mode=any"

Example JSON response

{
  "query": {
    "text": "golang vs rust",
    "engines_requested": ["bing", "google"]
  },
  "meta": {
    "request_id": "019ecdc0-a66d-79a4-9d2b-9e9b480d495e",
    "requested_at": "2026-06-16T00:06:55Z",
    "took_ms": 720,
    "engines_responded": ["bing"],
    "engines_failed": [],
    "version": "2.1"
  },
  "results": [
    {
      "id": "s_5a8273f16b19ab64",
      "rank": 1,
      "type": "organic",
      "title": "The Go Programming Language",
      "url": "https://go.dev/",
      "display_url": "go.dev",
      "snippet": "Get Started Playground Tour Stack Overflow Help Packages Standard Library …",
      "domain": "go.dev",
      "favicon": "https://go.dev/favicon.ico",
      "position": {
        "absolute": 1
      },
      "engine": "bing",
      "domain_info": {
        "tld": "dev",
        "sld": "go",
        "category": ""
      },
      "extracted": {
        "title": "Build simple, secure, scalable systems with Go",
        "format": "markdown",
        "content": "## Build simple, secure, scalable systems with Go\n\n\n\n- “At the time, no single team member knew Go, but **within a month, everyone was writing in Go** and we were building out the endpoints. ........",
        "mode_used": "fast",
        "fetched_at": "2026-06-16T00:06:56Z"
      }
    },
    {
      "id": "s_1a364ebcb3035539",
      "rank": 2,
      "type": "organic",
      "title": "Go (programming language) - Wikipedia",
      "url": "https://en.wikipedia.org/wiki/Go_(programming_language)",
      "display_url": "en.wikipedia.org › wiki › Go_(programming_language)",
      "snippet": "In Go's package system, each package has a path (e.g., \"compress/bzip2\" or \"golang.org/x/net/html\") and a name (e.g., bzip2 or html). …",
      "domain": "en.wikipedia.org",
      "favicon": "https://en.wikipedia.org/favicon.ico",
      "position": {
        "absolute": 2
      },
      "engine": "bing",
      "domain_info": {
        "tld": "org",
        "sld": "wikipedia",
        "category": ""
      },
      "classification": {
        "content_type": "article",
        "source_hint": "encyclopedia"
      }
    },
    ...
  ],
  "serp_features": [],
  "pagination": {
    "page": 1,
    "has_more": false,
    "next_start": 10
  },
  "clusters": [
    {
      "id": "c_f20b23a020101dce",
      "canonical_url": "https://go.dev/",
      "domain": "go.dev",
      "title": "The Go Programming Language",
      "occurrences": [
        {
          "engine": "bing",
          "rank": 1,
          "result_id": "s_5a8273f16b19ab64"
        }
      ],
      "engines_count": 1,
      "best_rank": 1,
      "score": 0.5
    },
    ...
  ]
}

SDKs & Examples

Official client packages. Each works against your self-hosted server (set baseUrl) or the hosted API (set apiKey):

TypePackageSourceInstall
JavaScript / TypeScript SDK@openserp/sdkopenserpapi/sdk-jsnpm install @openserp/sdk
Python SDKopenserpopenserpapi/sdk-pythonpip install openserp
MCP server (AI agents)@openserp/mcpopenserpapi/mcpnpx @openserp/mcp
n8n community node@openserp/n8n-nodes-openserpopenserpapi/n8nInstall via n8n community nodes

See examples for smal

Xem mã nguồn trên GitHub