openserp

Из публичных источников

Самостоятельно размещаемый SERP API для ИИ, SEO и автоматизации. Поиск Google, Bing, Yandex, Baidu, DuckDuckGo и Ecosia с отрисовкой в браузере и извлечением содержимого страниц 🎉

Машинный перевод · Показать оригинал

Self-hosted SERP API for AI, SEO & automation. Browser-rendered Google, Bing, Yandex, Baidu, DuckDuckGo and Ecosia search with page extraction 🎉

AI-инструментКатегория: AI-инструментыOpen sourceданные проверены 15 окт. 2026 г.

Обзор

  • ai
  • api
  • baidu
  • bing
  • cli
  • duckduckgo
  • ecosia
  • google
  • llm
  • openserp

Установка

Команды только показываются, маркетплейс их не выполняет. Сверяйтесь с официальной документацией.
  • Официальный сайтИз публичных источниковиз метаданных каталога
    openserp.org/ ↗
  • Файлы официального релизаИз публичных источниковиз последнего официального релиза
    github.com/karust/openserp/releases/tag/v0.8.17 ↗
  • Сборка из исходниковИз публичных источниковиз метаданных каталога

    Сборка из исходников: проверенного рецепта сборки нет — следуйте инструкциям репозитория.

    github.com/karust/openserp ↗

Совместимость

«Неизвестно» значит, что доказательств не найдено, а не что продукт несовместим.
ПлатформаСтатусАрхитектураДоказательствоУверенность
WindowsСовместимоx86официальная сборка в релизе v0.8.17: openserp-windows-386-0.8.17.tgz0.70
Совместимоx86_64официальная сборка в релизе v0.8.17: openserp-windows-amd64-0.8.17.tgz0.70
Совместимоarm64официальная сборка в релизе v0.8.17: openserp-windows-arm64-0.8.17.tgz0.70
macOSСовместимоx86_64официальная сборка в релизе v0.8.17: openserp-darwin-amd64-0.8.17.tgz0.70
Совместимоarm64официальная сборка в релизе v0.8.17: openserp-darwin-arm64-0.8.17.tgz0.70
LinuxСовместимоx86официальная сборка в релизе v0.8.17: openserp-linux-386-0.8.17.tgz0.70
Совместимоx86_64официальная сборка в релизе v0.8.17: openserp-linux-amd64-0.8.17.tgz0.70
Совместимоarm64официальная сборка в релизе v0.8.17: openserp-linux-arm64-0.8.17.tgz0.70
Web browserНеизвестно———
Server / self-hostedНеизвестно———
Container (OCI)Неизвестно———

Релизы

проверено 29 окт. 2026 г.
v0.8.17Последний28 окт. 2026 г.Официальный источник ↗

Файлы версии 0.8.17

Маркетплейс не хранит эти файлы: загрузка идёт из официального источника. Мы их не сканировали.
ФайлПлатформаРазмерSHA-256Скачать из официального источника
openserp-darwin-amd64-0.8.17.tgzmacos · x86_64 · tarball10,9 MB59229ffd02a8…Официальный источник ↗
openserp-darwin-arm64-0.8.17.tgzmacos · arm64 · tarball10,3 MB4388f89a7076…Официальный источник ↗
openserp-linux-386-0.8.17.tgzlinux · x86 · tarball9,9 MB2e36b3a64e77…Официальный источник ↗
openserp-linux-amd64-0.8.17.tgzlinux · x86_64 · tarball10,6 MBed4ba8696d60…Официальный источник ↗
openserp-linux-arm64-0.8.17.tgzlinux · arm64 · tarball9,8 MBb523d5e6ab57…Официальный источник ↗
openserp-windows-386-0.8.17.tgzwindows · x86 · tarball9,5 MBbf3ca67866da…Официальный источник ↗
openserp-windows-amd64-0.8.17.tgzwindows · x86_64 · tarball9,8 MB5c03543863c0…Официальный источник ↗
openserp-windows-arm64-0.8.17.tgzwindows · arm64 · tarball8,9 MBe0ff71aab6a2…Официальный источник ↗

