Yandex search MCP on .NET with AOT compilation
Yandex Search MCP Server (.NET)
A .NET 10 Yandex search MCP server with native AOT compilation, page-to-Markdown conversion and regex search
Low risk
We rate an entry low when it mostly gives the agent instructions and reference material.
Why this level
- Only performs searches and fetches public pages; there are no write calls
- Logs queries and the first characters of responses to a file on disk
Install
Manual install
git clone <repo-url>
cd yandex-search-mcp-dotnet
dotnet publish -c ReleaseBuilds the native AOT binary; point your MCP client config at the resulting path.
This is third-party code. Review the repository files before installing.
What it does
The server wraps the Yandex Search API v2 and offers three tools: web_search for querying with a Russian or English region choice, fetch for downloading any web page and converting it to Markdown with settings for links, images, timeout and a character range, and fetch_with_regex, which additionally searches the resulting Markdown with a regular expression. The server compiles to a native AOT binary with no .NET runtime needed, supports stdio and HTTP transport, strips Yandex's <hlword> highlight tags from XML markup, and can route through a proxy when the target page is unreachable directly.
Who it is for. For .NET developers who want a lightweight native Yandex search binary with no runtime install on the target machine.
Good fit when
- You want one AOT binary for search and page-to-Markdown fetching without Node.js or Python
- You need to regex-search directly inside a fetched page's content
- You need both stdio and HTTP versions of the same server depending on the client
Not a fit when
- You cannot build or run the .NET 10 SDK or the binary
- You need region support beyond Russian and English
Example request
Find the article about the new law, fetch it and pull out every paragraph mentioning the tax rateLimitations
The web_search tool only accepts the ru or en region. Requires a Yandex Cloud account with Search API access; the key and folder ID are passed as command-line arguments, not only as environment variables. All tool calls are logged to a file next to the executable.
How to disable. Remove the yandex-search block from your MCP client config and stop the server process if it runs in HTTP mode.
MCP
- Transport
- stdio, http
- Authentication
- API key
| Environment variables | |
|---|---|
| YANDEX_CLOUD_API_KEY required, secret | Yandex Cloud Search API key |
| YANDEX_CLOUD_FOLDER_ID required | Yandex Cloud folder ID |
Security check
- Only performs searches and fetches public pages; there are no write calls
- Logs queries and the first characters of responses to a file on disk
README in short
The README lists capabilities: search, fetch to Markdown, two-region support, AOT build, stdio and HTTP transport, and XML markup cleanup, gives a quick start with environment variables and CLI arguments, an argument table, MCP client configs for stdio and HTTP, detailed descriptions of the three tools with parameters, and the log format.
FAQ
Do I need the .NET runtime on the target machine?
No, an AOT publish produces a native binary and the runtime is not required.
Can I search in languages other than Russian?
Yes, the web_search tool takes a search_region parameter with ru or en values.
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