praesentire-mcp
MCP server for Praesentire — 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 — 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):
| 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
- 📖 API docs
- 🔑 Dashboard
- 🐛 Issues
License
MIT