Yandex Search API v2 MCP server over HTTP
Yandex Search API MCP server, StreamableHTTP build
A fork of Yandex's official server adding HTTP transport and the full range of search types: web, generative, image
Low risk
We rate an entry low when it mostly gives the agent instructions and reference material.
Why this level
- All tools only read public search results via a paid API
Install
Manual install
docker run --rm -p 8766:8766 -e SEARCH_API_KEY=... [-e FOLDER_ID=...] ghcr.io/msklv/yandex-search-mcp-server:latestA ready image from GitHub Container Registry, endpoint at http://<host>:8766/mcp.
This is third-party code. Review the repository files before installing.
What it does
The server is forked from the official yandex/yandex-search-mcp-server, which only supports stdio and always includes the YandexGPT endpoint. It adds a run_http.py file that re-exports the same FastMCP instance over StreamableHTTP at /mcp, so the container behaves like an ordinary HTTP-MCP service alongside other such services. Beyond the inherited web_search, it adds the rest of the Search API v2 endpoints: web_search_async with deferred operation polling, gen_search with an AI answer and sources, image_search and image_search_by_image. Russian region and localization are the defaults.
Who it is for. For those assembling a stack of several HTTP-MCP servers in Docker Compose who want to add official Yandex search over HTTP, not just stdio.
Good fit when
- You need Search API v2 over HTTP in a shared Docker stack with other MCP servers
- You want every search type at once: web, async web, generative, image-by-text and image-by-image
- A ready image from GitHub Container Registry works for you
Not a fit when
- You only need stdio like the original: then it is simpler to use Yandex's official server directly
- You are not ready to pay for the Yandex Search API: the service is commercial and needs a paid key
Example request
Find images of a specific coffee machine model and give a short AI answer with sources about their reliabilityLimitations
This is an unofficial fork, not a Yandex product or endorsement, although some files (server.py, detail.py) are inherited from the original under Apache-2.0 with YANDEX LLC copyright. The Yandex Search API is paid; a key and usually a Yandex Cloud folder ID are required. gen_search needs the FOLDER_ID variable.
How to disable. Stop the container or server process and remove it from your MCP client configuration.
MCP
- Transport
- http
- Authentication
- API key
| Environment variables | |
|---|---|
| SEARCH_API_KEY required, secret | Yandex Search API key, sent as Authorization: Api-Key |
| FOLDER_ID | Yandex Cloud folder id, required for gen_search |
Security check
- All tools only read public search results via a paid API
README in short
The README is upfront that this is a fork of Yandex's official server and lists two changes: HTTP transport via run_http.py and support for all Search API v2 search types instead of just web_search. It gives a tool table with sync and deferred modes, environment variables, local and Docker run commands, and a web_search call example with region parameters.
FAQ
Can it be used like the original stdio server?
Yes, python3 server.py keeps upstream behavior; run_http.py adds a separate HTTP mode.
Is FOLDER_ID required?
It is mandatory for gen_search; for the other tools it is optional and not always needed with service-account keys.
Related
CLI, skill and Python library for browser control: the agent clicks, fills forms and reads pages over CDP
A skill that gathers the last 30 days of discussion on a topic from Reddit, X, YouTube, HN, Polymarket and GitHub into one brief
The Chrome DevTools team's official MCP server: the agent drives a live Chrome, reads network and console, and records performance traces
A fast Rust CLI for agent browser automation: accessibility snapshots with element refs, an MCP server and skills