MCP server for managing news feeds, recap links, and notes in a Turso database, with integrations for GitHub workflows, OpenAI, and external news APIs
Server has 13 tools with explicit schemas and descriptions. Naming follows verb_noun convention (add, get_weather, fetch_news_by_topic, publish_news, list_news, update_news, delete_news). Descriptions are present but vary in quality (10-200 chars). All parameters have type definitions and descriptions. However, critical gaps exist: no error handling guidance, no output schemas documented, no parameter constraints (enums, ranges), no idempotency hints on write operations, and no confirmation patterns on destructive operations. Tool composition is reasonable but some tools lack context about prerequisites or dependencies.
Add two numbers
Delete a news from the NewsFeed table and trigger a new build
Retrieve latest news from a specific media (e.g. Le monde) via NewsAPI
Retrieve latest news about a specific topic via NewsAPI
Retrieve a single news from the NewsFeed table by its id
Retrieve a single link from the RecapLink table by its id
Return the weather for a current GPS location
No output schemas documented. LLMs cannot predict response structure for downstream tool chaining. publish_news returns {success, message, slug} but this is inferred from code, not declared in tool metadata.
No error handling guidance. Tools return success/failure dicts but do not guide LLM on recovery. E.g., get_news returns {success: false, message: 'No news found'}, should suggest 'Try list_news() to see available IDs' or similar.
Destructive operations (delete_news) lack confirmation or dry-run pattern. Agents can permanently delete records without a safety gate. No idempotent hints on write operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2026-07-28+ | v2 |
List news from the NewsFeed table, most recent first
List links from the RecapLink table, most recently added first
Insert a news in the Turso Database and trigger a new build. `context` is the factual summary of the source, `lecture` the author's own commentary. Leaving `lecture` empty produces an old-format entry.
Insert a new note for En Ce Moment in the Turso Database and trigger a new build
Insert a new link in the RecapLink table of the Turso Database
Update an existing news in the NewsFeed table and trigger a new build. Only the provided fields are updated. Updating the title also refreshes the slug accordingly.
Parameter constraints missing. fetch_news_by_topic accepts 'topic' as free-form string with no length, format, or content restrictions. list_news/list_recap_links accept limit/offset with no min/max bounds documented.
Tool descriptions lack context about dependencies and prerequisites. publish_news triggers a GitHub rebuild but does not explain what that means or when it happens. No mention of required environment variables (NEWS_API_KEY) in tool descriptions.