get_notifications
Fetch and manage notifications from USCardForum to monitor replies, mentions, likes, and topic updates you follow. Requires authentication.
Instructions
Fetch your notifications. REQUIRES AUTHENTICATION.
Args:
since_id: Only get notifications newer than this ID (optional)
only_unread: Only return unread notifications (default: False)
limit: Maximum number to return (optional)
Must call login() first.
Returns a list of Notification objects with:
- id: Notification ID
- notification_type: Type of notification
- read: Whether read
- topic_id: Related topic
- post_number: Related post
- created_at: When created
Use to:
- Check for new replies to your posts
- See mentions and likes
- Track topic updates you're watching
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| since_id | No | Only get notifications newer than this ID | |
| only_unread | No | Only return unread notifications | |
| limit | No | Maximum number to return |
Implementation Reference
- The primary MCP tool handler for 'get_notifications', decorated with @mcp.tool(). Defines input schema via Annotated Fields and docstring. Delegates execution to DiscourseClient.get_notifications() after authentication.@mcp.tool() def get_notifications( since_id: Annotated[ int | None, Field(default=None, description="Only get notifications newer than this ID"), ] = None, only_unread: Annotated[ bool, Field(default=False, description="Only return unread notifications"), ] = False, limit: Annotated[ int | None, Field(default=None, description="Maximum number to return"), ] = None, ) -> list[Notification]: """ Fetch your notifications. REQUIRES AUTHENTICATION. Args: since_id: Only get notifications newer than this ID (optional) only_unread: Only return unread notifications (default: False) limit: Maximum number to return (optional) Must call login() first. Returns a list of Notification objects with: - id: Notification ID - notification_type: Type of notification - read: Whether read - topic_id: Related topic - post_number: Related post - created_at: When created Use to: - Check for new replies to your posts - See mentions and likes - Track topic updates you're watching """ return get_client().get_notifications( since_id=since_id, only_unread=only_unread, limit=limit )
- src/uscardforum/api/auth.py:181-212 (helper)Core implementation in AuthAPI that makes HTTP GET request to /notifications.json, parses API response into Notification Pydantic models, and applies filtering logic for since_id, only_unread, and limit.def get_notifications( self, since_id: int | None = None, only_unread: bool = False, limit: int | None = None, ) -> list[Notification]: """Fetch notifications (requires auth). Args: since_id: Only notifications after this ID only_unread: Only unread notifications limit: Maximum notifications to return Returns: List of notification objects """ self._require_auth() payload = self._get("/notifications.json") raw_notifications = payload.get("notifications", []) notifications = [Notification(**n) for n in raw_notifications] # Apply filters if since_id is not None: notifications = [n for n in notifications if n.id > since_id] if only_unread: notifications = [n for n in notifications if not n.read] if limit is not None: notifications = notifications[: max(0, int(limit))] return notifications
- src/uscardforum/client.py:490-508 (helper)DiscourseClient wrapper method that delegates get_notifications call to the underlying AuthAPI instance.def get_notifications( self, since_id: int | None = None, only_unread: bool = False, limit: int | None = None, ) -> list[Notification]: """Fetch notifications (requires auth). Args: since_id: Only notifications after this ID only_unread: Only unread notifications limit: Maximum notifications to return Returns: List of notification objects """ return self._auth.get_notifications( since_id=since_id, only_unread=only_unread, limit=limit )
- src/uscardforum/server_tools/__init__.py:52-58 (registration)Registration via import and re-export of the get_notifications tool from auth.py submodule, making it available at the server_tools package level.from .auth import ( login, get_current_session, get_notifications, bookmark_post, subscribe_topic, )
- src/uscardforum/server.py:15-45 (registration)Imports get_notifications (along with all other MCP tools) into the main server entrypoint module for use with the FastMCP server.from uscardforum.server_tools import ( analyze_user, bookmark_post, compare_cards, find_data_points, get_all_topic_posts, get_categories, get_current_session, get_hot_topics, get_new_topics, get_notifications, get_top_topics, get_topic_info, get_topic_posts, get_user_actions, get_user_badges, get_user_followers, get_user_following, get_user_reactions, get_user_replies, get_user_summary, get_user_topics, list_users_with_badge, login, research_topic, resource_categories, resource_hot_topics, resource_new_topics, search_forum, subscribe_topic, )