Skip to main content
Glama
AletaIndex

AletaIndex Narrative Intelligence

Official
by AletaIndex

AletaIndex Narrative Intelligence API

PyPI Python License: MIT Smithery Glama

Give your AI agent a financial narrative brain.

AletaIndex tracks how financial stories evolve across thousands of news sources in real time — clustering articles into structured narratives, measuring sentiment momentum, and mapping narrative risk across portfolios. Available for 109 tickers across all major sectors.

Instead of raw news feeds or simple sentiment scores, your agent gets narrative-level intelligence: what the market is talking about, how strongly, and whether it's shifting.

Dominant Narrative Evolution — TSLA 180-day view showing 5 persistent narrative threads, article volume, and daily return overlay


What Your Agent Can Do

💡 For best results, paste this at the start of your conversation:

You have access to the Aleta Index MCP, which provides narrative intelligence
derived from institutional news sources.

When analyzing stocks, prioritize the narrative layer: global narratives,
daily topics, sentiment scores, mention counts, sentiment trends, and
behavioral patterns. The narrative layer aggregates signal across hundreds
of sources and contains sufficient information for analysis — avoid reading
individual article bodies unless specifically necessary.
You: "What narratives are driving NVDA right now? Any sentiment shifts?"

Agent: NVDA is currently dominated by two narratives:
  1. "AI Infrastructure Supercycle" — 47 articles, sentiment +0.68, trending up
  2. "Export Control Headwinds" — 23 articles, sentiment -0.41, stable

  Sentiment on "Export Control Headwinds" has improved +0.12 over the past week,
  suggesting the market is pricing in less risk from the latest policy signals.

No prompt engineering required. The agent knows how to query the data automatically.


Related MCP server: TickerAPI

Three Ways to Integrate

One-line config via uvx. Works with Claude Code, Claude Desktop, Cursor, Windsurf, and any MCP-compatible agent. → MCP Quickstart

Option B — MCP Directories (Zero install)

One click on Smithery or Glama. Works with Claude, Cursor, Windsurf, and any MCP-compatible agent — no local setup required. → Add on Smithery · Add on Glama

Option C — REST API

Direct HTTP calls. Works with any language or framework. → API Reference


Pricing

Tier

Tickers

History

Credits

Price

Free Trial

10 tickers

90 days

500 (one-time)

Free, 7 days

Plus

All 109 tickers

180 days

2,500/month

$99/mo

Scale

All 109 tickers

Full history

Custom

Custom — contact us

Free tickers: TSLA NVDA AAPL MSFT AMZN GOOGL META AMD NFLX JPM

→ Get your API key


Quick Example

import requests
from datetime import date, timedelta

API_KEY  = "nk_your_key_here"
BASE_URL = "https://aletaindex-narrative.com"

to_date   = date.today()
from_date = to_date - timedelta(days=6)  # 7-day window (inclusive)

resp = requests.get(
    f"{BASE_URL}/v1/narratives/comprehensive",
    headers={"X-API-Key": API_KEY},
    params={
        "tickers":   "NVDA",
        "from_date": from_date.isoformat(),
        "to_date":   to_date.isoformat(),
    },
)

data = resp.json()
for narrative in data["results"][0]["global_narratives"]:
    sentiment = narrative["sentiment"]
    print(narrative["title"], "-", sentiment["sentiment_label"], f"({sentiment['avg_sentiment']:.2f})")

Example response (truncated):

{
  "results": [
    {
      "ticker": "NVDA",
      "global_narratives": [
        {
          "narrative_id": 142,
          "title": "AI Infrastructure Supercycle",
          "dominance_score": 0.847,
          "is_active": true,
          "daily_topics": [
            {
              "event_date": "2026-05-10",
              "article_count": 14,
              "sentiment": {
                "avg_sentiment": 0.71,
                "sentiment_label": "Positive",
                "trajectory": "Escalating"
              }
            }
          ]
        },
        {
          "narrative_id": 89,
          "title": "Export Control Headwinds",
          "dominance_score": 0.312,
          "is_active": true,
          "daily_topics": [
            {
              "event_date": "2026-05-10",
              "article_count": 6,
              "sentiment": {
                "avg_sentiment": -0.38,
                "sentiment_label": "Negative",
                "trajectory": "Stable"
              }
            }
          ]
        }
      ]
    }
  ]
}

Documentation

Available Tools

2 tools
get_narrativesA

Get financial narrative intelligence for one or more stocks.

Returns structured narrative data: persistent story threads (global narratives),
daily article clusters, individual articles, and sentiment scores. Use this to
understand what stories are driving a stock and how sentiment is evolving.

