Perplexity Research
STDIOA Model Completion Protocol service for internet research using Perplexity AI.
A Model Completion Protocol service for internet research using Perplexity AI.
A Model Completion Protocol (MCP) service for internet research using Perplexity AI.
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.
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 |
.env
file)go build ./ResearchMCP
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
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" } ] }
main.go
: Application entry pointconfig.go
: Configuration handlinglogger.go
: Logging infrastructureperplexity.go
: Perplexity API integrationstructs.go
: Data structurescontext.go
: Context handlingRun formatting and linting with the provided scripts:
./run_format.sh ./run_lint.sh
This project is licensed under the MIT License - see the LICENSE file for details.