Your agent seeks what search can't find. A self-hosted perception MCP server.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
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.
Self-hosted perception MCP server Β· one connection
Quick start Β· Tools Β· Configure Β· Contributing
Search gives your agent indexed pages, in one language, in text, and stops there.
OmniSeek gives it the senses to keep going: through languages, logins, comment threads, audio, and pixels, all on your machine.
What each layer gave back, verbatim:
Plain search quoted the rule and stopped. The people who had lived it held the timelines, the workaround, and the risk. OmniSeek also named the sources it held back, each with the exact call to drill it.
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
On success, it returns:
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.
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).
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.
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 |
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/omniseek)<a href="https://allmcps.com/mcp/omniseek"><img src="https://allmcps.com/api/badge/omniseek?style=directory" alt="OmniSeek on AllMCPs" /></a>