Skip to main content
Glama
rhettlong

USCardForum MCP Server

by rhettlong

bookmark_post

Save posts for later reference with optional labels, reminders, and auto-delete preferences. Requires authentication to USCardForum for managing credit card discussion content.

Instructions

Bookmark a post for later reference. REQUIRES AUTHENTICATION. Args: post_id: The numeric post ID to bookmark name: Optional label/name for the bookmark reminder_type: Optional reminder setting reminder_at: Optional reminder datetime (ISO format) auto_delete_preference: When to auto-delete (default: 3) - 0: Never - 1: When reminder sent - 2: On click - 3: Clear after 3 days Must call login() first. Returns a Bookmark object with the created bookmark information. Use to save interesting posts for later reference.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
post_idYesThe numeric post ID to bookmark
nameNoLabel/name for the bookmark
reminder_typeNoReminder setting
reminder_atNoReminder datetime (ISO format)
auto_delete_preferenceNoWhen to auto-delete: 0=never, 1=when reminder sent, 2=on click, 3=after 3 days (default)

Implementation Reference

  • MCP tool handler for bookmark_post. Defines input schema with Pydantic Field descriptions and proxies execution to the underlying client.bookmark_post method. Requires prior authentication via login tool.
    @mcp.tool() def bookmark_post( post_id: Annotated[ int, Field(description="The numeric post ID to bookmark"), ], name: Annotated[ str | None, Field(default=None, description="Label/name for the bookmark"), ] = None, reminder_type: Annotated[ int | None, Field(default=None, description="Reminder setting"), ] = None, reminder_at: Annotated[ str | None, Field(default=None, description="Reminder datetime (ISO format)"), ] = None, auto_delete_preference: Annotated[ int | None, Field( default=3, description="When to auto-delete: 0=never, 1=when reminder sent, 2=on click, 3=after 3 days (default)", ), ] = 3, ) -> Bookmark: """ Bookmark a post for later reference. REQUIRES AUTHENTICATION. Args: post_id: The numeric post ID to bookmark name: Optional label/name for the bookmark reminder_type: Optional reminder setting reminder_at: Optional reminder datetime (ISO format) auto_delete_preference: When to auto-delete (default: 3) - 0: Never - 1: When reminder sent - 2: On click - 3: Clear after 3 days Must call login() first. Returns a Bookmark object with the created bookmark information. Use to save interesting posts for later reference. """ return get_client().bookmark_post( post_id, name=name, reminder_type=reminder_type, reminder_at=reminder_at, auto_delete_preference=auto_delete_preference, )
  • Re-exports the bookmark_post tool from the auth submodule, making it available at the server_tools package level for easy import in the main server.
    from .auth import ( login, get_current_session, get_notifications, bookmark_post, subscribe_topic, )
  • Imports all MCP tools including bookmark_post from server_tools package. This exposure in the server entrypoint ensures the @mcp.tool decorated functions are registered when the server runs.
    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, )
  • Underlying API helper method in AuthAPI that performs the actual HTTP POST request to /bookmarks.json to create the bookmark, handling CSRF, form data, and response parsing. Called indirectly by the MCP handler via client proxy.
    def bookmark_post( self, post_id: int, name: str | None = None, reminder_type: int | None = None, reminder_at: str | None = None, auto_delete_preference: int | None = 3, ) -> Bookmark: """Bookmark a post (requires auth). Args: post_id: Post ID to bookmark name: Optional bookmark name reminder_type: Optional reminder type reminder_at: Optional reminder datetime (ISO format) auto_delete_preference: Auto-delete setting (default: 3) Returns: Created bookmark """ self._require_auth() token = self._csrf_token or self.fetch_csrf_token() form: dict[str, Any] = { "bookmarkable_type": "Post", "bookmarkable_id": int(post_id), } if name is not None: form["name"] = name if reminder_type is not None: form["reminder_type"] = str(reminder_type) if reminder_at is not None: form["reminder_at"] = reminder_at if auto_delete_preference is not None: form["auto_delete_preference"] = str(int(auto_delete_preference)) headers = { "Accept": "*/*", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "X-CSRF-Token": token, "X-Requested-With": "XMLHttpRequest", "Referer": f"{self._base_url}/", } payload = self._post("/bookmarks.json", data=form, headers=headers) return Bookmark( id=payload.get("id", 0), bookmarkable_id=post_id, bookmarkable_type="Post", name=name, auto_delete_preference=auto_delete_preference or 3, )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rhettlong/uscardforum-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server