A Model Context Protocol (MCP) server that exposes the Synthetic web search API as a tool for use with Claude and other MCP-compatible applications.
Synthetic Web Search MCP Server
A Model Context Protocol (MCP) server that exposes the Synthetic web search API as a tool for use with Claude and other MCP-compatible applications.
Overview
This server provides a search_web tool that allows MCP clients to perform web searches using the Synthetic API. Search results are returned as formatted JSON containing URL, title, text, and published date fields.
Quick Start with Claude Code
Add the MCP server to Claude Code with a single command:
claude mcp add synthetic-web-search -e SYNTHETIC_API_KEY=your_api_key_here -- npx -y synthetic-web-search-mcp@latest
Replace your_api_key_here with your actual Synthetic API key.
Usage with Claude Desktop
To use this MCP server with Claude Desktop, add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"synthetic-web-search": {
"command": "npx",
"args": ["-y", "synthetic-web-search-mcp@latest"],
"env": {
"SYNTHETIC_API_KEY": "your_actual_api_key_here"
}
}
}
}
After adding the configuration, restart Claude Desktop. You can then use the web search tool in your conversations.
Usage with opencode
To use this MCP server with opencode, add the following to your opencode configuration:
{
"mcp": {
"synthetic-web-search": {
"type": "local",
"command": ["npx", "-y", "synthetic-web-search-mcp@latest"],
"environment": {
"SYNTHETIC_API_KEY": "your_actual_api_key_here"
},
"enabled": true
}
}
}
Replace your_actual_api_key_here with your actual Synthetic API key. Restart opencode after adding the configuration.
Testing with MCP Inspector
To test the server without Claude Desktop, use the MCP inspector:
npx @modelcontextprotocol/inspector synthetic-web-search-mcp@latest
This will open a web interface where you can:
- List available tools
- Test the
search_webtool with different queries - View returned results in real-time
Available Tools
search_web
Search the web using the Synthetic API.
Arguments:
query(string, required): The search query string
Example:
Search for " TypeScript documentation"
Returns: A JSON array of search results, each containing:
url: The link to the search resulttitle: The title of the pagetext: A snippet or content from the pagepublished: Publication date (if available)
API Details
- Endpoint:
https://api.synthetic.new/v2/search - Method: POST
- Authentication: Bearer token via
Authorizationheader - Request Body: JSON with
queryfield
Project Structure
synthetic-web-search-mcp/
├── package.json
├── tsconfig.json
├── .env.example
├── README.md
├── src/
│ └── index.ts
└── dist/ (generated after build)
├── index.js
└── index.d.ts