The Search1API MCP Server provides a suite of tools for web interaction and reasoning via the Model Context Protocol:
Search Tool: Perform web searches with customizable parameters (query, max results) using various services like Google and Bing
Crawl Tool: Extract full content from specific URLs
Sitemap Tool: Retrieve all related links from a URL
News Tool: Search for news articles with optional parameters
Reasoning Tool: Leverage DeepSeek R1 model for deep thinking and complex problem-solving
Trending: Access trending topics from platforms like GitHub and Hacker News
Integration: Works with various MCP clients, including LibreChat
Provides configuration file location support for Claude Desktop on macOS
Search1API MCP Server
A Model Context Protocol (MCP) server that provides search and crawl functionality using Search1API.
Prerequisites
Node.js >= 18.0.0
A valid Search1API API key (See Setup Guide below on how to obtain and configure)
Installation (Standalone / General)
Clone the repository:
git clone https://github.com/fatwang2/search1api-mcp.git cd search1api-mcpConfigure API Key: Before building, you need to provide your Search1API key. See the Setup Guide section below for different methods (e.g., using a
.env
file or environment variables).Install dependencies and build:
npm install npm run buildNote: If using the project's
Usage (Standalone / General)
Ensure your API key is configured (see Setup Guide).
Start the server:
The server will then be ready to accept connections from MCP clients.
Setup Guide
1. Get Search1API Key
Register at Search1API
Get your API key from your dashboard.
2. Configure API Key
You need to make your API key available to the server. Choose one of the following methods:
Method A: Project
This method is required if integrating with the current version of LibreChat (see specific section below).
In the
search1api-mcp
project root directory, create a file named.env
:# In the search1api-mcp directory echo "SEARCH1API_KEY=your_api_key_here" > .envReplace
your_api_key_here
with your actual key.Make sure this file exists before running
npm install && npm run build
.
Method B: Environment Variable (Standalone Only)
Set the SEARCH1API_KEY
environment variable before starting the server.
Method C: MCP Client Configuration (Advanced)
Some MCP clients allow specifying environment variables directly in their configuration. This is useful for clients like Cursor, VS Code extensions, etc.
Note for LibreChat Users: Due to current limitations in LibreChat, Method A (Project .env
File) is the required method. See the dedicated integration section below for full instructions.
Integration with LibreChat (Docker)
This section details the required steps for integrating with LibreChat via Docker.
Overview:
Clone this server's repository into a location accessible by your LibreChat
docker-compose.yml
.Configure the required API key using the Project within this server's directory.
Build this server.
Tell LibreChat how to run this server by editing
librechat.yaml
.Make sure the built server code is available inside the LibreChat container via a Docker volume bind.
Restart LibreChat.
Step-by-Step:
Clone the Repository: Navigate to the directory on your host machine where you manage external services for LibreChat (this is often alongside your
docker-compose.yml
). A common location is a dedicatedmcp-server
directory.# Example: Navigate to where docker-compose.yml lives, then into mcp-server cd /path/to/your/librechat/setup/mcp-server git clone https://github.com/fatwang2/search1api-mcp.gitNavigate into the Server Directory:
cd search1api-mcpConfigure API Key (Project
# Create the .env file echo "SEARCH1API_KEY=your_api_key_here" > .env # IMPORTANT: Replace 'your_api_key_here' with your actual Search1API keyInstall Dependencies and Build: This step compiles the server code into the
build
directory.npm install npm run buildConfigure Edit your main
librechat.yaml
file to tell LibreChat how to execute this MCP server. Add an entry undermcp_servers
:# In your main librechat.yaml mcp_servers: # You can add other MCP servers here too search1api: # Optional: Display name for the server in LibreChat UI # name: Search1API Tools # Command tells LibreChat to use 'node' command: node # Args specify the script for 'node' to run *inside the container* args: - /app/mcp-server/search1api-mcp/build/index.jsThe
args
path (/app/...
) is the location inside the LibreChat API container where the built server will be accessed (thanks to the volume bind in the next step).
Configure Docker Volume Bind: Edit your
docker-compose.yml
(or more likely, yourdocker-compose.override.yml
) to map thesearch1api-mcp
directory from your host machine into the LibreChat API container. Find thevolumes:
section for theapi:
service:# In your docker-compose.yml or docker-compose.override.yml services: api: # ... other service config ... volumes: # ... other volumes likely exist here ... # Add this volume bind: - ./mcp-server/search1api-mcp:/app/mcp-server/search1api-mcpHost Path ( This is the path on your host machine relative to where your
docker-compose.yml
file is located. Adjust it if you cloned the repo elsewhere.Container Path ( This is the path inside the container. It must match the directory structure used in the
librechat.yaml
args
path.
Restart LibreChat: Apply the changes by rebuilding (if you modified
docker-compose.yml
) and restarting your LibreChat stack.docker compose down && docker compose up -d --build # Or: docker compose restart api (if only librechat.yaml changed)
Now, the Search1API server should be available as a tool provider within LibreChat.
Features
Web search functionality
News search functionality
Web page content extraction
Website sitemap extraction
Deep thinking and complex problem solving with DeepSeek R1
Seamless integration with Claude Desktop, Cursor, Windsurf, Cline and other MCP clients
Tools
1. Search Tool
Name:
search
Description: Search the web using Search1API
Parameters:
query
(required): Search query in natural language. Be specific and concise for better resultsmax_results
(optional, default: 10): Number of results to returnsearch_service
(optional, default: "google"): Search service to use (google, bing, duckduckgo, yahoo, x, reddit, github, youtube, arxiv, wechat, bilibili, imdb, wikipedia)crawl_results
(optional, default: 0): Number of results to crawl for full webpage contentinclude_sites
(optional): List of sites to include in searchexclude_sites
(optional): List of sites to exclude from searchtime_range
(optional): Time range for search results ("day", "month", "year")
2. News Tool
Name:
news
Description: Search for news articles using Search1API
Parameters:
query
(required): Search query in natural language. Be specific and concise for better resultsmax_results
(optional, default: 10): Number of results to returnsearch_service
(optional, default: "bing"): Search service to use (google, bing, duckduckgo, yahoo, hackernews)crawl_results
(optional, default: 0): Number of results to crawl for full webpage contentinclude_sites
(optional): List of sites to include in searchexclude_sites
(optional): List of sites to exclude from searchtime_range
(optional): Time range for search results ("day", "month", "year")
3. Crawl Tool
Name:
crawl
Description: Extract content from a URL using Search1API
Parameters:
url
(required): URL to crawl
4. Sitemap Tool
Name:
sitemap
Description: Get all related links from a URL
Parameters:
url
(required): URL to get sitemap
5. Reasoning Tool
Name:
reasoning
Description: A tool for deep thinking and complex problem solving with fast deepseek r1 model and web search ability(You can change to any other model in search1api website but the speed is not guaranteed)
Parameters:
content
(required): The question or problem that needs deep thinking
6. Trending Tool
Name:
trending
Description: Get trending topics from popular platforms
Parameters:
search_service
(required): Specify the platform to get trending topics from (github, hackernews)max_results
(optional, default: 10): Maximum number of trending items to return
Version History
v0.2.0: Added fallback
.env
support for LibreChat integration and updated dependencies.v0.1.8: Added X(Twitter) and Reddit search services
v0.1.7: Added Trending tool for GitHub and Hacker News
v0.1.6: Added Wikipedia search service
v0.1.5: Added new search parameters (include_sites, exclude_sites, time_range) and new search services (arxiv, wechat, bilibili, imdb)
v0.1.4: Added reasoning tool with deepseek r1 and updated the Cursor and Windsurf configuration guide
v0.1.3: Added news search functionality
v0.1.2: Added sitemap functionality
v0.1.1: Added web crawling functionality
v0.1.0: Initial release with search functionality
License
This project is licensed under the MIT License - see the LICENSE file for details.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A Model Context Protocol (MCP) server that provides search and crawl functionality using Search1API.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.Last updated -506MIT License
- AsecurityFlicenseAqualityBuilt as a Model Context Protocol (MCP) server that provides advanced web search, content extraction, web crawling, and scraping capabilities using the Firecrawl API.Last updated -1
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server for querying the CVE-Search API. This server provides comprehensive access to CVE-Search, browse vendor and product、get CVE per CVE-ID、get the last updated CVEs.Last updated -656MIT License
- -securityAlicense-qualityA Model Context Protocol (MCP) server that scrapes, indexes, and searches documentation for third-party software libraries and packages, supporting versioning and hybrid search.Last updated -542659MIT License