mcpField
R
ResearchMCP

ResearchMCP

Local
github.com/chew-zSearch1Updated 84w ago

About ResearchMCP

ResearchMCP is a Go service for internet research using Perplexity AI. It is for MCP clients that need current, in-depth responses through a single research tool, with configurable request handling and structured logs.

Key features

  1. 01Internet research with Perplexity AI
  2. 02Single research query tool
  3. 03Configurable model and request timeout
  4. 04Retry and backoff settings
  5. 05Structured logging

Use cases

  1. 01Research current topics
  2. 02Gather in-depth information on a question

MCP support

Exposes a research tool through MCP, allowing clients to submit queries to Perplexity AI and receive research responses.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

ResearchMCP

A Model Completion Protocol (MCP) service for internet research using Perplexity AI.

Overview

ResearchMCP is a service that provides internet research capabilities through the MCP protocol. It exposes a "research" tool that allows querying Perplexity AI's API for in-depth, up-to-date information on a wide range of topics.

Features

  • Internet research through Perplexity AI
  • Integration with MCP protocol for tool discovery and invocation
  • Graceful error handling with degraded mode
  • Configurable through environment variables
  • Structured logging

Requirements

  • Go 1.18 or later
  • Perplexity AI API key

Configuration

The service is configured through environment variables:

VariableDescriptionRequiredDefault
PERPLEXITY_API_KEYAPI key for Perplexity AIYes-
PERPLEXITY_MODELModel to use for researchNosonar-medium-online
PERPLEXITY_TIMEOUTTimeout in seconds for API requestsNo90
PERPLEXITY_MAX_RETRIESMaximum number of retry attemptsNo2
PERPLEXITY_INITIAL_BACKOFFInitial backoff time in secondsNo1
PERPLEXITY_MAX_BACKOFFMaximum backoff time in secondsNo10

Usage

  1. Set up the required environment variables (you can use a .env file)
  2. Build and run the service:
go build
./ResearchMCP
Example .env file
PERPLEXITY_API_KEY=your_api_key_here
PERPLEXITY_MODEL=sonar-medium-online
PERPLEXITY_TIMEOUT=120
PERPLEXITY_MAX_RETRIES=3
PERPLEXITY_INITIAL_BACKOFF=2
PERPLEXITY_MAX_BACKOFF=15

API

Research Tool

Name: research

Input Schema:

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The research query or question"
    }
  },
  "required": ["query"]
}

Example Request:

{
  "name": "research",
  "arguments": {
    "query": "What is the current state of quantum computing?"
  }
}

Example Response:

{
  "content": [
    {
      "type": "text",
      "text": "Comprehensive research report on quantum computing...\n\nSources:\n- https://example.com/source1\n- https://example.com/source2"
    }
  ]
}

Development

Project Structure
  • main.go: Application entry point
  • config.go: Configuration handling
  • logger.go: Logging infrastructure
  • perplexity.go: Perplexity API integration
  • structs.go: Data structures
  • context.go: Context handling
Code Style

Run formatting and linting with the provided scripts:

./run_format.sh
./run_lint.sh

License

This project is licensed under the MIT License - see the LICENSE file for details.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.