Press Monitor
The JPX Ticker-Driven News MCP Server provides AI agents and automation workflows with tools for accessing real-time, multilingual news about JPX-listed companies. Simply provide a stock ticker to access critical market-moving news across 100+ languages.
MCP Version: 1.0.0
https://mcp.bespokeapps.com/news-xjpx/v1
All MCP calls require:
Authorization: Bearer YOUR_API_KEY
Add this to your mcp.json
configuration file:
{ "mcpServers": { "jpx-ticker-news": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.bespokeapps.com/news-xjpx/v1", "--header", "Authorization: Bearer ${JPX_NEWS_API_TOKEN}" ], "env": { "JPX_NEWS_API_TOKEN": "" } } } }
curl -s -X POST "https://mcp.pressmonitor.com/news-xjpx/v1" -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
resolve_names
- Company Name to Ticker LookupResolve company names into JPX ticker symbols.
Input Parameters:
name
(required) - Partial or full company name (e.g., 'Toyota' → 7203, Toyota Motor Corporation)count
(optional, default: 20) - Maximum number of resultsOutput:
{ "items": [ { "ticker": "7203", "name": "Toyota Motor Corporation" }, { "ticker": "9984", "name": "SoftBank Group Corp." } ] }
When to Use: Call this tool to look up JPX stock tickers by company name before calling news tools.
news_headlines
- Basic HeadlinesReturns news headlines with titles and URLs.
Input Parameters:
ticker
(required) - JPX stock ticker (e.g., 7203, 9984)country_code
(optional) - CSV of ISO-3166-1 alpha-2 codes (e.g., "JP,US")lang_code
(optional) - CSV of ISO-639-1 codes (e.g., "en,ja")count
(optional, default: 20) - Maximum items per pagesort
(optional) - latest
(default) or relevance
search_after
(optional) - Pagination cursor (only with sort=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.
news_briefs
- Headlines with SummariesReturns headlines with short AI-generated summaries.
Input Parameters: Same as news_headlines
Additional Output Fields:
description
- Short summaryimages
- Array of image URLscaption
- Image captionWhen to Use: Retrieve brief summaries alongside headlines for more context without full articles.
news_fulltext
- Full ArticlesReturns complete articles with body text.
Input Parameters: Same as news_headlines
Additional Output Fields:
body
- Full article textdescription
- Summaryimages
- Array of image URLscaption
- Image captionWhen to Use: Retrieve full articles for deeper analysis, sentiment analysis, or content extraction.
news_fulltext_metadata
- Full Articles + MetadataReturns 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 captionWhen to Use: Retrieve full articles plus metadata (Wikidata/entity labels, IPTC topics) for knowledge-graph integration or compliance use-cases.
The following tools provide machine-translated outputs. Require additional target_lang_code
parameter.
news_headlines_translated
news_headlines
but with translations in tr
objecttr.title
, tr.source_lang_code
, tr.target_lang_code
news_briefs_translated
news_briefs
but with translationstr.title
, tr.description
, tr.caption
news_fulltext_translated
news_fulltext
but with translationstr.title
, tr.description
, tr.body
, tr.caption
news_fulltext_metadata_translated
news_fulltext_metadata
but with translationsTranslation Input:
target_lang_code
(required) - ISO-639-1 code to translate into (e.g., "ja", "en")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": "ja" } }
1. Call resolve_names with name="SoftBank" 2. Extract ticker="9984" from results 3. Call news_headlines with ticker="9984"
1. Call news_headlines with ticker="9984", sort="latest", count=20 2. Process results 3. If next.search_after exists, call again with search_after cursor
1. Call news_headlines_translated with ticker="6758", target_lang_code="ja" 2. Use tr.title for Japanese headline, title for original
1. Call news_fulltext_metadata with ticker="7974", count=10 2. Extract entities, wikidata, mediatopics for knowledge graph 3. Analyze body text for sentiment or key topics
When sort=latest
:
next.search_after
in responsesearch_after
value in subsequent requestssort
and count
consistentnext
object is absentExample:
Request 1: ticker=7203, sort=latest, count=20 Response 1: {data: [...], next: {search_after: "cursor1"}} Request 2: ticker=7203, sort=latest, count=20, search_after="cursor1" Response 2: {data: [...], next: {search_after: "cursor2"}} ...continue until next is absent
sort=latest
(default)search_after
sort=relevance
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 storyMonitor Usage:
credits.total
to monitor remaining creditscredits.request_id
for debuggingcount
to balance coverage and costTools may fail due to:
Recommended Strategy:
resolve_names
firstcount
(5-10) for testingdata
arrays gracefullyrequest_id
for support requestsresolve_names
- Validate ticker before news querieslang_code
to reduce noisecountry_code
for regional focussearch_after
with sort=latest
for chronological feedscredits.total
regularlyStep 1: Verify ticker Tool: resolve_names Input: {name: "Toyota"} Output: {items: [{ticker: "7203", name: "Toyota Motor Corporation"}]} Step 2: Get latest headlines Tool: news_headlines Input: {ticker: "7203", 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: "7203", 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: "7203", count: 1} Output: {items: [{id, title, body, entities, wikidata, mediatopics, ...}], credits: {...}} Step 5: Translate for international audience Tool: news_headlines_translated Input: {ticker: "7203", target_lang_code: "ja", count: 10} Output: {items: [{title: "...", tr: {title: "...", target_lang_code: "ja"}}], credits: {...}}
news_headlines
with sort=latest
for real-time ticker feedslang_code=en
for English-speaking usersnews_fulltext_metadata
for entity extraction and topic analysiswikidata
and entities
for knowledge graphssort=relevance
for topic-driven researchtarget_lang_code
news_headlines
every 5-15 minutes with sort=latest
search_after
to avoid duplicate alertscountry_code
for regional alertsDocs: https://www.pressmonitor.com/en/docs/news-xjpx-api-mcp Email: support@pressmonitor.com