Skip to main content
Glama
rhettlong

USCardForum MCP Server

by rhettlong

get_user_replies

Fetch replies made by a user across topics to analyze contributions, find data points, and evaluate participation quality in the USCardForum community.

Instructions

Fetch replies/posts made by a user in other topics.

Args:
    username: The user's handle
    offset: Pagination offset (0, 30, 60, ...)

Returns a list of UserAction objects with:
- topic_id: Which topic they replied to
- post_number: Their post number in that topic
- title: Topic title
- excerpt: Preview of their reply
- created_at: When they replied

Use this to:
- See a user's contributions across topics
- Find their data points and experiences
- Evaluate the quality of their participation

Paginate with offset in increments of 30.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
usernameYesThe user's handle
offsetNoPagination offset (0, 30, 60, ...)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Implementation Reference

  • The MCP tool handler for 'get_user_replies'. Decorated with @mcp.tool(), defines input schema via Annotated Fields, and delegates to the DiscourseClient for execution.
    @mcp.tool()
    def get_user_replies(
        username: Annotated[
            str,
            Field(description="The user's handle"),
        ],
        offset: Annotated[
            int | None,
            Field(default=None, description="Pagination offset (0, 30, 60, ...)"),
        ] = None,
    ) -> list[UserAction]:
        """
        Fetch replies/posts made by a user in other topics.
    
        Args:
            username: The user's handle
            offset: Pagination offset (0, 30, 60, ...)
    
        Returns a list of UserAction objects with:
        - topic_id: Which topic they replied to
        - post_number: Their post number in that topic
        - title: Topic title
        - excerpt: Preview of their reply
        - created_at: When they replied
    
        Use this to:
        - See a user's contributions across topics
        - Find their data points and experiences
        - Evaluate the quality of their participation
    
        Paginate with offset in increments of 30.
        """
        return get_client().get_user_replies(username, offset=offset)
  • Registration via import into server_tools __init__.py, exposing get_user_replies for use in the MCP server.
    from .users import (
        get_user_summary,
        get_user_topics,
        get_user_replies,
        get_user_actions,
        get_user_badges,
        get_user_following,
        get_user_followers,
        get_user_reactions,
        list_users_with_badge,
    )
  • Top-level re-export of all tools including get_user_replies in the main server entrypoint.
    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,
    )
  • Client-side API method implementing get_user_replies by calling get_user_actions with filter=5 (replies). Called by the DiscourseClient.
    def get_user_replies(
        self,
        username: str,
        offset: int | None = None,
    ) -> list[UserAction]:
        """Fetch user's replies.
    
        Args:
            username: User handle
            offset: Optional pagination offset
    
        Returns:
            List of reply action objects
        """
        return self.get_user_actions(username, filter=5, offset=offset)
  • Shared helper get_client() that provides the DiscourseClient instance used by all MCP tools, including auto-login.
    def get_client() -> DiscourseClient:
        """Get or create the Discourse client instance."""
        global _client, _login_attempted
    
        if _client is None:
            base_url = os.environ.get("USCARDFORUM_URL", "https://www.uscardforum.com")
            timeout = float(os.environ.get("USCARDFORUM_TIMEOUT", "15.0"))
            _client = DiscourseClient(base_url=base_url, timeout_seconds=timeout)
    
            # Auto-login if credentials are provided
            if not _login_attempted:
                _login_attempted = True
                username = os.environ.get("NITAN_USERNAME")
                password = os.environ.get("NITAN_PASSWORD")
    
                if username and password:
                    try:
                        result = _client.login(username, password)
                        if result.success:
                            print(f"[uscardforum] Auto-login successful as '{result.username}'")
                        elif result.requires_2fa:
                            print(
                                "[uscardforum] Auto-login failed: 2FA required. Use login() tool with second_factor_token."
                            )
                        else:
                            print(
                                f"[uscardforum] Auto-login failed: {result.error or 'Unknown error'}"
                            )
                    except Exception as e:  # pragma: no cover - logging side effect
                        print(f"[uscardforum] Auto-login error: {e}")
    
        return _client

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