Args:
    tickers: Comma-separated ticker symbols. Examples: "NVDA" or "NVDA,TSLA,AAPL".
             Maximum 10 tickers per request. Free tier: TSLA, NVDA, AAPL, MSFT,
             AMZN, GOOGL, META, AMD, NFLX, JPM. Plus/Scale: all 109 tickers.
    from_date: Start date in YYYY-MM-DD format. Defaults to 7 days ago.
    to_date: End date in YYYY-MM-DD format. Defaults to today.

Returns:
    Dict with narrative data per ticker, including global_narratives (persistent story
    threads with title, sentiment, and dominance), daily_topics (day-level article
    clusters), and articles (individual news items with relevance and sentiment scores).
ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYes
from_dateNo
to_dateNo

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses output structure (global narratives, daily topics, articles, sentiment scores) and input constraints. Lacks explicit statement of read-only nature or rate limits, but adequately describes behavior for a data retrieval tool.

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?

Well-structured with summary, returns, and args sections. Front-loaded with purpose. Some redundancy (e.g., 'Args:' duplicates schema but adds value), making it slightly verbose but still efficient.

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 or annotations and three parameters, the description covers purpose, parameters, and return values adequately. Could clarify sentiment scale or 'dominance' field, but completeness is high for a retrieval tool.

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

Parameters5/5

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

Schema description coverage is 0%, but description fully compensates: explains tickers format, maximum 10, free tier list; from_date and to_date defaults. Adds meaning far beyond the bare schema.

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?

Clearly states 'Get financial narrative intelligence for one or more stocks' and details the returned data (global narratives, daily topics, articles, sentiment scores). Distinct from sibling tool get_portfolio_risk which focuses on risk metrics.

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?

Explains when to use: 'understand what stories are driving a stock and how sentiment is evolving.' Provides practical parameter details (ticker limits, free/paid tiers) but does not explicitly exclude alternative tools or mention when not to use this tool.

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

get_portfolio_riskA

Analyze narrative risk across a portfolio of stocks.

Groups narratives across all holdings by macro theme (e.g. "AI Regulation",
"Interest Rate Sensitivity") and identifies which stories create concentrated
narrative exposure across multiple positions simultaneously.

Args:
    holdings: Portfolio positions as TICKER:WEIGHT pairs, comma-separated.
              Weights represent portfolio allocation (should sum to ~1.0).
              Example: "NVDA:0.30,AAPL:0.25,TSLA:0.20,MSFT:0.25"
              Maximum 50 holdings.

Returns:
    Dict with macro risk themes, each showing affected tickers, dominant narrative
    titles, sentiment trajectory, and weighted exposure score. Also includes an
    overall portfolio narrative concentration score.
ParametersJSON Schema
NameRequiredDescriptionDefault
holdingsYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully bears the burden of transparency. It details the grouping logic, output structure (risk themes, tickers, narratives, scores), and input constraints, providing complete behavioral context.

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?

The description is well-structured: a one-line summary, followed by detailed explanation of functionality, parameter format, and return value. Every sentence adds value, and it is appropriately sized for the tool's complexity.

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 simple input/output (one parameter, no output schema), the description is complete. It covers input constraints, output structure, and functional behavior, leaving no major gaps.

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

Parameters5/5

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

The schema has 0% description coverage, so the description compensates by explaining the 'holdings' parameter format (TICKER:WEIGHT pairs, comma-separated), constraints (max 50, weights sum ~1.0), and providing an example.

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: 'Analyze narrative risk across a portfolio of stocks.' It specifies grouping by macro themes and identifying concentrated exposure, which distinguishes it from the sibling tool 'get_narratives'.

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 provides clear context on input format and constraints (max 50 holdings, weights sum to ~1.0), but does not explicitly state when not to use the tool or suggest alternatives.

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. 2 tool updates
    • First observedget_narratives
    • First observedget_portfolio_risk

TDQS

A4.5/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: get_narratives retrieves narrative data for specific tickers, while get_portfolio_risk analyzes cross-holding narrative exposure. There is no overlap in functionality.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (get_narratives, get_portfolio_risk), making the naming predictable and clear.

Tool Count4/5

With only 2 tools, the surface is slightly thin, but they cover the core use cases of narrative retrieval and portfolio risk analysis. The small count is acceptable given the focused domain.

Completeness4/5

The tools cover the primary functions for narrative intelligence: retrieving narratives for stocks and assessing portfolio risk. Minor gaps exist (e.g., no narrative search or comparison), but the set is sufficient for its stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/AletaIndex/aletaindex-fin-narratives'

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