Skip to main content
Glama
Hawstein

MCP Server Reddit

by Hawstein

get_subreddit_rising_posts

Retrieve trending posts from any subreddit to identify content gaining popularity before it reaches the front page.

Instructions

Get rising posts from a specific subreddit

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
subreddit_nameYesName of the subreddit (e.g. 'Python', 'news')
limitNoNumber of posts to return (default: 10)

Implementation Reference

  • The main handler function that fetches rising posts from the specified subreddit using the redditwarp SYNC client and constructs Post objects using the _build_post helper.
    def get_subreddit_rising_posts(self, subreddit_name: str, limit: int = 10) -> list[Post]:
        """Get rising posts from a specific subreddit"""
        posts = []
        for subm in self.client.p.subreddit.pull.rising(subreddit_name, limit):
            posts.append(self._build_post(subm))
        return posts
  • Input schema definition for the tool, specifying required 'subreddit_name' parameter and optional 'limit'.
    Tool(
        name=RedditTools.GET_SUBREDDIT_RISING_POSTS.value,
        description="Get rising posts from a specific subreddit",
        inputSchema={
            "type": "object",
            "properties": {
                "subreddit_name": {
                    "type": "string",
                    "description": "Name of the subreddit (e.g. 'Python', 'news')",
                },
                "limit": {
                    "type": "integer",
                    "description": "Number of posts to return (default: 10)",
                    "default": 10,
                    "minimum": 1,
                    "maximum": 100
                }
            },
            "required": ["subreddit_name"]
        }
    ),
  • Registration and dispatch logic in the call_tool handler that validates arguments and invokes the get_subreddit_rising_posts method.
    case RedditTools.GET_SUBREDDIT_RISING_POSTS.value:
        subreddit_name = arguments.get("subreddit_name")
        if not subreddit_name:
            raise ValueError("Missing required argument: subreddit_name")
        limit = arguments.get("limit", 10)
        result = reddit_server.get_subreddit_rising_posts(subreddit_name, limit)
  • Supporting helper function that converts a redditwarp submission object into a structured Post model instance, used by the handler.
    def _build_post(self, submission) -> Post:
        """Helper method to build Post object from submission"""
        return Post(
            id=submission.id36,
            title=submission.title,
            author=submission.author_display_name or '[deleted]',
            score=submission.score,
            subreddit=submission.subreddit.name,
            url=submission.permalink,
            created_at=submission.created_at.astimezone().isoformat(),
            comment_count=submission.comment_count,
            post_type=self._get_post_type(submission),
            content=self._get_post_content(submission)
        )
  • Pydantic model defining the output structure of Post objects returned by the tool.
    class Post(BaseModel):
        id: str
        title: str
        author: str
        score: int
        subreddit: str
        url: str
        created_at: str
        comment_count: int
        post_type: PostType
        content: str | None

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

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