Skip to main content
Glama

get_subreddit_info

Fetch detailed information about any Reddit community, including subscriber count, description, and activity metrics, to analyze subreddit characteristics.

Instructions

Get information about a subreddit

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
subreddit_nameYesName of the subreddit

Implementation Reference

  • Primary handler implementation for the 'get_subreddit_info' tool: validates input with Zod schema, fetches data via RedditClient, formats with formatSubredditInfo, and returns comprehensive markdown summary.
    server.addTool({ name: "get_subreddit_info", description: "Get detailed information about a subreddit including description, stats, and community analysis", parameters: z.object({ subreddit_name: z.string().describe("The subreddit name (without r/ prefix)"), }), execute: async (args) => { const client = getRedditClient() if (!client) { throw new Error("Reddit client not initialized") } const subreddit = await client.getSubredditInfo(args.subreddit_name) const formattedSubreddit = formatSubredditInfo(subreddit) return `# Subreddit Information: r/${formattedSubreddit.name} ## Overview - Name: r/${formattedSubreddit.name} - Title: ${formattedSubreddit.title} - Subscribers: ${formattedSubreddit.stats.subscribers.toLocaleString()} - Active Users: ${ typeof formattedSubreddit.stats.activeUsers === "number" ? formattedSubreddit.stats.activeUsers.toLocaleString() : formattedSubreddit.stats.activeUsers } ## Description ${formattedSubreddit.description.short} ## Detailed Description ${formattedSubreddit.description.full} ## Metadata - Created: ${formattedSubreddit.metadata.created} - Flags: ${formattedSubreddit.metadata.flags.join(", ")} ## Links - Subreddit: ${formattedSubreddit.links.subreddit} - Wiki: ${formattedSubreddit.links.wiki} ## Community Analysis - ${formattedSubreddit.communityAnalysis.replace(/\n - /g, "\n- ")} ## Engagement Tips - ${formattedSubreddit.engagementTips.replace(/\n - /g, "\n- ")}` }, })
  • RedditClient method that authenticates and fetches raw subreddit data from Reddit's API endpoint /r/{subredditName}/about.json, parsing into RedditSubreddit type.
    async getSubredditInfo(subredditName: string): Promise<RedditSubreddit> { await this.authenticate() try { const response = await this.makeRequest(`/r/${subredditName}/about.json`) if (!response.ok) { throw new Error(`HTTP ${response.status}`) } const json = (await response.json()) as RedditApiSubredditResponse const data = json.data return { displayName: data.display_name, title: data.title, description: data.description || "", publicDescription: data.public_description || "", subscribers: data.subscribers, activeUserCount: data.active_user_count ?? undefined, createdUtc: data.created_utc, over18: data.over18, subredditType: data.subreddit_type, url: data.url, } } catch { // Failed to get subreddit info throw new Error(`Failed to get subreddit info for ${subredditName}`) } }
  • Helper function that processes raw RedditSubreddit data into a rich formatted structure including stats, descriptions, metadata, links, community analysis, and engagement tips.
    export function formatSubredditInfo(subreddit: RedditSubreddit): FormattedSubredditInfo { const flags: string[] = [] if (subreddit.over18) flags.push("NSFW") if (subreddit.subredditType) flags.push(`Type: ${subreddit.subredditType}`) const ageDays = (Date.now() / 1000 - subreddit.createdUtc) / (24 * 3600) return { name: subreddit.displayName, title: subreddit.title, stats: { subscribers: subreddit.subscribers, activeUsers: subreddit.activeUserCount !== undefined ? subreddit.activeUserCount : "Unknown", }, description: { short: subreddit.publicDescription, full: subreddit.description.length > 300 ? subreddit.description.substring(0, 297) + "..." : subreddit.description, }, metadata: { created: formatTimestamp(subreddit.createdUtc), flags: flags.length ? flags : ["None"], }, links: { subreddit: `https://reddit.com${subreddit.url}`, wiki: `https://reddit.com/r/${subreddit.displayName}/wiki`, }, communityAnalysis: analyzeSubredditHealth(subreddit.subscribers, subreddit.activeUserCount, ageDays), engagementTips: getSubredditEngagementTips(subreddit), } }

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

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