Skip to main content

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 to 0.0.0.0.
  • --port: The port to run the server on. Defaults to 8000.

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 string
  • max_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 string
  • max_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

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scholar_mcp_server_sse-0.1.tar.gz (25.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scholar_mcp_server_sse-0.1-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

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

Hashes for scholar_mcp_server_sse-0.1.tar.gz
Algorithm Hash digest
SHA256 5787fa17d1a4f3a4a37016aca7d9bb30acae865fa581cc58cf52640b1fd260b8
MD5 553ea8bc55af605a8f3dedd5018536df
BLAKE2b-256 e5621ed8c490878b9ebad706afaca3249358beb928bc233c85408a5cd36edce5

See more details on using hashes here.

File details

Details for the file scholar_mcp_server_sse-0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for scholar_mcp_server_sse-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f68958a24b1f6d52b3cbac106ef2aa93e41268e7ed3765b1f295e7d85d4a1d40
MD5 af6cb4c12553ff7d4144ab867bfc870e
BLAKE2b-256 ba626b9a61a84169dada401f5711eac38f07f981e7d92e185af22349efc316d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page