MCP Server (SSE) for searching via DuckDuckGo and Google Scholar
Project description
Scholar Search MCP Server (SSE)
A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo and Google Scholar, with additional features for content fetching and parsing, running over HTTP (SSE).
Features
- Web Search: Search DuckDuckGo and Google Scholar with advanced rate limiting and result formatting
- Content Fetching: Retrieve and parse webpage content with intelligent text extraction
- Rate Limiting: Built-in protection against rate limits for both search and content fetching
- Error Handling: Comprehensive error handling and logging
- LLM-Friendly Output: Results formatted specifically for large language model consumption
Usage
Installation
You can install the server using pip:
pip install scholar-mcp-server-sse
Startup
You can start the server using the following command:
scholar-mcp-server-sse --host <your-host> --port <your-port>
--host: The host to bind the server to. Defaults to0.0.0.0.--port: The port to run the server on. Defaults to8000.
For example:
duckduckgo-mcp-server-sse --host 127.0.0.1 --port 8080
Settings in CLINE
Add the following configuration, adjusting the host and port to match your server setup:
{
"mcpServers": {
"scholar-search-sse": {
"disabled": false,
"timeout": 60,
"type": "sse",
"url": "http://127.0.0.1:8000/sse",
"headers": {
"Accept": "application/json, text/event-stream"
}
}
}
}
Available Tools
1. Search Tool
async def search(query: str, max_results: int = 10) -> str
Performs a web search on DuckDuckGo and returns formatted results.
Parameters:
query: Search query stringmax_results: Maximum number of results to return (default: 10)
Returns: Formatted string containing search results with titles, URLs, and snippets.
2. Content Fetching Tool
async def fetch_content(url: str) -> str
Fetches and parses content from a webpage.
Parameters:
url: The webpage URL to fetch content from
Returns: Cleaned and formatted text content from the webpage.
3. Scholar Search Tool
async def scholar_search(query: str, max_results: int = 10, year_low: int = None, year_high: int = None, sort_by: str = 'relevance', start_index: int = 0) -> str
Performs a search on Google Scholar and returns formatted results.
Parameters:
query: Search query stringmax_results: Maximum number of results to return (default: 10)year_low: Minimum year of publication (optional)year_high: Maximum year of publication (optional)sort_by: Sort by 'relevance' or 'date' (default: 'relevance')start_index: Starting index of the result list (default: 0)
Returns: Formatted string containing search results with titles, authors, publication details, and summaries.
Features in Detail
Rate Limiting
- Search: Limited to 30 requests per minute
- Content Fetching: Limited to 20 requests per minute
- Automatic queue management and wait times
Result Processing
- Removes ads and irrelevant content
- Cleans up DuckDuckGo redirect URLs
- Formats results for optimal LLM consumption
- Truncates long content appropriately
Error Handling
- Comprehensive error catching and reporting
- Detailed logging through MCP context
- Graceful degradation on rate limits or timeouts
Contributing
Issues and pull requests are welcome! Some areas for potential improvement:
- Additional search parameters (region, language, etc.)
- Enhanced content parsing options
- Caching layer for frequently accessed content
- Additional rate limiting strategies
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scholar_mcp_server_sse-0.1.tar.gz.
File metadata
- Download URL: scholar_mcp_server_sse-0.1.tar.gz
- Upload date:
- Size: 25.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5787fa17d1a4f3a4a37016aca7d9bb30acae865fa581cc58cf52640b1fd260b8
|
|
| MD5 |
553ea8bc55af605a8f3dedd5018536df
|
|
| BLAKE2b-256 |
e5621ed8c490878b9ebad706afaca3249358beb928bc233c85408a5cd36edce5
|
File details
Details for the file scholar_mcp_server_sse-0.1-py3-none-any.whl.
File metadata
- Download URL: scholar_mcp_server_sse-0.1-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f68958a24b1f6d52b3cbac106ef2aa93e41268e7ed3765b1f295e7d85d4a1d40
|
|
| MD5 |
af6cb4c12553ff7d4144ab867bfc870e
|
|
| BLAKE2b-256 |
ba626b9a61a84169dada401f5711eac38f07f981e7d92e185af22349efc316d0
|