baba News by baba Hebrew

Israeli news in Hebrew and English: stories, sources, comparisons, coverage gaps, people and trends.

Should I use this

Quality & Safety

A
Description quality
91%
Schema completeness
91%
Naming quality
81%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • LOWTool 'brief_get' description lacks action verbin brief_get
  • LOWTool 'trending_list' description lacks action verbin trending_list
  • LOWTool 'blindspots_list' description lacks action verbin blindspots_list
  • LOWTool 'changes_list' description lacks action verbin changes_list
  • LOWTool 'topics_list' description lacks action verbin topics_list

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,452Tokens (tool definitions)
~1.8 KBTypical response size
Significant attention impact (2.70% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "baba-news": {
      "url": "https://news.itsbaba.com/mcp"
    }
  }
}

Remote endpoints

https://news.itsbaba.com/mcpstreamable-http

What it can do

Tool inventory

Tools (16)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢stories_list(lang, state, topic, source, since, ...)

List stories. Requires the stories API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    },
    "state": {
      "type": "string",
      "description": "Cluster state. Unknown values are ignored."
    },
    "topic": {
      "type": "string",
      "description": "Desk id. Repeatable."
    },
    "source": {
      "type": "string",
      "description": "Newsroom key. Repeatable."
    },
    "since": {
      "type": "integer",
      "minimum": 0,
      "maximum": 30,
      "description": "Jerusalem calendar dates back, 0-30, today inclusive. Non-integer or negative values are 400; values above 30 are clamped to 30."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 40,
      "description": "Page size. Non-integer or negative values are 400; values above 100 are clamped to 100 and echoed as page.limit."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque keyset cursor from a previous page nextCursor. Malformed values are 400."
    }
  },
  "required": [],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢stories_get(ckey, lang)

Story detail: members, timeline, framing. Requires the stories API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "ckey": {
      "type": "integer",
      "minimum": 1
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    }
  },
  "required": [
    "ckey"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢sources_list(lang)

List newsrooms. Requires the sources API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    }
  },
  "required": [],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢sources_get(key)

One newsroom, with profile when computed. Requires the sources API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢brief_get(lang)

Today in Brief. Requires the brief API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    }
  },
  "required": [],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢search_list(q, lang, state, topic, source, ...)

Search stories. Requires the search API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120,
      "description": "2-120 characters. Matches title, summary, and entities. Search lives on /search only."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    },
    "state": {
      "type": "string",
      "description": "Cluster state. Unknown values are ignored."
    },
    "topic": {
      "type": "string",
      "description": "Desk id. Repeatable."
    },
    "source": {
      "type": "string",
      "description": "Newsroom key. Repeatable."
    },
    "since": {
      "type": "integer",
      "minimum": 0,
      "maximum": 30,
      "description": "Jerusalem calendar dates back, 0-30, today inclusive. Non-integer or negative values are 400; values above 30 are clamped to 30."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 40,
      "description": "Page size. Non-integer or negative values are 400; values above 100 are clamped to 100 and echoed as page.limit."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque keyset cursor from a previous page nextCursor. Malformed values are 400."
    }
  },
  "required": [
    "q"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢people_list(lang, limit)

People in the last 24 hours. Requires the people API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    }
  },
  "required": [],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢threads_list(lang, minNodes, limit, cursor)

List running stories. Requires the stories API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    },
    "minNodes": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 2,
      "description": "Smallest number of instalments a thread must have, 1-50. One cluster is not yet a running story, so the default is 2."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 40,
      "description": "Page size. Non-integer or negative values are 400; values above 100 are clamped to 100 and echoed as page.limit."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque keyset cursor from a previous page nextCursor. Malformed values are 400."
    }
  },
  "required": [],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢threads_get(id, lang, limit)

One running story and its whole arc. Every instalment we still hold, newest first, in the same shape as a story on /v1/stories. The arc is bounded by limit and returned whole rather than paged. Requires the stories API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 40,
      "description": "Instalments to return, 1-100. Non-integer or negative values are 400."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢trending_list(lang, metric, window, limit, cursor)

