@Baanish/Synthetic Search
БесплатноНе проверенA minimal MCP server that exposes web search via Synthetic's API, providing a single search tool for local MCP clients.
Описание
A minimal MCP server that exposes web search via Synthetic's API, providing a single search tool for local MCP clients.
README
A minimal Model Context Protocol server that exposes Synthetic web search over stdio.
It provides two MCP tools:
search: run a web search against Synthetic and return a small set of results withurl,title,published, and a truncated page-text snippet.search_quota: check the remaining hourly search quota (limit, requests, remaining, and reset time) so an agent can stay within budget.
The server is designed for local MCP clients such as Claude Code, Codex CLI, Cursor, and VS Code.
Features
- Two focused tools:
searchandsearch_quota - Fresh web results from Synthetic's
/v2/searchAPI - Quota visibility via Synthetic's
/v2/quotas(search is capped per hour) - Clear
429rate-limit errors, includingRetry-Afterwhen provided - Truncates extracted page text to about 2000 characters per result
- Repairs malformed control characters when
JSON.parsefails, instead of giving up - Bounded requests: a 30s timeout and a 10 MB response cap prevent hangs
- Drops results whose URL is not
http(s): - Reads credentials from
SYNTHETIC_API_KEY - Runs over stdio for local MCP integrations
Requirements
- Node.js 20+
- A Synthetic API key in
SYNTHETIC_API_KEY
Installation
Use npx:
npx -y @baanish/synthetic-search-mcp
Or install globally:
npm install -g @baanish/synthetic-search-mcp
synthetic-search-mcp
MCP Client Setup
The server command is:
{
"command": "npx",
"args": ["-y", "@baanish/synthetic-search-mcp"],
"env": {
"SYNTHETIC_API_KEY": "your_api_key_here"
}
}
Claude Code
Add a project-level .mcp.json file:
{
"mcpServers": {
"synthetic-search": {
"command": "npx",
"args": ["-y", "@baanish/synthetic-search-mcp"],
"env": {
"SYNTHETIC_API_KEY": "your_api_key_here"
}
}
}
}
Codex CLI
Add this to ~/.codex/config.toml:
[mcp_servers.synthetic-search]
command = "npx"
args = ["-y", "@baanish/synthetic-search-mcp"]
env = { SYNTHETIC_API_KEY = "your_api_key_here" }
Cursor
Add this to .cursor/mcp.json in your project or the equivalent Cursor MCP settings file:
{
"mcpServers": {
"synthetic-search": {
"command": "npx",
"args": ["-y", "@baanish/synthetic-search-mcp"],
"env": {
"SYNTHETIC_API_KEY": "your_api_key_here"
}
}
}
}
VS Code / GitHub Copilot
Add this to .vscode/mcp.json:
{
"servers": {
"synthetic-search": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@baanish/synthetic-search-mcp"],
"env": {
"SYNTHETIC_API_KEY": "your_api_key_here"
}
}
}
}
Tool
search
Search the public web through Synthetic.
Input:
{
"query": "latest model context protocol news"
}
Output:
[
{
"url": "https://example.com/article",
"title": "Example result",
"text": "Truncated extracted page text...",
"published": "2026-03-12T10:15:00.000Z"
}
]
Notes:
- Synthetic only supports a single
queryparameter. - Result text is truncated to keep MCP context manageable.
publishedmay benullwhen the source does not provide a date.
search_quota
Report the remaining Synthetic search quota. Takes no input.
Output:
{
"hourly": {
"limit": 250,
"requests": 32,
"remaining": 218,
"renewsAt": "2026-06-26T21:00:00.000Z"
},
"subscription": {
"limit": 750,
"requests": 10,
"remaining": 740,
"renewsAt": "2026-07-01T00:00:00.000Z"
}
}
Notes:
- Search is rate-limited per hour;
hourlyreflects the current window. remainingis derived aslimit - requests(clamped at 0).- A window is
nullif Synthetic does not report it. - Checking the quota does not count against your search limit.
Development
npm install
npm run build
Run locally:
SYNTHETIC_API_KEY=your_api_key_here npm run dev
Testing
npm run typecheck # tsc --noEmit over src + tests
npm test # vitest: unit, integration, and fuzz tests
The suite includes an opt-in live smoke test that calls the real Synthetic API.
It runs only when SYNTHETIC_API_KEY is available (copy .env.example to .env
and add your key) and is skipped automatically otherwise — including in CI.
Security
Credential redaction
Upstream API error bodies are redacted of the active API key and bearer-token-like
material before they are returned over stdio. This prevents a hostile or
misconfigured upstream from reflecting the SYNTHETIC_API_KEY back through MCP
tool output.
Transitive dependency advisories
@modelcontextprotocol/sdk is a production runtime dependency. It pulls in HTTP
middleware packages (hono, @hono/node-server, express → path-to-regexp,
ajv → fast-uri, qs) that carry published CVEs. These advisories are
production-transitive, but this server uses stdio only and never invokes
the affected web-middleware code paths (serveStatic, cookies, JSX SSR, JWT
verify, toSSG, cache, ipRestriction, query parsing, and similar). They are
therefore unreachable here regardless of the installed version — and this
unreachability, not a version pin, is what protects consumers of the published
CLI.
We keep the SDK on its latest release (the one lever that actually propagates to
consumers) and apply npm overrides to pin patched transitive versions. Note
that npm only honors overrides from the root project's package.json:
they pin this repository's tree — so npm ci, CI, and the packed smoke test
run on patched versions and npm audit stays clean — but npm ignores them
when this package is installed as a dependency or global CLI. We deliberately
do not ship an npm-shrinkwrap.json to force the tree onto consumers: it would
freeze every transitive dependency at publish time (and could pin consumers to a
future vulnerable version), a worse trade than relying on the unreachability
above.
Remaining local advisory after overrides:
- esbuild (dev-only, via
tsx): affects the esbuild development server on Windows only; not used at runtime and not published in the npm tarball.
License
MIT
Установка @Baanish/Synthetic Search
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/baanish/synthetic-search-mcpFAQ
@Baanish/Synthetic Search MCP бесплатный?
Да, @Baanish/Synthetic Search MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для @Baanish/Synthetic Search?
Нет, @Baanish/Synthetic Search работает без API-ключей и переменных окружения.
@Baanish/Synthetic Search — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить @Baanish/Synthetic Search в Claude Desktop, Claude Code или Cursor?
Открой @Baanish/Synthetic Search на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare @Baanish/Synthetic Search with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
