Skip to main content
Glama
thierrysays

perplexity-mcp-server

by thierrysays

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPort to listen on when TRANSPORT is 'http'.3000
TRANSPORTNoTransport mode. Use 'stdio' for local process-based MCP usage, or 'http' for remote streamable HTTP deployment.stdio
PERPLEXITY_API_KEYYesYour Perplexity API key. Required to authenticate requests to the Sonar API.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
perplexity_company_newsA

Get a structured, cited news brief on one company: governance, executives, strategic events, financial situation, and senior HR moves.

This is a workflow tool built on top of Perplexity's Sonar chat/completions API: it fixes the prompt structure and section headings so every call returns a comparable, five-section brief, and maps a plain lookback_days number to Perplexity's recency buckets (there is no native "3 months" filter, so lookback_days=90 is mapped to the nearest bucket, 'month').

Args:

  • organization (string): Company name, e.g. "Doctolib".

  • lookback_days (number, 1-365, default 90): how far back to search ("90" = "last 3 months").

  • language ('fr'|'en'): default 'fr'.

  • response_format ('markdown'|'json'): default 'markdown'.

Returns: Markdown: five headed sections (Gouvernance/Governance, Dirigeants/Executives, Événements stratégiques/Strategic events, Situation financière/Financial situation, Mouvements RH/Senior HR moves), each stating "Rien à signaler"/"Nothing to report" if empty, followed by numbered Sources. JSON: { "answer": string (same structured text), "citations": string[], "search_results": [...], "organization": string, "lookback_days": number }

Examples:

  • Use when: "Quelle est l'actualité récente de Nexans ?" -> organization="Nexans"

  • Use when: weekly veille loop over a list of target companies -> call once per company

  • Don't use when: you need sector-wide signals across many companies -> use perplexity_market_signals instead.

Error Handling:

  • Returns "Error: ... Invalid Perplexity API key" if PERPLEXITY_API_KEY is missing/invalid (401).

  • Returns "Error: ... rate limit exceeded" if too many requests (429).

perplexity_market_signalsA

Find recent, dated market signals (M&A, funding rounds, executive appointments, restructurings, etc.) relevant to a given professional profile and region, as a structured list.

Unlike a free-text Sonar query, this tool constrains Perplexity's response to a JSON schema server-side, so the result is a real array of discrete signals — not markdown you have to re-parse. It returns an empty list rather than fabricated signals when nothing dated and reliable is found; that empty list is itself a meaningful, actionable result (it means the sweep ran and found nothing this period), not a failure.

Args:

  • profile (string): Target professional profile, e.g. "CTO groupe / VP Technology / Chief Transformation Officer / Group CIO".

  • regions (string[], default ["France","Europe","Luxembourg"]): geographic scope.

  • lookback_days (number, 1-30, default 7): how far back to search.

  • signal_types (string[], default M&A/levée de fonds/nomination/restructuration): categories.

  • language ('fr'|'en'): default 'fr'.

  • response_format ('markdown'|'json'): default 'markdown'.

Returns: Markdown: one numbered section per signal (title, type, date, source, summary), or an explicit "no signal found" statement if the array is empty. JSON: { "signals": [{title,type,date,source_url,summary}], "count": number, "lookback_days": number, "regions": string[] }

Examples:

  • Use when: weekly sector-wide sweep independent of any specific tracked company

  • Don't use when: you already know the company and want its own news -> use perplexity_company_news instead.

Error Handling:

  • Returns "Error: ... Invalid Perplexity API key" if PERPLEXITY_API_KEY is missing/invalid (401).

  • Returns "Error: ... rate limit exceeded" if too many requests (429).

  • If Perplexity returns non-JSON content despite the schema constraint, returns "Error: could not parse signals JSON" with the raw answer included so nothing is silently lost.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.8/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have cleanly separated domains: one compiles a structured news brief for a single named company, while the other scans for market-wide signals across profiles and regions. Their descriptions explicitly cross-reference when not to use each, removing ambiguity.

Naming Consistency5/5

Both tool names follow the same `perplexity_<object>` snake_case pattern and clearly indicate their target: `company_news` vs `market_signals`. No mixed conventions or vague verbs.

Tool Count3/5

At two tools, the surface is on the thin side and borders on feeling minimal for a server named after Perplexity. Each tool does earn its place and covers a distinct workflow, but the count is at the low end of acceptable.

Completeness4/5

The pair covers the two main read-oriented intelligence workflows: focused company monitoring and broader market sweeps. A general free-text search or ask tool is missing, but the server's stated purpose appears to be these richer structured workflows, so the gap is minor.

Maintenance

ActivityMaintained
ResponsivenessNo issues