Stories picking up speed. Requires the stories API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    },
    "metric": {
      "type": "string",
      "enum": [
        "acceleration",
        "velocity",
        "heat",
        "importance"
      ],
      "default": "acceleration",
      "description": "Which computed signal orders the page. Unknown values are 400."
    },
    "window": {
      "type": "integer",
      "minimum": 15,
      "maximum": 10080,
      "description": "How many minutes back to consider a state row current, 15-10080. Values below 15 are raised to 15; above 10080 are clamped."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 40,
      "description": "Page size. Non-integer or negative values are 400; values above 100 are clamped to 100 and echoed as page.limit."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque keyset cursor from a previous page nextCursor. Ranked by the same metric, so a cursor is only valid for the metric that produced it. Malformed values are 400."
    }
  },
  "required": [],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢blindspots_list(lang, state, side, window, limit, ...)

Coverage gaps, by camp. Requires the stories API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    },
    "state": {
      "type": "string",
      "enum": [
        "blindspot",
        "undercovered"
      ],
      "description": "Repeatable. Unknown values are 400, unlike on /v1/stories, because this resource is only about these two."
    },
    "side": {
      "type": "string",
      "enum": [
        "left",
        "centre",
        "right",
        "haredi",
        "religious",
        "arab",
        "russian",
        "business",
        "official"
      ],
      "description": "Return only stories the named camp did not run. Unknown values are 400."
    },
    "window": {
      "type": "integer",
      "minimum": 15,
      "maximum": 10080,
      "description": "How many minutes back to consider a state row current, 15-10080. Values below 15 are raised to 15; above 10080 are clamped."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 40,
      "description": "Page size. Non-integer or negative values are 400; values above 100 are clamped to 100 and echoed as page.limit."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque keyset cursor from a previous page nextCursor. Malformed values are 400."
    }
  },
  "required": [],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢stories_members(ckey, lang, side, lean, limit, ...)

Every article in a cluster, paged. The same member records /v1/stories/{ckey} returns, but paged and filterable by side or lean. side and lean come from the source registry rather than the row, so a filtered page can be shorter than its limit while still issuing a cursor. Requires the stories API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "ckey": {
      "type": "integer",
      "minimum": 1
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    },
    "side": {
      "type": "string",
      "enum": [
        "left",
        "centre",
        "right",
        "haredi",
        "religious",
        "arab",
        "russian",
        "business",
        "official"
      ],
      "description": "Only members from this camp. Unknown values are 400."
    },
    "lean": {
      "type": "string",
      "enum": [
        "left",
        "center",
        "right",
        "unrated"
      ],
      "description": "Only members with this political lean. Unknown values are 400."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 40,
      "description": "Page size. Non-integer or negative values are 400; values above 100 are clamped to 100 and echoed as page.limit."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque keyset cursor from a previous page nextCursor. Malformed values are 400."
    }
  },
  "required": [
    "ckey"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢changes_list(lang, since, limit, cursor)

Incremental change feed. Requires the stories API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    },
    "since": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 instant. Runs forward in time from here. Values older than seven days are raised to seven days ago, which is as far back as cluster state is kept warm."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "default": 100,
      "description": "Page size, 1-500. Non-integer or negative values are 400; values above 500 are clamped."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque keyset cursor from a previous page nextCursor. Malformed values are 400."
    }
  },
  "required": [
    "since"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢topics_list(lang, days)

The desk register with live volume. Requires the sources API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 7,
      "default": 1,
      "description": "Days back, 1-7. Non-integer or negative values are 400; values above 7 are clamped."
    }
  },
  "required": [],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢sources_activity(key, days)

Measured newsroom behaviour. What a newsroom did rather than what its profile says it is: crawl outcomes over the window, and the byline, originality, opinion, press-release and filing-lag rates the profile cron computed over its own 30-day window. successRate is over finished runs only, so a crawl still in flight never reads as a failure. Requires the sources API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string"
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 30,
      "default": 7,
      "description": "Days back, 1-30. Non-integer or negative values are 400; values above 30 are clamped."
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢people_get(id, lang)

One person, with every spelling folded into them. Identity and aliases. recentCoverage is always null: resolving a person to their stories has no index behind it today, and the field is in the contract so filling it later is additive. Requires the people API scope. English is the fallback for untranslated fields.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "he"
      ],
      "default": "en",
      "description": "Output language. Hebrew falls back to English per field when a row is missing."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded16 tools