940dd0c08e
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
33 lines
944 B
Python
33 lines
944 B
Python
"""MCP tools for Fable RSS feed management."""
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from fable_mcp.client import FableClient
|
|
|
|
|
|
async def list_rss_feeds(client: FableClient) -> dict[str, Any]:
|
|
"""List the user's RSS feeds."""
|
|
return await client.get("/api/briefing/feeds")
|
|
|
|
|
|
async def add_rss_feed(
|
|
client: FableClient,
|
|
*,
|
|
url: str,
|
|
title: str | None = None,
|
|
category: str | None = None,
|
|
) -> dict[str, Any]:
|
|
"""Add a new RSS feed. Title is optional — auto-populated from feed metadata."""
|
|
payload: dict[str, Any] = {"url": url}
|
|
if title:
|
|
payload["title"] = title
|
|
if category:
|
|
payload["category"] = category
|
|
return await client.post("/api/briefing/feeds", json=payload)
|
|
|
|
|
|
async def remove_rss_feed(client: FableClient, *, feed_id: int) -> dict[str, Any]:
|
|
"""Remove an RSS feed by ID."""
|
|
return await client.delete(f"/api/briefing/feeds/{feed_id}")
|