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

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