История релизов

Профиль качества

алгоритм quality-v1.0 · оценено 15 окт. 2026 г.
Оценка качества94
Оценка риска0
Уверенность 1.00
Оценка качества и оценка риска — разные показатели. Высокое качество не гарантирует безопасность.

Составляющие оценки

Поддержка · 2020
last activity 17 days ago
Документация · 1515
README 17732 chars, description present
Готовность к использованию · 1515
install instructions: yes; releases: yes
Метаданные · 1010
4/4 of description, homepage, license, topics
Релизы · 1010
10 release(s), latest 85 days ago
Точность категории · 107
classifier confidence 0.65
Популярность · 108
1477 stars (log-dampened, 10k = max)
Ясность лицензии · 55
SPDX MIT
Сообщество · 55
issues enabled, 172 forks

Лицензия

MIT
Лицензия известнапо данным хостинга репозитория

Это статус политики каталога, а не юридическое заключение.

Источники

github.com/karust/openserpОсновной★ 1 477 звёздактивность 28 сент. 2026 г.Основной репозиторий · Уверенность 1.00

Отзывы

Войдите, чтобы написать отзыв

Отзывов пока нет.

Альтернативы

LAPПохожий
Ваши агенты угадывают API. Дайте им настоящую спецификацию Agent-Native. Более 1500 готовых к использованию навыков для API. Компилируйте любую спецификацию API в компактный формат, нативный для агентов. В 10 раз меньше. OpenAPI, GraphQL, AsyncAPI, Protobuf, Postman.Apache-2.0 · AI-инструменты
instill-coreПохожий
🔮 Instill Core — это полнофункциональный инструмент AI-инфраструктуры для оркестрации данных, моделей и пайплайнов, созданный для упрощения всех этапов разработки универсальных AI-first приложенийAI-инструменты
code2promptПохожий
CLI-инструмент для преобразования кодовой базы в один промпт для LLM с деревом исходных файлов, шаблонизацией промптов и подсчётом токенов.MIT · AI-инструменты
openscienceПохожий
Открытая рабочая среда на основе ИИ для научных исследованийApache-2.0 · AI-инструменты
opensrcПохожий
Получение исходного кода npm-пакетов для предоставления AI-агентам для программирования более глубокого контекстаApache-2.0 · AI-инструменты
zeroПохожий
Агент для программирования, который подчиняется вам: ваша модель, ваша машина, ваши правила.MIT · AI-инструменты

README

Из karust/openserp · лицензия MIT · загружено 29 окт. 2026 г.

[OpenSERP]

OpenSERP

[Go Reference] [release] [Docker Pulls] [CI] [License: MIT] [Telegram]

OpenSERP is a free self-hosted web search for AI agents and SEO. REST API and CLI for Google, Bing, Yandex, Baidu, DuckDuckGo and Ecosia.

No API keys, no per-search billing. It loads search results in browser and returns structured JSON with source engines and ranks. Read the linked pages as clean Markdown, or connect an agent through MCP.

Works with Claude Code, Cursor, Codex, Claude Desktop and any MCP client, Open WebUI (built-in provider), n8n, and plain HTTP from any language.

API examples · CLI · Agent setup · API reference

[Claude Code answering a question with OpenSERP over MCP]

Quick Start

# Start the API server
docker run --rm -p 127.0.0.1:7000:7000 karust/openserp serve -a 0.0.0.0 -p 7000

# Search Google and read the top result as Markdown
curl "http://127.0.0.1:7000/google/search?text=how+do+mcp+servers+work&extract=1"
# Docker Compose
docker compose up

# Go
go install github.com/karust/openserp@latest
openserp serve

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

Prebuilt binaries for Linux, macOS and Windows are on the releases page. Images: karust/openserp.

Use with AI Agents

MCP: Claude Code, Codex, Cursor, Claude Desktop

Requires Node.js 18+ and a running OpenSERP server. Add the MCP server to your client:

claude mcp add openserp -- npx -y @openserp/mcp
codex mcp add openserp -- npx -y @openserp/mcp

Cursor (~/.cursor/mcp.json), Claude Desktop, Windsurf and other clients:

{
  "mcpServers": {
    "openserp": { "command": "npx", "args": ["-y", "@openserp/mcp"] }
  }
}

On native Windows, use cmd /c npx -y @openserp/mcp after -- in the CLI commands, or "command": "cmd", "args": ["/c", "npx", "-y", "@openserp/mcp"] in JSON.

For a remote server, add "env": { "OPENSERP_BASE_URL": "http://your-host:7000" } to the openserp JSON entry.

Tools: search, mega_search, fast_search, any_search, image_search, mega_image, extract, batch_extract, list_engines. Then just ask: "Search Google for the latest Postgres release, read the top 2 results and answer with links."

Optional for Claude Code: copy skills/openserp-search to ~/.claude/skills/ so the agent searches, reads and falls back to another engine the same way every time.

Open WebUI

OpenSERP is a built-in web search provider. In Settings > Admin > Web Search pick openserp and set the URL (http://host.docker.internal:7000 if Open WebUI runs in Docker). See the Open WebUI guide.

In your own agent

A search tool for any LLM framework is a few lines with the SDK:

from openserp import OpenSERP

def web_search(query: str) -> list[dict]:
    """Search Google and return ranked results for the model."""
    with OpenSERP(base_url="http://localhost:7000") as client:
        res = client.search(engine="google", text=query, limit=10)
        return [
            {"rank": r.rank, "title": r.title, "url": r.url, "snippet": r.snippet}
            for r in res.results if r.type == "organic"
        ]
import { OpenSERP } from "@openserp/sdk";

const client = new OpenSERP({ baseUrl: "http://localhost:7000" });
const { results } = await client.search({ engine: "google", text: "openserp", limit: 5 });
PackageInstallSource
@openserp/mcp - MCP servernpx -y @openserp/mcpopenserpapi/mcp
@openserp/sdk - JS / TSnpm install @openserp/sdkopenserpapi/sdk-js
openserp - Pythonpip install openserpopenserpapi/sdk-python
@openserp/n8n-nodes-openserpInstall via n8n community nodesopenserpapi/n8n

More in examples: agent tools, RAG context, SEO rank tracking, extraction and image search.

Response Example

GET /google/search?text=how+do+mcp+servers+work&extract=1 (trimmed):

{
  "query": { "text": "how do mcp servers work", "engines_requested": ["google"] },
  "meta": { "took_ms": 4353, "engines_failed": [], "version": "2.1" },
  "results": [
    {
      "rank": 1,
      "type": "organic",
      "engine": "google",
      "title": "What Is the Model Context Protocol (MCP) and How It Works",
      "url": "https://www.descope.com/learn/post/mcp",
      "domain": "descope.com",
      "snippet": "MCP is an open standard that lets AI applications connect to external tools, data, and services through a client-server protocol built on JSON-…",
      "position": { "absolute": 1 },
      "extracted": {
        "format": "markdown",
        "content": "The Model Context Protocol (MCP) is an open standard that defines how AI applications connect to external tools, data sources, and services. MCP clients inside AI apps send requests to MCP servers, ..."
      }
    },
    {
      "rank": 2,
      "type": "organic",
      "engine": "google",
      "title": "No Dumb Questions: What is an MCP server and why do I ...",
      "url": "https://stackoverflow.blog/2026/05/08/no-dumb-questions-mcp",
      "domain": "stackoverflow.blog"
    }
  ]
}

Results keep their source engine and rank. Ads are typed separately from organic results; extract=N attaches up to N organic pages as Markdown and records per-page failures in extracted.error. Full schema in the OpenAPI spec.

Why OpenSERP

  • Browser-backed search. Chromium loads the rendered SERP, including supported answer boxes, related searches and AI summaries. Raw HTTP mode is also available for Google, Yandex, Baidu and Ecosia.
  • Six engines, one schema. Google, Bing, Yandex, Baidu, DuckDuckGo and Ecosia return the same JSON. Engine and rank survive a multi-engine merge, so you can see who ranked what.
  • Search and read in one call. extract=N adds page Markdown under the top organic results, /extract/batch reads up to 20 URLs, and a dead link comes back as an error item instead of failing the batch.
  • Yours to run. One Go binary or Docker image, with HTTP/SOCKS5 proxies, cache, retries, rate limits and circuit breakers. No per-query fees; you cover compute and proxies.

Compared to Paid Search APIs

FeatureOpenSERPCloudTavilySerpApiExa
Google results✅✅🟨 Undisclosed✅❌
Search engines66Own retrievalManyExa index
Original engine ranks✅✅❌✅❌
Page extraction✅ Markdown, batch✅ Markdown, batch✅✅✅
Self-hosting✅❌❌❌❌
SEO monitoring, rank tracking🟨✅❌🟨❌
PR monitoring, competitor tracking🟨✅ Beta🟨🟨✅ API
AI reports and alerts🟨✅🟨🟨🟨
PricingFree + infrastructurePAYG, $0.0078/credit$30/mo, 4k basic credits$25/mo, 1k searchesPAYG, $4/1k Lite searches

✅ Available · 🟨 Partial, unconfirmed or requires integration · ❌ Unavailable

Search Endpoints

Engine names: google, yandex, baidu, bing, duckduckgo (also duck, ddg), ecosia.

Use a dedicated endpoint when the source engine matters, any for ordered fallback, or balanced to compare engines. Search supports JSON, Markdown, text and NDJSON, plus language, region, date, site and file filters.

Dedicated engine endpoints:

curl "http://127.0.0.1:7000/google/search?text=golang&limit=10"

Image search:

curl "http://127.0.0.1:7000/bing/image?text=golang+logo&limit=10"

Megasearch:

curl "http://127.0.0.1:7000/mega/search?text=golang&limit=10"

/mega/search returns the same envelope as engine endpoints plus clusters: results are deduplicated by normalized URL, and clusters keep the per-engine occurrences and ranks.

ModeBest forBehavior
balancedMost multi-engine SERP workflowsQueries engines in parallel and merges results
fastOne engine selected by latency historyUses one engine; does not fall back on failure
anyOrdered fallbackTries engines in order until one succeeds, even with zero results
# Fast mode
curl "http://127.0.0.1:7000/mega/search?text=golang&mode=fast&engines=google,bing,yandex"

# Any mode
curl "http://127.0.0.1:7000/mega/search?text=golang&mode=any&engines=google,yandex,bing"

# Balanced mode with aggregation controls
curl "http://127.0.0.1:7000/mega/search?text=golang&mode=balanced&dedupe=true&merge=true"

# Advanced filtering
curl "http://127.0.0.1:7000/mega/search?text=golang&engines=google,bing&limit=20&date=20250101..20251231&lang=EN&region=US"

# Image megasearch
curl "http://127.0.0.1:7000/mega/image?text=golang+logo&limit=20"

List engines:

curl "http://127.0.0.1:7000/mega/engines"

URL extraction:

# Extract one URL as JSON
curl "http://127.0.0.1:7000/extract?url=https://example.com&mode=auto"

# Return clean page markdown
curl "http://127.0.0.1:7000/extract?url=https://example.com&format=markdown"

# Extract several URLs at once - returns a bare [{page_content, metadata}] array
# (Open WebUI external loader compatible); failed URLs become items with metadata.error
curl -X POST "http://127.0.0.1:7000/extract/batch" \
  -H "Content-Type: application/json" \
  -d '{"urls":["https://example.com","https://go.dev"],"mode":"fast"}'

# Embed extracted content under the top organic results
curl "http://127.0.0.1:7000/google/search?text=llm+observability&extract=2&format=markdown"

CLI Search

No server required - query an engine straight from the terminal. The CLI shares the same engines, formats, and filters as the API.

openserp search ecosia "weather in london" --format markdown

[OpenSERP CLI demo]

# Search results for "weather in london"

**Query:** weather in london - **Engines:** ecosia - **Took:** 866ms

## Results

### 1. London - BBC Weather

**bbc.com › weather › 2643743** - organic

Latest forecast for London ... Tonight will continue dry, and there will be mainly clear skies. Just a few patches of cloud drifting in from the north at times.

-> https://www.bbc.com/weather/2643743

### 2. London (Greater London) weather - Met Office

**weather.metoffice.gov.uk › forecast › gcpvj0v07** - organic

Remaining warm with light winds and dry. Possibly cloudy at times Monday and Tuesday, then Wednesday sunnier conditions are likely.

-> https://weather.metoffice.gov.uk/forecast/gcpvj0v07

More CLI examples:

# JSON is the default format
openserp search google "golang generics" --limit 20

# Plain text, German results
openserp search yandex "wetter berlin" --format text --lang DE --region DE

# Restrict to a site and stream NdJSON
openserp search bing "release notes" --site github.com --format ndjson

# Embed clean page content from the top 2 organic results
openserp search google "llm observability" --extract 2 --format markdown

# Browserless (raw HTTP) mode through a proxy
# (raw mode: google, yandex, baidu, ecosia)
openserp search ecosia "weather in london" --raw --proxy http://user:pass@127.0.0.1:8080

Run openserp search --help for the full flag list. Results go to stdout, logs to stderr. Set verbosity with --log_level error|warn|info|debug|trace or OPENSERP_APP_LOG_LEVEL (CLI default: warn). serve also writes ./logs.txt unless app.save_log: false.

Query Parameters

ParameterDescriptionExample
textSearch querygolang programming
langLanguage codeEN, DE, RU, ES
regionMarket/location hint. Countries/locales work across engines; Google also accepts city names via uule; Yandex accepts numeric lr.DE, en-GB, Berlin, 213
dateDate range20250101..20251231
fileFile extensionpdf, doc, xls
siteSite-specific searchgithub.com
limitNumber of organic results, max 100. When omitted or <=10, only the first SERP page is parsed.25, 50
startPagination offset0, 10, 20
formatOutput formatjson, markdown, text, ndjson
extractFetch and embed target-page content for organic results. Ads and answer rows are skipped. 0/false off, true/1 top organic result, N up to N (1-5). extract_mode/min_runes imply extract=true unless extract=01, 3, true
extract_modeExtraction strategy: raw HTTP first, raw only, or browser-renderedauto, fast, rendered
ParameterSupported enginesNotes
filtergoogleDuplicate filter: true hides similar results, false includes them.
featuresbrowser SearchPopulate serp_features[] from the live page. Defaults to true.
resolve_urlsgoogleTurn Google /goto redirect links into destination URLs (one redirect hop, ads skipped). true (default), false, or top N.

Bing localizes by exit IP. lang sets its interface language; region sends a country hint except for US, CN and RU, which caused unrelated results in testing. For those locations, use a proxy in the target country.

Proxy Support

OpenSERP supports HTTP and SOCKS5 proxies.

./openserp serve --proxy socks5://127.0.0.1:1080
./openserp search bing "query" --proxy http://user:pass@127.0.0.1:8080

Engines can return CAPTCHAs, rate limits or unrelated results. Browser mode does not eliminate these; try another engine or a proxy when needed.

Advanced proxy configuration is available in config.yaml. You can enable tagged proxy pools and per-request override via X-Use-Proxy: <tag> or X-Use-Proxy: direct.

API Docs

Once the server is running, the interactive docs are available locally:

  • Swagger UI: http://127.0.0.1:7000/docs - full schemas, error shapes, and the /health, /ready, /stats/* endpoints
  • OpenAPI YAML: http://127.0.0.1:7000/openapi.yaml

To browse the spec without running the server, see docs/openapi.yaml. For how OpenSERP works internally, see the architecture docs.

Contributing

Contributions are welcome. See docs/CONTRIBUTING.md.

License

MIT. See LICENSE.

Feedback & Updates

  • GitHub Issues - bugs, feature ideas, and reproducible issues.
  • feedback@openserp.org - private notes, longer feedback, or anything that does not fit GitHub Issues.
  • Telegram - OpenSERP news, release notes, and project updates.

OpenSERP is free and open-source. Only links listed in this repository and on openserp.org are associated with the project.

Открыть репозиторий ↗