omniseek

omniseek

Your agent seeks what search can't find. A self-hosted perception MCP server that transcribes speech, reads behind logins, sees images and video frames, crosses languages, and remembers.

Category
访问服务器

README

<!-- mcp-name: io.github.Battam1111/omniseek -->

<div align="center">

<picture> <source media="(prefers-color-scheme: light)" srcset="assets/logo-icon.png"> <img src="assets/logo-hero-dark.png" width="320" alt="OmniSeek"> </picture>

OmniSeek

Your agent seeks what search can't find.

The answer is sitting in minute 47 of a podcast, three replies deep in a comment thread, behind a login, in another language. Your agent gets it anyway.

<sub>Self-hosted perception MCP server · one connection</sub>

CI  License  Python  Built for MCP  Self-hosted

Quick start · Tools · Configure · Contributing

Languages: English · 中文 · 日本語

</div>


Search gives your agent indexed pages, in one language, in text, and stops there.

OmniSeek keeps seeking: through languages, logins, comment threads, audio, and pixels, all on your machine.

<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="assets/demo-en-dark.png"> <img src="assets/demo-en-light.png" alt="One real investigation: an English question about a changed rule. Search quotes the rule and stops; OmniSeek keeps seeking and comes back with a Chinese explainer transcribed, login-walled first-person timelines, the workaround buried in a comment thread, and the dissenting video note, each line attributed."> </picture> </div>

It hears (local bilingual ASR, no cloud), sees (images and video frames, in-band), crosses languages (a Chinese query finds English results and vice versa), reads behind login walls (your credentials, your machine, off by default), and remembers (persistent retrieval memory plus a typed, source-traced evidence graph).

Crossing languages draws on the index OmniSeek builds as you use it, so a fresh install starts at a floor. The published claim-verification tests run on exactly that fresh install, which makes their cross-lingual number the coldest case rather than the typical one.

Every source in the catalog, the curated roster of everything OmniSeek can reach, earned its place by beating plain search at one of five jobs (structure, unwalling, transcription, recall, monitoring): citation graphs, regulatory filings, login-walled forums, Chinese-language video. And the catalog is built to grow: a curator pipeline probes, judges, and admits new sources, and retires the ones that decay.

Worked examples, real outputs · A full case study · Every claim above is a test (latest results) · Source health, updated weekly


Quick start

Docker (recommended)

git clone https://github.com/Battam1111/omniseek.git && cd omniseek
docker compose up -d
docker compose logs omniseek        # bearer token printed on first start
curl -s http://127.0.0.1:8765/healthz

Point your MCP client at http://127.0.0.1:8765/mcp with Authorization: Bearer <token>. The token is generated on first start and stored in ~/.omniseek/credentials/omniseek_http.json (with the compose file, that's ./.omniseek/credentials/omniseek_http.json on the host).

Two paths from here. The prebuilt core image (docker pull ghcr.io/battam1111/omniseek, amd64 + arm64) needs no build and carries every core sense; it is Apache-clean and ships without PDF reading, hearing (ASR + video frames), and login-walled sources. Wanting those extras is what triggers a local build: set EXTRAS="[pdf,asr,walled]" and run docker compose build, then up -d (the first build also fetches headless Chromium; later starts are instant). Optional but recommended: set OMNISEEK_CONTACT_EMAIL for a faster lane with Crossref, SEC, and Unpaywall.

Without Docker

python -m venv .venv && . .venv/bin/activate
scripts/bootstrap.sh
python -m omniseek.serve_http

The bare install is the Core tier: every keyless API and static source, document reading minus PDF, and the lexical memory index. pip install "omniseek[pdf,asr,recall,ocr]" wakes the Research tier (PDF, hearing, cross-lingual vectors, OCR); omniseek[walled] adds the login-walled tier, which stays off until you bring your own accounts; omniseek[all] takes everything. The server prints which senses are online, and which are dormant, at every boot.

On Windows, run bootstrap.sh under Git Bash or WSL; Docker is the simplest path. For an always-on Linux service, see deploy/omniseek.service.

Prefer stdio? The install also ships an omniseek command that speaks MCP over stdio, for clients that launch servers themselves; Dockerfile.stdio wraps the same thing in a container.

OmniSeek binds 127.0.0.1 and requires the bearer token on every request. Do not expose without a reverse proxy (SECURITY.md).


Tools

One MCP connection; no model, no agent loop inside. Your model thinks, your harness drives the loop, OmniSeek reaches. Start with omniseek_search; explore what's available with omniseek_sources.

Tool What it does
omniseek_search Fan out across the whole catalog, deduplicate, rank. Cross-lingual (semantic + lexical).
omniseek_read Normalize any URL or document (web page, PDF, arXiv) into clean text.
omniseek_view Read images, document figures, video frames with vision.
omniseek_transcribe Transcribe audio/video locally. Bilingual ASR, sliceable by timestamp.
omniseek_field_skeleton Map a research field's citation neighborhood: foundational core vs. frontier.
omniseek_resolve_identity Resolve a person's name to candidate author IDs across databases.
omniseek_coauthors Map a researcher's collaboration network by joint-paper count.
omniseek_institution_cohort List who actively publishes at a lab, scoped to a field.
omniseek_paper_enrich Open-access PDF, retraction/integrity status, citation count for a paper.
omniseek_paper_recommend Semantically similar papers (SPECTER embeddings) that keyword search misses.
omniseek_graph Query the accumulated evidence graph: find, neighborhood, between, since, similar.
omniseek_sensor Standing queries with novelty detection. Only tells you what is new.
omniseek_ruling Record identity judgments (same/not-same) the graph applies at read time.
omniseek_statement Record directed relations the graph carries forward.
omniseek_curator_act Source lifecycle: submit, probe, judge, admit, retire.
omniseek_curator_view Read the source-admission queue or a per-source audit dossier.
omniseek_gather Run multiple tools in parallel, one response.
omniseek_sources List and route: domains, regions, capabilities, health.

The login-walled tier has no tool of its own: once you opt in per source, the same omniseek_search(..., sources=["xiaohongshu"], raw=True) runs through your own logged-in browser. See walled sources.

Full reference in tools.md · FAQ

Using Claude Code? skills/omniseek-investigate ships the investigation methodology (sweep, zoom, structure) as a ready-made skill.


Configure

OmniSeek is catalog-first: with no config, every benign source is on and login-walled sources are off. Tune in one file, ~/.omniseek/profile.json (example):

Tier Default
free (public, no key) on
keyed (a free or paid API key you supply) on once the key is set
walled (a login you hold) off; you bring your own browser
circumvention off; none in the default pack

Full reference: configuration · walled sources · legal posture


Why self-hosted

There is no OmniSeek cloud. No telemetry, no accounts, no relay: a query leaves your machine only as direct requests to the sources you enabled, and OmniSeek adds no other party to that path. Walled-source credentials stay in your own browser, presented only to the site they belong to; OmniSeek never stores, uploads, or even sees your passwords. The retrieval memory and evidence graph it accumulates over months are local files you own: stop running OmniSeek and you keep everything. Not a feature toggle. The architecture.


Contributing

See CONTRIBUTING.md. The bar for a new source: it must beat plain web search via a mode (structure / unwall / transcribe / recall / monitor). The bar for fixing a decayed source: low, please do. python tests/smoke.py before you push.

By participating you agree to the Code of Conduct.

<div align="center">


Your agent seeks what search can't find.

Apache-2.0 · NOTICE · Security · Cite

</div>

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选