Skip to main content
Glama
rhettlong

USCardForum MCP Server

by rhettlong

get_categories

Retrieve all forum categories to filter content, navigate sections, and identify topic areas in the USCardForum community.

Instructions

Get a mapping of all forum categories.

Returns a CategoryMap object with category_id to category name mapping.
Categories organize topics by subject area.

Common USCardForum categories include sections for:
- Credit card applications and approvals
- Bank account bonuses
- Travel and redemptions
- Data points and experiences

Use category IDs to:
- Filter search results by category
- Understand which section a topic belongs to
- Navigate to specific areas of interest

The mapping includes both main categories and subcategories.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoriesNoID to name mapping

Implementation Reference

  • The MCP tool handler for 'get_categories'. Decorated with @mcp.tool(), it fetches the CategoryMap from the DiscourseClient and returns it as the tool output.
    @mcp.tool()
    def get_categories() -> CategoryMap:
        """
        Get a mapping of all forum categories.
    
        Returns a CategoryMap object with category_id to category name mapping.
        Categories organize topics by subject area.
    
        Common USCardForum categories include sections for:
        - Credit card applications and approvals
        - Bank account bonuses
        - Travel and redemptions
        - Data points and experiences
    
        Use category IDs to:
        - Filter search results by category
        - Understand which section a topic belongs to
        - Navigate to specific areas of interest
    
        The mapping includes both main categories and subcategories.
        """
        return get_client().get_category_map()
  • Pydantic BaseModel defining the output schema of the get_categories tool: a dictionary mapping category IDs to names.
    class CategoryMap(BaseModel):
        """Mapping of category IDs to names."""
    
        categories: dict[int, str] = Field(
            default_factory=dict, description="ID to name mapping"
        )
    
        def get_name(self, category_id: int) -> str | None:
            """Get category name by ID."""
            return self.categories.get(category_id)
    
        def __getitem__(self, category_id: int) -> str:
            """Get category name by ID."""
            return self.categories[category_id]
    
        def __contains__(self, category_id: int) -> bool:
            """Check if category ID exists."""
            return category_id in self.categories
    
        def items(self):
            """Iterate over category mappings."""
            return self.categories.items()
  • Multi-line import statement from server_tools that includes get_categories, registering it as an MCP tool in the FastMCP 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,
    )
  • Helper function in CategoriesAPI that builds the CategoryMap from API response, called indirectly via client.get_category_map() from the tool handler.
    def get_category_map(self, use_cache: bool = True) -> CategoryMap:
        """Get mapping of category IDs to names.
    
        Args:
            use_cache: Use cached map if available (default: True)
    
        Returns:
            CategoryMap with ID to name mapping
        """
        if use_cache and self._category_cache is not None:
            return CategoryMap(categories=self._category_cache)
    
        categories = self.get_categories()
        mapping = {cat.id: cat.name for cat in categories}
        self._category_cache = mapping
        return CategoryMap(categories=mapping)
  • Client wrapper method get_category_map() that delegates to CategoriesAPI, called by get_client().get_category_map() in the tool handler.
    def get_category_map(self) -> CategoryMap:
        """Get mapping of category IDs to names.
    
        Returns:
            CategoryMap with ID to name mapping
        """
        return self._categories.get_category_map()

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