praesentire-mcp
# praesentire-mcp
MCP server for [Praesentire](https://praesentire.com) — **bilingual financial news sentiment as a Claude tool**.
## What Claude gets
Three tools, one API:
| Tool | What it does |
|---|---|
| **`get_sentiment`** | Aggregated -1 to +1 sentiment score + confidence + bull/bear distribution + latest 3 articles with rationale, for one ticker. |
| **`get_sentiment_batch`** | Same aggregates for up to 50 tickers in one call. Each ticker bills as one request. |
| **`compare_languages`** | English 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](https://praesentire.com/signup) — 100 req/day forever, no credit card.
### Claude Code
Add to `.mcp.json` in your project root:
```json
{
"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):
```json
{
"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
```bash
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):
| Tier | Requests / day | Price |
|---|---|---|
| Free | 100 | $0 forever |
| Hobby | 1,000 | $19 / mo |
| Pro | 10,000 | $99 / mo |
| Business | 100,000 | $499 / mo |
Each tool call = 1 request. `get_sentiment_batch` with N tickers = N requests.
## Configuration
Env vars:
| Var | Default | Description |
|---|---|---|
| `PRAESENTIRE_API_KEY` | (required) | Your API key (`pr_...`). Get one at https://praesentire.com/dashboard. |
| `PRAESENTIRE_BASE_URL` | `https://praesentire.com/api/v1` | Override 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
- 🏠 [praesentire.com](https://praesentire.com)
- 📖 [API docs](https://praesentire.com/docs)
- 🔑 [Dashboard](https://praesentire.com/dashboard)
- 🐛 [Issues](https://github.com/Etha0916/praesentire-mcp/issues)
## License
MIT
TDQS
Scored across 3 tools
Tools are mostly distinct: compare_languages is unique (cross-language comparison), while get_sentiment and get_sentiment_batch overlap but descriptions clarify batch is a more efficient bulk call without full article details.
Naming follows a consistent pattern: get_sentiment and get_sentiment_batch share the get_ prefix, compare_languages uses compare_ which is fitting. Minor deviation but overall predictable.
Three tools is reasonable for a focused sentiment analysis server. Each tool has a distinct role (single, batch, compare) without being overly minimal.
Covers key operations: single sentiment, batch sentiment, and cross-language comparison. Could benefit from historical trends or time-series, but core functionality is present.