A model choosing between four named tools makes better decisions than a model filling in a `content_type` field it half-understands — the academic and financial variants already know what to filter for. The local cache is the other good idea: a long research session can refer back to search three by its id instead of running it again.
A Go MCP server over Perplexity AI. Rather than one search tool with a pile of optional filters, it splits the surface by use case, so each call arrives with sensible defaults for what you are doing. All four return source URLs, and when a results folder is configured every search is written to disk and can be recalled later by a short id.
- `perplexity_search` — general web search with real-time information, taking `query`, `model`, domain include and exclude lists, a recency filter, a date range and a `location`
- `perplexity_academic_search` — filtered to academic sources such as arxiv and pubmed, with a `subject_area` parameter and a comprehensive model by default
- `perplexity_financial_search` — tuned for market data and filings, taking a `ticker`, a `company_name` and a `report_type` such as 10-K or 10-Q
- `perplexity_filtered_search` — the full filter set: content type, file type, language, country, date range, citations and images, plus a `custom_filters` object
- `list_previous` — every past query with its id, search type and timestamp, sorted most recent first
- `get_previous_result` — the complete markdown of an earlier search by its 10-character id
- Six functions in total, four search and two cache management
A Perplexity API key, supplied as `PERPLEXITY_API_KEY`. Go 1.23 or later; build from a clone with `./run.sh build` and point the client at the compiled binary. `PERPLEXITY_DEFAULT_MODEL` chooses between the fast model and the comprehensive one, and caching is off until you set `PERPLEXITY_RESULTS_ROOT_FOLDER` — each result is then stored as `result.md` alongside a `metadata.yaml`. Timeout, token limit, temperature and sampling parameters are all environment variables. Note that each search creates a new cached entry, even for an identical query.
Build from source — clone the repository and build it, then point your client at the binary
