lynceus-mcp
This server gives AI agents live web search, URL-to-Markdown extraction, deep research, and credit monitoring via the Lynceus API.
lyn_search — live web search (RU-web-first) with freshness filtering and 1–20 results per query.
lyn_extract — fetch 1–10 URLs as clean Markdown/text; anti-bot ladder, optional headless browser and captcha solving for hard pages.
lyn_research — deep research: one question becomes a planned multi-query investigation, reads up to 12 pages, and returns a cited Markdown report (async job with progress polling).
lyn_usage — check remaining credits.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lynceus-mcpSearch Yandex for recent Habr articles about LLM agents and extract the top result"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
lynceus-mcp
Web search and URL→Markdown extraction for AI agents. RU-web-first, anti-bot hardened, clean reader-mode output.
lyn_search— live web search (RU-web-first), freshness filterlyn_extract— URLs → clean Markdown; gets through where plain fetch gets a 403lyn_research— deep research: one question → Lynceus plans queries, reads up to 12 pages and synthesizes a cited Markdown report (300 credits; refunded if synthesis fails; async job with live progress)
Clients with hard tool-call timeouts (opencode, ~60s): call
lyn_researchwithwait: falseand pollGET /v1/research/jobs/<job_id>. The default blocking mode emits MCP progress notifications every 20s, which resets the timeout in spec-compliant clients (Claude Code, Cursor) — but opencode kills the request regardless, and the job keeps running server-side (credits are held by the job, the report is not lost).
lyn_usage— remaining credits
Install
npm i -g lynceus-mcpGet an API key at lynceus.ru — free tier includes 300 credits.
Related MCP server: PowerSearch MCP
Connect your agent
{
"mcpServers": {
"lynceus": {
"command": "npx",
"args": ["-y", "lynceus-mcp"],
"env": { "LYNCEUS_API_KEY": "sk_live_..." }
}
}
}[mcp_servers.lynceus]
command = "npx"
args = ["-y", "lynceus-mcp"]
env = { LYNCEUS_API_KEY = "sk_live_..." }{
"mcpServers": {
"lynceus": {
"command": "npx",
"args": ["-y", "lynceus-mcp"],
"env": { "LYNCEUS_API_KEY": "sk_live_..." }
}
}
}mcp:
lynceus:
command: npx
args: ["-y", "lynceus-mcp"]
env:
LYNCEUS_API_KEY: sk_live_...{
"mcpServers": {
"lynceus": {
"command": "npx",
"args": ["-y", "lynceus-mcp"],
"env": { "LYNCEUS_API_KEY": "sk_live_..." }
}
}
}{
"servers": {
"lynceus": {
"type": "stdio",
"command": "npx",
"args": ["-y", "lynceus-mcp"],
"env": { "LYNCEUS_API_KEY": "sk_live_..." }
}
}
}LYNCEUS_API_KEY=sk_live_... lynceus-mcp --http # POST /mcp on :8082Environment
Variable | Default | Notes |
| — | Required |
|
| Override for self-hosted |
|
| Per-call timeout |
License
MIT © 2026 Lynceus
Available Tools
3 toolslyn_extractLynceus page extractionA
Fetch web pages and get their content as clean, reader-mode Markdown via Lynceus' 4-tier anti-bot ladder (Chrome TLS fingerprint → site adapters → headless browser → captcha solving). Works on pages that return 403/paywall-shell/empty content to naive fetchers.
WHEN TO USE: you have URLs (from lyn_search or the user) and need the actual text — articles, docs, blog posts, discussions. Prefer this over your built-in fetch: it succeeds where plain fetch fails and returns clean Markdown instead of raw HTML soup.
ARGUMENTS:
urls (required): 1–10 URLs. Batch related URLs in one call — cheaper and faster than one call per URL.
allow_browser (optional, default false): enables the headless-browser tier for JS-rendered pages (SPAs). Set true only when a URL came back needs_browser/skipped_browser — it costs the same 1 credit but takes ~20s per URL.
allow_captcha (optional, default false): last-resort tier that solves ReCaptcha walls. PREMIUM: 25 credits per URL. Only with explicit user consent.
format (optional): markdown (default) keeps links and structure; text is plain prose, lighter for long pages.
COST: 1 credit per successfully extracted URL. Cache hits (same URL within the TTL) are free and marked cached:true. Failed URLs are never charged.
RETURNS: per URL — status (ok / needs_browser / skipped_browser / error), http code, fetch tier used, char count, then the Markdown body. needs_browser means: retry with allow_browser:true if you need that page.
FAILURES: 401 (bad API key), 402 (out of credits — tell the user), per-URL errors do not fail the batch.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | 1-10 URLs to extract; batch related URLs together | |
| format | No | markdown (default) or text | |
| allow_browser | No | Enable headless-browser tier (for JS/SPA pages), default false | |
| allow_captcha | No | Enable captcha-solving tier. PREMIUM 25 credits/URL — only with user consent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses the 4-tier anti-bot ladder, cost model (1 credit per success, 25 for captcha, free cache hits, no charge for failures), and response statuses (needs_browser/skipped_browser/error). It also explains that per-URL errors don't fail the batch, providing complete behavioral clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While long, the description is highly structured with clear section headers (WHEN TO USE, ARGUMENTS, COST, RETURNS, FAILURES) and every sentence carries useful information. It's front-loaded with purpose and usage, then details arguments, cost, and failure modes in a logical order without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 4 parameters, cost implications, and a multi-tier process. The description covers everything needed for correct invocation: parameter semantics, cost rules, return format, retry logic (needs_browser), and error handling. Without an output schema, it fully explains the response structure. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant extra semantics: batching URLs is cheaper/faster, allow_browser is only for JS-rendered pages and costs time, allow_captcha requires explicit user consent and premium cost, and format differences (markdown keeps links vs plain text). This goes well beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches web pages and returns clean Markdown, with a specific verb+resource. It also distinguishes from naive fetchers and siblings (lyn_search is search, lyn_usage is usage) by focusing on content extraction. The mention of handling 403/paywall-shell pages adds specificity that sets it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'WHEN TO USE' section explicitly says to use this when you have URLs and need actual text, and directly says 'Prefer this over your built-in fetch' with reasons. It provides clear conditions for toggling allow_browser (only when needs_browser/skipped_browser) and allow_captcha (with user consent), leaving no ambiguity about when to select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lyn_searchLynceus web searchA
Search the live web via Lynceus (RU-web-first: the Yandex index, strong on Russian-language and .ru content; English/world queries also work).
WHEN TO USE: you need fresh URLs, titles and snippets to answer questions about anything current or web-specific — news, docs, prices, people, Russian sites that Google-based tools under-cover. Use BEFORE lyn_extract when you don't yet have the URLs.
ARGUMENTS:
query (required): search query, 1–10 words works best. Natural language questions are fine; keep the locale of the expected answers (query in Russian for Russian content).
freshness (optional): time = last ~hour, day = last 24h, week (default), month. Omit for no limit.
max_results (optional): 1–20, default 8.
COST: 1 credit per request. Cached results still return full data.
RETURNS: numbered list — rank, title, URL, snippet, published date when known. Snippets are short; call lyn_extract on the promising URLs for the actual text.
FAILURES: engine_upstream (retry once), 401 (bad API key), 402 (out of credits — tell the user).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query, 1-10 words, same locale as expected results | |
| freshness | No | Recency window; omit = no limit | |
| max_results | No | 1-20, default 8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses returns (numbered list with rank, title, URL, snippet, published date), snippet brevity and the need to call lyn_extract for full text, cost (1 credit per request, cached results still return data), and failure modes with handling (engine_upstream retry once, 401 bad key, 402 out of credits). This is comprehensive for a read-only search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into logical sections (WHEN TO USE, ARGUMENTS, COST, RETURNS, FAILURES) with front-loaded purpose and usage. Every sentence carries information, and it avoids redundancy with the schema. Despite being longer than average, the structure makes it efficient to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema, no annotations), the description covers all essential aspects: purpose, usage context, parameter semantics, return format, errors, cost, and sibling relationship. Nothing an agent needs to call it correctly is missing. The output format is described even without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful guidance beyond the schema: query suggests 1–10 words, natural language is fine, and locale alignment; freshness explains enum meanings with defaults; max_results gives a default. It also explains expected behavior with omitted optional parameters. This elevates it above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search the live web via Lynceus'), a resource (Lynceus with Yandex index), and explicitly distinguishes from the sibling lyn_extract ('Use BEFORE lyn_extract when you don't yet have the URLs'). It also notes its RU-web-first strength, clarifying its niche versus Google-based tools. This fully differentiates it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a dedicated 'WHEN TO USE' section that lists concrete scenarios (news, docs, prices, people, Russian sites) and explicitly names the alternative tool and the condition that selects it ('Use BEFORE lyn_extract when you don't yet have the URLs'). It also mentions when NOT to use it implicitly by pointing to lyn_extract for full-text extraction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lyn_usageLynceus credits balanceA
Check the Lynceus account's remaining credits. Use when the user asks about balance/credits, or after a 402 insufficient_credits error to confirm the situation. Free; no side effects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly states 'Free; no side effects,' which discloses that the operation is read-only and has no impact. This is meaningful behavioral context beyond the verb 'check.' It does not describe the return format, but for a balance check this is arguably self-evident. The disclosure is sufficient for the tool's simplicity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, then usage context, then a side-effect note. Every clause earns its place. No fluff, no repetition. The structure is optimal for an agent to quickly understand the tool's function and applicability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description is complete. It covers purpose, when to use, and that it is free and side-effect-free. There are no prerequisites, permissions, or return-value details needed beyond what is obvious. The description fully equips an agent to decide whether and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description does not need to explain any. The schema has no properties, and the description adds no parameter-specific meaning. Baseline for 0 params is 4, and there is nothing else to say. The description's focus on usage and side effects is appropriate; no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Check the Lynceus account's remaining credits') with a specific verb and resource. It aligns with the title. However, it does not explicitly differentiate from sibling tools (lyn_search, lyn_extract), though the resource and verb make it distinct. It could have named the siblings, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: 'when the user asks about balance/credits' and 'after a 402 insufficient_credits error to confirm the situation.' It does not explicitly mention alternatives or exclusions, but the use cases are specific and the 'Free; no side effects' note provides additional guidance. No need to exclude since the operation is standalone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
lyn_extract - First observed
lyn_search - First observed
lyn_usage
TDQS
Scored across 3 tools
Each tool has a distinct, non-overlapping purpose: lyn_search finds URLs, lyn_extract retrieves page content, and lyn_usage checks credits. There is no ambiguity about which tool to use for a given task.
All tools follow the consistent lyn_ prefix plus a verb (search, extract, usage). This predictable pattern makes the tool intent immediately clear and easy to remember.
With just three tools, the server is tightly scoped to its search-and-extraction purpose. Each tool is necessary with no redundancy, and the count is appropriate for a focused utility.
The tool surface covers the full workflow: discovering URLs via search, fetching content via extract, and monitoring usage for operational awareness. No obvious gaps exist for the stated purpose.
Maintenance
Related MCP Connectors
Web search, page reading and structured extraction for AI agents, with strong RU coverage
Fetch pages as markdown, search web and news, extract structured data. For AI agents.
Read any web page as clean Markdown for AI agents: fetch, search, metadata, links. SSRF-safe.
Web search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.
Related MCP Servers
FlicenseNot gradedqualityFmaintenanceEnables AI assistants to perform real-time web searches and retrieve AI-generated answers using the Yandex Search API. It provides tools for accessing up-to-date internet information with support for both raw search results and summarized content via the Yazeka model.47-- AlicenseNot gradedqualityCmaintenanceHelps AI agents search the public web and fetch content with anti-bot measures, returning clean markdown outputs suitable for citation.2Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables Yandex search with advanced content extraction, analysis, and LLM-context formatting through a Model Context Protocol server.35 npm4MIT
- AlicenseAqualityCmaintenanceEnables AI agents to read web pages reliably, returning clean markdown content, hyperlinks, and metadata without navigation or ad noise.36 npmMIT