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