Praesentire MCP Server

Bilingual (English + Traditional Chinese) financial news sentiment scored by Claude — three tools for tickers, batches, and cross-language divergence.

Documentation

praesentire-mcp

MCP server for Praesentirebilingual financial news sentiment as a Claude tool.

What Claude gets

Three tools, one API:

ToolWhat it does
get_sentimentAggregated -1 to +1 sentiment score + confidence + bull/bear distribution + latest 3 articles with rationale, for one ticker.
get_sentiment_batchSame aggregates for up to 50 tickers in one call. Each ticker bills as one request.
compare_languagesEnglish vs Traditional Chinese sentiment side-by-side + divergence score. Designed for cross-market arbitrage signals.

Sources: Reuters, Bloomberg, Yahoo Finance, CNBC (English) + 經濟日報, 工商時報, Anue 鉅亨 (繁中). Updated every 10 minutes.

Install

You need a Praesentire API key. Sign up free — 100 req/day forever, no credit card.

Claude Code

Add to .mcp.json in your project root:

{
  "mcpServers": {
    "praesentire": {
      "command": "npx",
      "args": ["-y", "praesentire-mcp"],
      "env": {
        "PRAESENTIRE_API_KEY": "pr_your_key_here"
      }
    }
  }
}

Then claude and ask: "What's the sentiment on NVDA?"

Claude Desktop / Cowork

Edit your Claude Desktop config (%APPDATA%\Claude\claude_desktop_config.json on Windows, ~/Library/Application Support/Claude/claude_desktop_config.json on Mac):

{
  "mcpServers": {
    "praesentire": {
      "command": "npx",
      "args": ["-y", "praesentire-mcp"],
      "env": {
        "PRAESENTIRE_API_KEY": "pr_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. The three tools will appear in the connectors list.

Local test

PRAESENTIRE_API_KEY=pr_your_key npx praesentire-mcp
# Server starts on stdio. Press Ctrl+C to stop.

Example prompts

Once installed, Claude can answer things like:

"What's the news sentiment on NVDA right now?" → Calls get_sentiment("NVDA"), returns aggregated score + the 3 articles driving it.

"Compare English vs Chinese sentiment on TSMC — is there divergence?" → Calls compare_languages("TSM"), returns side-by-side plus divergence score. If |divergence| > 0.3, that's a notable cross-market signal.

"Sentiment on my watchlist: NVDA, AMD, AVGO, TSM, ASML, INTC, MU." → Calls get_sentiment_batch(["NVDA","AMD",...]), returns all at once.

"Why is NVDA down today? Pull sentiment + latest articles." → Calls get_sentiment("NVDA") and Claude summarises the rationales.

Pricing

Praesentire's pricing (the API behind this MCP):

TierRequests / dayPrice
Free100$0 forever
Hobby1,000$19 / mo
Pro10,000$99 / mo
Business100,000$499 / mo

Each tool call = 1 request. get_sentiment_batch with N tickers = N requests.

Configuration

Env vars:

VarDefaultDescription
PRAESENTIRE_API_KEY(required)Your API key (pr_...). Get one at https://praesentire.com/dashboard.
PRAESENTIRE_BASE_URLhttps://praesentire.com/api/v1Override if self-hosting / testing against staging.

Error handling

The MCP server maps Praesentire's HTTP errors to LLM-friendly messages:

  • 401 → "API key invalid or revoked. Create a new one at praesentire.com/dashboard."
  • 429 → "Daily limit reached for tier X. Upgrade at praesentire.com/pricing or wait for reset."
  • 400 → Specific validation error (invalid ticker, bad params).
  • 5xx → "Praesentire API error N. Try again."

Links

License

MIT