AletaIndex Narrative Intelligence
OfficialThe AletaIndex Narrative Intelligence server provides financial narrative analysis and risk assessment for stocks, with two core capabilities:
Get Narrative Intelligence for Stocks (
get_narratives): Retrieve structured narrative data for up to 10 tickers per request, including persistent story threads ("global narratives") with titles, dominance scores, and sentiment; daily article clusters showing how narratives evolve; individual articles with relevance scores; and sentiment trajectories (e.g., Escalating, Stable, Declining) over custom date ranges (default: last 7 days).Analyze Portfolio Narrative Risk (
get_portfolio_risk): Assess narrative risk across up to 50 holdings by grouping narratives into macro themes (e.g., "AI Regulation", "Interest Rate Sensitivity"). Identifies concentrated narrative exposure across multiple positions, provides weighted exposure scores per theme based on portfolio allocation, and returns an overall portfolio narrative concentration score.
Coverage: Free tier includes 10 tickers (TSLA, NVDA, AAPL, MSFT, AMZN, GOOGL, META, AMD, NFLX, JPM); paid plans cover 109 tickers. Accessible via MCP integration or direct REST API.
AletaIndex Narrative Intelligence API
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.

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
Option A — MCP Server via PyPI (Local install, recommended)
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
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
API Reference — endpoints, parameters, response schemas
Data Model — narrative hierarchy explained
MCP Quickstart — agent integration in 2 minutes
Direct API Guide — REST integration guide
Example Prompts — prompt templates for trading agents
Available Tools
2 toolsget_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).
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | ||
| from_date | No | ||
| to_date | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| holdings | Yes |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
- First observed
get_narratives - First observed
get_portfolio_risk
TDQS
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.
Both tools follow a consistent verb_noun pattern (get_narratives, get_portfolio_risk), making the naming predictable and clear.
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.
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
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
Evidence-backed capital-change intelligence and sourced financial data for AI agents
Real-time financial news for AI agents: search by ticker and source, with sentiment and entities.
Market intelligence for AI agents. Real-time data, cross-market analysis, and regime detection.
Real-time AI intelligence signals and temporal knowledge graph for agent economy
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceSocial Arbitrage Intelligence: real-time X/Twitter sentiment, narrative velocity & contrarian signals for AI agents, powered by Grok-
- AlicenseAqualityAmaintenancePre-computed financial market intelligence for AI agents. Stocks, crypto, and ETFs.91675MIT
- AlicenseAqualityBmaintenanceReal-time financial news for AI agents and trading bots — AI-enriched stories with per-ticker analysis, a 1–10 relevance score, SEC Form-4 insider transactions, plus trending and "actionable-now" feeds. Free tier, OAuth, no API key to paste.112MIT
- AlicenseAqualityCmaintenanceNarrative & signal intelligence for AI agents: crypto/AI/macro convergence & divergence.21MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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