Skip to main content
Glama
Etha0916

praesentire-mcp

praesentire-mcp

MCP server for Praesentirebilingual 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.

Related MCP server: FinvizMCP

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."

License

MIT

Available Tools

3 tools
compare_languagesA

Compare English vs Traditional Chinese news sentiment for a ticker side-by-side, plus a divergence score. Designed for cross-market arbitrage signal detection — US press (Reuters/Bloomberg) often leads Taiwan/Asia press by hours. A large divergence (|divergence| > 0.3) often precedes mood shifts on Asia-listed semis or US names with strong TW supply chain exposure. Returns: english + chinese aggregates (article_count, average_score, confidence, distribution) and divergence = english.average_score - chinese.average_score. Positive divergence = English more bullish; negative = Chinese more bullish.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol. Most useful for: Taiwan-listed names (TSMC, 2330.TW, 聯發科), US semis with Asia supply chain (NVDA, AMD, AVGO, ASML), and dual-listed ADRs.
window_hoursNoRolling time window in hours. Default 24, max 168.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It details the return values (english/chinese aggregates and divergence) and explains the behavioral trait that large divergence often precedes mood shifts. It does not mention destructive behavior (none needed) or auth/rate limits, but is transparent about output and interpretation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with purpose. It is clear but slightly verbose in explaining divergence meaning and examples. Every sentence adds value, but could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description fully explains return values and divergence formula. It covers purpose, usage context, parameters, and behavioral insights. For a 2-parameter tool with 100% schema coverage, it leaves no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value for ticker by listing useful examples (Taiwan-listed, US semis, ADRs), but for window_hours it largely repeats schema info (default, max, min). Overall, schema already documents parameters well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool compares English vs Traditional Chinese news sentiment side-by-side with a divergence score, and specifies its purpose for cross-market arbitrage signal detection. It is distinct from siblings like get_sentiment (single language) and get_sentiment_batch (batch for one language).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (for cross-market arbitrage) and provides context about US press leading Taiwan/Asia press, as well as interpreting divergence. It lacks explicit 'when not to use' or comparison with sibling tools, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sentimentA

Get aggregated financial news sentiment for a single stock ticker over a rolling time window. Returns an -1 to +1 average score, confidence, article count, bullish/neutral/bearish distribution, and up to 3 latest articles with one-line rationale each. Sources: Reuters, Bloomberg, Yahoo Finance (English) + 經濟日報, 工商時報, Anue 鉅亨 (Traditional Chinese). Useful for: gauging market mood before opening a position, monitoring sentiment shifts post-earnings, explaining unusual price moves with news context.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g. NVDA, TSM, AAPL). 1-10 letters, case-insensitive. Coverage skews to US large-caps and Taiwan-listed semis.
window_hoursNoRolling time window in hours. Default 24, max 168 (7 days).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It transparently describes the output format, sources (listing specific English and Chinese outlets), and coverage skew (US large-caps, Taiwan semis). It does not mention any destructive behavior or side effects, but as a read-only tool, this is acceptable. Lacks mention of rate limits or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and dense, covering purpose, output, sources, and usage in a few sentences. It is front-loaded with the main action. However, the 'Useful for' list could be integrated into a more structured format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (2 parameters, no output schema), the description is remarkably complete. It explains the return value details, sources, and usage contexts. No output schema is needed as the description sufficiently describes the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, so schema already documents parameters. The description adds value by clarifying ticker case-insensitivity, length limits, and coverage bias, as well as window_hours default and max. This goes beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: get aggregated financial news sentiment for a single stock ticker. It specifies the output details (score range, confidence, article count, distribution, and latest articles) and sources. This distinguishes it from siblings like get_sentiment_batch (multiple tickers) and compare_languages (language comparison).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'Useful for' section with concrete scenarios: gauging market mood before a position, monitoring post-earnings sentiment, explaining price moves. This provides clear usage guidance. However, it does not explicitly state when not to use the tool or mention alternatives beyond sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sentiment_batchA

Get sentiment for multiple tickers in one call. More efficient than calling get_sentiment N times when you have a watchlist. Each ticker counts as one request against the daily rate limit (so 10 tickers = 10 requests billed). latest_3 articles are omitted from each result to keep the response small — call get_sentiment for the full payload on any specific ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYesList of ticker symbols. 1-50 tickers per call. Example: ['NVDA', 'AMD', 'TSM', 'AVGO']
window_hoursNoRolling time window in hours. Default 24, max 168.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description fully discloses important behaviors: each ticker counts as separate request against daily rate limit, latest_3 articles omitted per result, and suggests fallback for full data. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with key purpose, each sentence adds distinct value: purpose, efficiency, rate limit, data truncation. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description hints at response structure (articles omitted per result) but could explicitly state return format. Still adequately covers usage constraints and outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters with descriptions (100% coverage). Description adds no new parameter-specific details beyond schema. Baseline 3 is appropriate as schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get sentiment for multiple tickers in one call' with specific verb and resource. Distinguishes from sibling get_sentiment by emphasizing it's for multiple tickers and more efficient for watchlists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: 'More efficient than calling get_sentiment N times when you have a watchlist.' Also explains billing implications and data truncation, advising to call get_sentiment for full payload.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedcompare_languages
    • First observedget_sentiment
    • First observedget_sentiment_batch

TDQS

A4.2/5.0
Disambiguation4/5

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 Consistency4/5

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.

Tool Count4/5

Three tools is reasonable for a focused sentiment analysis server. Each tool has a distinct role (single, batch, compare) without being overly minimal.

Completeness4/5

Covers key operations: single sentiment, batch sentiment, and cross-language comparison. Could benefit from historical trends or time-series, but core functionality is present.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    AI-powered trading toolkit with backtesting, live sentiment, Yahoo Finance data, and 30+ technical analysis tools, integrated as an MCP server for Claude and other AI clients.
    37
    4,309
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that exposes Finviz stock screening, fundamentals, news, and market data as tools for MCP clients like Claude Code and Claude Desktop.
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    MCP server that wraps AKShare's 1000+ financial data functions, enabling LLMs to query Chinese stock, macro, futures, fund, bond, option, forex, and alternative data through standardized tools.
    14
    3
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Etha0916/praesentire-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server