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
- 01Internet research with Perplexity AI
- 02Single research query tool
- 03Configurable model and request timeout
- 04Retry and backoff settings
- 05Structured logging
Use cases
- 01Research current topics
- 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.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEResearchMCP
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:
| Variable | Description | Required | Default |
|---|---|---|---|
| PERPLEXITY_API_KEY | API key for Perplexity AI | Yes | - |
| PERPLEXITY_MODEL | Model to use for research | No | sonar-medium-online |
| PERPLEXITY_TIMEOUT | Timeout in seconds for API requests | No | 90 |
| PERPLEXITY_MAX_RETRIES | Maximum number of retry attempts | No | 2 |
| PERPLEXITY_INITIAL_BACKOFF | Initial backoff time in seconds | No | 1 |
| PERPLEXITY_MAX_BACKOFF | Maximum backoff time in seconds | No | 10 |
Usage
- Set up the required environment variables (you can use a
.envfile) - 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 pointconfig.go: Configuration handlinglogger.go: Logging infrastructureperplexity.go: Perplexity API integrationstructs.go: Data structurescontext.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
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.