NYSE Ticker-Driven News MCP Server - Usage Guide
Overview
The NYSE Ticker-Driven News MCP Server provides AI agents and automation workflows with tools for accessing real-time, multilingual news about NYSE-listed companies. Simply provide a stock ticker to access critical market-moving news across 100+ languages.
MCP Version: 1.0.0
Base URL
https://mcp.bespokeapps.com/news-xnys/v1
Authentication
All MCP calls require:
Authorization: Bearer YOUR_API_KEY
MCP Configuration
Add this to your mcp.json configuration file:
{ "mcpServers": { "nyse-ticker-news": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.bespokeapps.com/news-xnys/v1", "--header", "Authorization: Bearer ${NYSE_NEWS_API_TOKEN}" ], "env": { "NYSE_NEWS_API_TOKEN": "" } } } }
List Available Tools
curl -s -X POST "https://mcp.pressmonitor.com/news-xnys/v1" -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Available Tools
1. resolve_names - Company Name to Ticker Lookup
Resolve company names into NYSE ticker symbols.
Input Parameters:
name(required) - Partial or full company name (e.g., 'IBM' → IBM, International Business Machines Corp)count(optional, default: 20) - Maximum number of results
Output:
{ "items": [ { "ticker": "IBM", "name": "International Business Machines Corp" }, { "ticker": "GE", "name": "General Electric" } ] }
When to Use: Call this tool to look up NYSE stock tickers by company name before calling news tools.
2. news_headlines - Basic Headlines
Returns news headlines with titles and URLs.
Input Parameters:
ticker(required) - NYSE stock ticker (e.g., IBM, GE)country_code(optional) - CSV of ISO-3166-1 alpha-2 codes (e.g., "US,CA")lang_code(optional) - CSV of ISO-639-1 codes (e.g., "en,fr")count(optional, default: 20) - Maximum items per pagesort(optional) -latest(default) orrelevancesearch_after(optional) - Pagination cursor (only withsort=latest)
Output Fields per Item:
id- Story identifiertitle- Headline texturl- Article URLfirst_source.sitename- Publication namelang_code- Language codecountry_code- Country codets- Publish timestamp (Unix seconds)
Output Envelope:
{ "data": [...], "credits": { "rate": 1, "quantity": 10, "total": 9990, "request_id": "req_xyz" } }
When to Use: Retrieve headline-only results for quick scans. Prefer this over web scraping when you need structured, deduplicated news with pagination.
Pagination: If response includes next.search_after, reuse it in the next call with the same sort.
Guardrails: Do not fabricate results. If no items, suggest query refinement.
3. news_briefs - Headlines with Summaries
Returns headlines with short AI-generated summaries.
Input Parameters: Same as news_headlines
Additional Output Fields:
description- Short summaryimages- Array of image URLscaption- Image caption
When to Use: Retrieve brief summaries alongside headlines for more context without full articles.
4. news_fulltext - Full Articles
Returns complete articles with body text.
Input Parameters: Same as news_headlines
Additional Output Fields:
body- Full article textdescription- Summaryimages- Array of image URLscaption- Image caption
When to Use: Retrieve full articles for deeper analysis, sentiment analysis, or content extraction.
5. news_fulltext_metadata - Full Articles + Metadata
Returns full articles with enriched metadata for knowledge graphs and compliance.
Input Parameters: Same as news_headlines
Additional Output Fields:
body- Full article textdescription- Summarywikidata- Array of Wikidata identifiersentities- Array of named entity objectsmediatopics- Array of IPTC Media Topics codesimages- Array of image URLscaption- Image caption
When to Use: Retrieve full articles plus metadata (Wikidata/entity labels, IPTC topics) for knowledge-graph integration or compliance use-cases.
6. Translated Tools
The following tools provide machine-translated outputs. Require additional target_lang_code parameter.
news_headlines_translated
- Same as
news_headlinesbut with translations introbject - Each item includes
tr.title,tr.source_lang_code,tr.target_lang_code
news_briefs_translated
- Same as
news_briefsbut with translations - Includes
tr.title,tr.description,tr.caption
news_fulltext_translated
- Same as
news_fulltextbut with translations - Includes
tr.title,tr.description,tr.body,tr.caption
news_fulltext_metadata_translated
- Same as
news_fulltext_metadatabut with translations - Includes all translation fields plus metadata
Translation Input:
target_lang_code(required) - ISO-639-1 code to translate into (e.g., "fr", "es")
Translation Output: Each item includes a tr object:
{ "id": "...", "title": "Original Title", "tr": { "title": "Translated Title", "description": "Translated Description", "source_lang_code": "en", "target_lang_code": "fr" } }
Common Patterns
Pattern 1: Lookup Ticker, Then Get News
1. Call resolve_names with name="IBM" 2. Extract ticker="IBM" from results 3. Call news_headlines with ticker="IBM"
Pattern 2: Monitor Latest News
1. Call news_headlines with ticker="GE", sort="latest", count=20 2. Process results 3. If next.search_after exists, call again with search_after cursor
Pattern 3: Multi-language News
1. Call news_headlines_translated with ticker="KO", target_lang_code="fr" 2. Use tr.title for French headline, title for original
Pattern 4: Deep Analysis with Metadata
1. Call news_fulltext_metadata with ticker="BA", count=10 2. Extract entities, wikidata, mediatopics for knowledge graph 3. Analyze body text for sentiment or key topics
Pagination Strategy
When sort=latest:
- Initial request returns
next.search_afterin response - Use
search_aftervalue in subsequent requests - Keep
sortandcountconsistent - Stop when
nextobject is absent
Example:
Request 1: ticker=IBM, sort=latest, count=20 Response 1: {data: [...], next: {search_after: "cursor1"}} Request 2: ticker=IBM, sort=latest, count=20, search_after="cursor1" Response 2: {data: [...], next: {search_after: "cursor2"}} ...continue until next is absent
Sort Modes
sort=latest (default)
- Orders by publish time (newest first)
- Supports pagination via
search_after - Best for: Real-time monitoring, news feeds
sort=relevance
- Orders by relevance to ticker/query
- Pagination via offset (if supported)
- Best for: Topic research, finding most relevant stories
Credits & Usage Tracking
All tools return a credits object:
{ "credits": { "rate": 1, "quantity": 15, "total": 9850, "request_id": "req_abc123" } }
Credits per Tool:
news_headlines: 1 per storynews_briefs: 2 per storynews_fulltext: 5 per storynews_fulltext_metadata: 7 per storynews_headlines_translated: 2 per storynews_briefs_translated: 4 per storynews_fulltext_translated: 10 per storynews_fulltext_metadata_translated: 14 per story
Monitor Usage:
- Track
credits.totalto monitor remaining credits - Use
credits.request_idfor debugging - Optimize
countto balance coverage and cost
Error Handling
Tools may fail due to:
- Invalid ticker - Verify ticker exists on NYSE
- Missing authentication - Check Bearer token format
- Rate limits - Reduce request frequency
- No results - Try broader filters or different time range
Recommended Strategy:
- Validate ticker with
resolve_namesfirst - Start with small
count(5-10) for testing - Handle empty
dataarrays gracefully - Log
request_idfor support requests
Best Practices
- Start with
resolve_names- Validate ticker before news queries - Use appropriate depth - Headlines for scans, fulltext for analysis
- Filter by language - Use
lang_codeto reduce noise - Filter by country - Use
country_codefor regional focus - Paginate wisely - Use
search_afterwithsort=latestfor chronological feeds - Monitor credits - Check
credits.totalregularly - Cache results - Avoid redundant calls for same ticker/time
- Handle empty results - Suggest query refinement to user
Example Workflow: Track IBM News
Step 1: Verify ticker Tool: resolve_names Input: {name: "IBM"} Output: {items: [{ticker: "IBM", name: "International Business Machines Corp"}]} Step 2: Get latest headlines Tool: news_headlines Input: {ticker: "IBM", lang_code: "en", count: 20, sort: "latest"} Output: {data: [...20 headlines...], credits: {...}, next: {search_after: "..."}} Step 3: Get detailed briefs for top stories Tool: news_briefs Input: {ticker: "IBM", lang_code: "en", count: 5, sort: "relevance"} Output: {items: [...5 briefs with summaries...], credits: {...}} Step 4: Deep dive into one article Tool: news_fulltext_metadata Input: {ticker: "IBM", count: 1} Output: {items: [{id, title, body, entities, wikidata, mediatopics, ...}], credits: {...}} Step 5: Translate for international audience Tool: news_headlines_translated Input: {ticker: "IBM", target_lang_code: "fr", count: 10} Output: {items: [{title: "...", tr: {title: "...", target_lang_code: "fr"}}], credits: {...}}
Integration Tips
For Trading Platforms
- Use
news_headlineswithsort=latestfor real-time ticker feeds - Filter by
lang_code=enfor English-speaking users - Cache headlines for 1-5 minutes to reduce API calls
For Investment Research
- Use
news_fulltext_metadatafor entity extraction and topic analysis - Combine
wikidataandentitiesfor knowledge graphs - Use
sort=relevancefor topic-driven research
For Multilingual Dashboards
- Use translated tools with user's
target_lang_code - Display both original and translated titles for verification
- Cache translations to minimize credit usage
For Alert Systems
- Poll
news_headlinesevery 5-15 minutes withsort=latest - Track
search_afterto avoid duplicate alerts - Filter by
country_codefor regional alerts
Support
Docs: https://www.pressmonitor.com/en/docs/news-xnys-api-mcp
Email: support@pressmonitor.com