Skip to main content
Glama

get_subreddit_info

Retrieve detailed information about any Reddit community, including description, subscriber count, and activity metrics, using the subreddit name.

Instructions

Get information about a subreddit

Args: subreddit: The name of the subreddit (without r/)

Returns: Human readable string containing subreddit information

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
subredditYes

Implementation Reference

  • MCP tool handler decorated with @mcp.tool(). It checks if client is initialized, calls reddit_client.get_subreddit_info, formats the dictionary into a human-readable string, handles errors.
    @mcp.tool()
    async def get_subreddit_info(subreddit: str) -> str:
        """
        Get information about a subreddit
    
        Args:
            subreddit: The name of the subreddit (without r/)
    
        Returns:
            Human readable string containing subreddit information
        """
        if reddit_client is None:
            return """Error: Reddit client not initialized. 
    
    To fix this:
    1. Copy env.example to .env: cp env.example .env
    2. Edit .env with your Reddit API credentials:
       - Get credentials from https://old.reddit.com/prefs/apps/
       - Create a 'script' type app
       - Fill in REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET, and REDDIT_USER_AGENT
    3. Restart the MCP server
    
    Example .env content:
    REDDIT_CLIENT_ID=your_14_char_client_id
    REDDIT_CLIENT_SECRET=your_27_char_client_secret  
    REDDIT_USER_AGENT=reddit-mcp-tool:v0.2.0 (by /u/yourusername)"""
        
        try:
            subreddit_info = await reddit_client.get_subreddit_info(subreddit)
            
            result = (
                f"**r/{subreddit_info['name']}**\n\n"
                f"Title: {subreddit_info['title']}\n"
                f"Subscribers: {subreddit_info['subscribers']:,}\n"
                f"Active Users: {subreddit_info['active_user_count'] or 'N/A'}\n"
                f"NSFW: {subreddit_info['over18']}\n"
                f"URL: {subreddit_info['url']}\n\n"
                f"Description:\n{subreddit_info['public_description']}\n"
            )
            
            if subreddit_info['description'] and subreddit_info['description'] != subreddit_info['public_description']:
                result += f"\nFull Description:\n{subreddit_info['description']}\n"
            
            return result
            
        except Exception as e:
            logger.error(f"Error getting subreddit info for r/{subreddit}: {str(e)}")
            return f"Error getting subreddit info for r/{subreddit}: {str(e)}"
  • Core helper method in RedditClient class that uses asyncpraw to fetch subreddit details and returns a structured dictionary with key info like title, subscribers, description, etc.
    async def get_subreddit_info(self, subreddit_name: str) -> Dict[str, Any]:
        """Get information about a subreddit."""
        try:
            subreddit = await self.reddit.subreddit(subreddit_name)
            
            return {
                "name": subreddit.display_name,
                "title": subreddit.title,
                "description": subreddit.description[:500] + "..." if len(subreddit.description) > 500 else subreddit.description,
                "subscribers": subreddit.subscribers,
                "active_user_count": subreddit.active_user_count,
                "created_utc": subreddit.created_utc,
                "over18": subreddit.over18,
                "public_description": subreddit.public_description,
                "url": f"https://reddit.com/r/{subreddit.display_name}",
            }
            
        except Exception as e:
            raise Exception(f"Error getting subreddit info for r/{subreddit_name}: {str(e)}")

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/GeLi2001/reddit-mcp'

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