icon for mcp server

Perplexity 研究助手

STDIO

基于Perplexity AI的网络研究服务

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.

为你推荐的相关 MCP 服务器

MCP Now 重磅来袭,抢先一步体验