asha-news
Evidence-first news archive: briefs, breaking news, search, Palestine claims, conflict monitor.
使うべきか
品質と安全性
検出事項(7)
- HIGH
- MEDIUMasha_share_payload 内
- MEDIUMconflict_state 内
- LOWasha_blindspot 内
- LOWasha_sources 内
- LOWasha_market_context 内
- INFOasha_share_payload 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"asha-news": {
"url": "https://asha.news/api/v1/mcp"
}
}
}リモートエンドポイント
https://asha.news/api/v1/mcpstreamable-httpできること
ツール一覧
ツール(25)
🟡asha_feed(limit, timeframe, category, q)
Latest source-backed news from the Asha News archive. Returns items with publish time, source, and citation links.
入力スキーマ
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Max items (default 10)."
},
"timeframe": {
"type": "string",
"description": "e.g. 24h, 72h. Default 24h."
},
"category": {
"type": "string",
"description": "Canonical category filter: world, politics, markets, tech, ai, science, health, sport, or entertainment."
},
"q": {
"type": "string",
"description": "Keyword to search within recent coverage."
}
}
}🟢asha_search(q, limit, types)
Unified search across Asha News articles, active story clusters, and published generated briefs. Use this before choosing a narrower endpoint.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search term, e.g. \"palestine\", \"gold\", \"OpenAI\"."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"description": "Max mixed results (default 10)."
},
"types": {
"type": "string",
"description": "Comma-separated result families: articles, stories, generated, or all."
}
},
"required": [
"q"
]
}🟢asha_search_articles(q, limit)
Keyword search across recent Asha News articles. Cite source URLs and Asha article/story URLs when present.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search term, e.g. \"palestine\", \"iran\"."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Max results (default 10)."
}
},
"required": [
"q"
]
}⚪asha_digest(format, limit)
Clustered public news digest. format=markdown returns prose; otherwise JSON clusters.
入力スキーマ
{
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"markdown",
"json"
],
"description": "Default markdown."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
}
}⚪asha_share_pack(q, url)
Share-ready package for a published, cited Asha brief/story. Returns found=false when no final share pack is available.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search query, slug, or generated-article id. Omit for latest published pack."
},
"url": {
"type": "string",
"description": "Exact asha.news /article/{slug}, /story/{id}, or /s/{key} URL; resolves to that content only (matched_by=url) or found=false — never a different article. Takes precedence over q."
}
}
}⚪asha_blindspot(topic, limit, min_mci, posture)
Persisted Asha Blindspots / coverage gaps from posture analysis. Use only when status=available; do not infer gaps from empty or unavailable responses.
入力スキーマ
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "Optional topic/title/summary substring, e.g. palestine."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Max flagged clusters (default 10)."
},
"min_mci": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Minimum persisted Manufactured Consensus Index."
},
"posture": {
"type": "string",
"description": "Require this posture key in posture_distribution.by_posture."
}
}
}⚪asha_palestine(status, limit)
Palestine desk timeline (evidence-classed events) with a freshness indicator, plus the desk section map (Now / The Record / Israel Exposed wings with canonical page URLs).
入力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"verified",
"cross_verified",
"pending",
"leak"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
}
}🔴palestine_check_claim(claim)
Check one claim about Palestine against the desk's claim library and evidence archive. Returns the matched claim family, verdict, a short evidence-backed answer, and citation URLs. Rate-limited — send a single clear claim per call and relay the citations with the answer.
入力スキーマ
{
"type": "object",
"properties": {
"claim": {
"type": "string",
"description": "The claim to check, as one plain-language sentence."
}
},
"required": [
"claim"
]
}⚪palestine_genocide_case
The full genocide-case record from the Asha News Palestine desk: what each court, UN body, rights organization, and study found — precisely characterized (provisional measures are not merits rulings; warrants are charges, not convictions) — plus attributed casualty figures, a case timeline, and an FAQ. Relay characterizations exactly and keep citation URLs.
入力スキーマ
{
"type": "object",
"properties": {}
}🟢palestine_search_archive(q, type, page, page_size)
Search the Palestine evidence archive: 140,000+ upstream media records, the Killed in Gaza victims memorial, and the curated claim library. Results carry stable IDs and canonical URLs — cite those instead of scraping.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search term — Arabic or English both match (e.g. \"Deir al-Balah\", \"مستشفى\")."
},
"type": {
"type": "string",
"enum": [
"all",
"media",
"victims",
"claims"
],
"description": "Result family (default all)."
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (default 1)."
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Results per family per page (default 10)."
}
},
"required": [
"q"
]
}🟢palestine_evidence_search(q, category, region, source, from, ...)
Search the Palestine evidence graph: reviewer-approved records with dates, places, assigned categories, and the source that documented each one. Returns facet counts (region, category, year, source, trust states) alongside results, so you can see the shape of the corpus before narrowing. Every record separates the upstream source's own wording (upstream.classification) from Asha's review (asha.finding) — quote the first with attribution, never relay it as an Asha finding. bot_can_cite is true only for editorially verified records; everything else is citable strictly as "this source says". Asha holds metadata and links only; media opens on the upstream record.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Free text over upstream titles, place names and Asha findings. Arabic and English both match."
},
"category": {
"type": "string",
"description": "Category slug from palestine_evidence_taxonomy, e.g. hospitals-health, airstrike, journalists."
},
"region": {
"type": "string",
"enum": [
"gaza",
"west_bank",
"jerusalem",
"israel",
"lebanon",
"syria",
"other",
"unknown"
]
},
"source": {
"type": "string",
"description": "Source slug, e.g. genocide-live."
},
"from": {
"type": "string",
"description": "Earliest event date, YYYY-MM-DD."
},
"to": {
"type": "string",
"description": "Latest event date, YYYY-MM-DD."
},
"page": {
"type": "integer",
"minimum": 1
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
}
}⚪palestine_evidence_record(ref)
One Palestine evidence record by its stable ref (e.g. gl-2810), with its assigned categories, editor-asserted incident links, related records, and ranked external media candidates carrying observed link health. Media candidates are third-party destinations — Asha never hosts them, and anything graphic or ungraded requires explicit consent before it loads. A ref that is not found may simply not have cleared editorial review; treat 404 as "not published", not as "does not exist".
入力スキーマ
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"description": "Stable public ref, e.g. gl-2810."
}
},
"required": [
"ref"
]
}🟢palestine_evidence_health
Operational state of the Palestine evidence pipeline: which sources are collecting and when they last succeeded, how deep the review queue is, how many records are actually published, and how reachable the external media pointers were at their last check. Aggregate counts only — it never names an unreviewed record. Use it to answer "is this archive current?" honestly before citing it, and read degraded_reasons rather than the status alone. A source with ingest_enabled:false is configured off, not broken.
入力スキーマ
{
"type": "object",
"properties": {}
}⚪palestine_evidence_taxonomy(vocabulary)
The controlled vocabulary behind the Palestine evidence graph: incident_type (what happened), theme (what was hit), affected_group (who), and legal_category (what a named body says it amounts to). Call this before filtering so you use real slugs. legal_category terms are editorial-only — they are never derived from text, and record that a named authority made that characterization.
入力スキーマ
{
"type": "object",
"properties": {
"vocabulary": {
"type": "string",
"enum": [
"incident_type",
"theme",
"affected_group",
"legal_category"
]
}
}
}⚪asha_sources(limit)
Asha News public source directory with provenance and trust metadata.
入力スキーマ
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500
}
}
}🟢asha_clusters_search(q, limit)
Search story clusters by topic. Returns grouped multi-source coverage.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"q"
]
}⚪asha_market_context(symbols)
Public market price context for supported instruments. Returns quote source, timestamp, and instrument rows.
入力スキーマ
{
"type": "object",
"properties": {
"symbols": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Comma-separated symbols or string array, e.g. BTCUSD,ETHUSD,XAUUSD,OIL. Defaults to supported core instruments."
}
}
}⚪asha_breaking(since, limit)
Breaking news: active alerts plus breaking-flagged articles with age and expiry. Poll every 60s with since={last generated_at} for deltas; notify your user on new items.
入力スキーマ
{
"type": "object",
"properties": {
"since": {
"type": "string",
"description": "ISO timestamp; only items published after this are returned."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
}
}🟡asha_daily_brief(format, per_section)
Server-rendered daily brief: categorized sections with publish time + age per item, Palestine desk leading. format=markdown for chat relay, html for a styled self-contained page, json for structured data. Relay as-is.
入力スキーマ
{
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"markdown",
"html",
"json"
],
"description": "Default markdown."
},
"per_section": {
"type": "integer",
"minimum": 1,
"maximum": 10
}
}
}🟡asha_share_payload(article_id, platform)
Ready-to-post social share payloads for an article (x, bluesky, threads, mastodon, telegram, whatsapp, facebook, linkedin): text within platform limits, hashtags, image, and intent URL. Post verbatim; keep attribution.
入力スキーマ
{
"type": "object",
"properties": {
"article_id": {
"type": "string",
"description": "Asha article id (from asha_feed / asha_search_articles results)."
},
"platform": {
"type": "string",
"description": "Optional single platform filter, e.g. x or telegram."
}
},
"required": [
"article_id"
]
}⚪conflict_state(since)
Live Middle East Conflict Monitor snapshot: official alerts, geolocated OSINT events, active story clusters, EN/AR theater brief, and per-tier freshness (degraded flag). Pass since={seq} for envelope deltas. Streaming clients can use SSE at https://asha.news/api/conflict/stream instead.
入力スキーマ
{
"type": "object",
"properties": {
"since": {
"type": "integer",
"description": "Envelope sequence cursor; returns only envelopes with seq greater than this."
}
}
}⚪conflict_events(since, bbox, limit)
Geolocated Conflict Monitor events (strike, explosion, intercept, movement, statement, thermal_confirmation) with severity, verification status, and EN/AR summaries. Filter with bbox=w,s,e,n; pass since={seq} for deltas.
入力スキーマ
{
"type": "object",
"properties": {
"since": {
"type": "integer",
"description": "Envelope sequence cursor for delta polls."
},
"bbox": {
"type": "string",
"description": "Bounding box \"w,s,e,n\" (lon/lat degrees), e.g. 34,29,36,34."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Max events (default 50)."
}
}
}🟢asha_editorial_guidelines
Asha News editorial voice contract: evidence-first, openly pro-Palestine, citations preserved. Read before generating derived briefs, titles, or social posts.
入力スキーマ
{
"type": "object",
"properties": {}
}⚪asha_mint_share_link(target_type, target_id)
Mint the stable asha.news/s/<code> short link for an article, generated brief, story cluster, or allowlisted route. Idempotent — the same target always returns the same code. Use this instead of pasting long URLs; the short link carries social preview metadata.
入力スキーマ
{
"type": "object",
"properties": {
"target_type": {
"type": "string",
"enum": [
"article",
"generated",
"cluster",
"route"
],
"description": "What is being shared."
},
"target_id": {
"type": "string",
"description": "Article/brief/cluster id, or an allowlisted site path for target_type=route."
}
},
"required": [
"target_type",
"target_id"
]
}🟡asha_subscribe_newsletter(email, options, lang)
Start a DOUBLE OPT-IN newsletter signup for an email address. Asha emails a confirmation link; nothing is delivered until the person clicks it. Only submit an address the person gave you in this conversation, and tell them to check their inbox — you cannot confirm on their behalf.
入力スキーマ
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The subscriber's own email address."
},
"options": {
"type": "array",
"items": {
"type": "string",
"enum": [
"daily",
"breaking",
"sunday"
]
},
"description": "Which sends to request. Default [\"daily\"]."
},
"lang": {
"type": "string",
"enum": [
"en",
"ar"
],
"description": "Issue language (default en)."
}
},
"required": [
"email"
]
}推奨プロンプト
asha_searchasha_searchコミュニティ
エビデンス