get_user_topics
Retrieve forum topics created by a specific user to analyze their discussion contributions and identify areas of expertise within the US credit card community.
Instructions
Fetch topics created by a specific user.
Args:
username: The user's handle
page: Page number for pagination (optional)
Returns a list of topic objects with:
- id: Topic ID
- title: Topic title
- posts_count: Number of replies
- views: View count
- created_at: When created
- category_id: Forum category
Use this to:
- See what discussions a user has initiated
- Find expert users in specific areas
- Research a user's areas of interest
Paginate by incrementing the page parameter.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | The user's handle | |
| page | No | Page number for pagination |
Implementation Reference
- Primary MCP tool handler decorated with @mcp.tool(). Defines input schema via Annotated Fields for username and optional page, includes detailed docstring, and delegates execution to the client.get_user_topics() method.@mcp.tool() def get_user_topics( username: Annotated[ str, Field(description="The user's handle"), ], page: Annotated[ int | None, Field(default=None, description="Page number for pagination"), ] = None, ) -> list[dict[str, Any]]: """ Fetch topics created by a specific user. Args: username: The user's handle page: Page number for pagination (optional) Returns a list of topic objects with: - id: Topic ID - title: Topic title - posts_count: Number of replies - views: View count - created_at: When created - category_id: Forum category Use this to: - See what discussions a user has initiated - Find expert users in specific areas - Research a user's areas of interest Paginate by incrementing the page parameter. """ return get_client().get_user_topics(username, page=page)
- src/uscardforum/api/users.py:128-151 (helper)Core implementation in UsersAPI.get_user_topics that performs the HTTP GET request to the Discourse API endpoint `/topics/created-by/{username}.json`, handles pagination via page parameter, and extracts the topics list from the response.def get_user_topics( self, username: str, page: int | None = None, ) -> list[dict[str, Any]]: """Fetch topics created by user. Args: username: User handle page: Optional page number Returns: List of topic objects (raw API format) """ params_list: list[tuple[str, Any]] = [] if page is not None: params_list.append(("page", int(page))) payload = self._get( f"/topics/created-by/{username}.json", params=params_list, ) return payload.get("topic_list", {}).get("topics", [])
- src/uscardforum/client.py:359-375 (helper)Client wrapper method DiscourseClient.get_user_topics that delegates to UsersAPI and enriches the topics with category names using _enrich_with_categories.def get_user_topics( self, username: str, page: int | None = None, ) -> list[dict[str, Any]]: """Fetch topics created by user. Args: username: User handle page: Optional page number Returns: List of topic objects """ topics = self._users.get_user_topics(username, page=page) return self._enrich_with_categories(topics)
- src/uscardforum/server.py:15-45 (registration)Imports get_user_topics from server_tools in the server entrypoint, ensuring the tool is loaded and registered via the @mcp.tool() decorator.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, )
- src/uscardforum/server_tools/__init__.py:37-47 (registration)Re-exports get_user_topics from users.py module into server_tools namespace for convenient import in server.py.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, )