Skip to main content
Glama
Reddit MCP Server

Reddit MCP Server

by eliasbiondo

reddit_get_user_posts

Retrieve a Reddit user's submitted posts by username, with options to filter by listing category, time window, and maximum result count.

Instructions

Get a Reddit user's submitted posts.

Args: username: Reddit username without u/ prefix (e.g., 'spez') limit: Maximum number of posts (default: 25, max: 100) category: Listing category (hot, top, new). Default: new time_filter: Time window for top listings (hour, day, week, month, year, all). Default: all

Returns: An object with a 'posts' array.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "username": "<username>"
    },
    "name": "reddit_get_user_posts"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
categoryNo
usernameYes
time_filterNo

Output Schema

NameRequiredDescriptionDefault
postsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.2.1
    • addedOutput schema / description
      Added value: +"Tool response for listings of posts (subreddit or user submissions)."
    • addedOutput schema / properties / posts
      Added value: +{
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "items": {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "posts"
      +]
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  2. First observedv0.1.2

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description has to carry the full safety profile, and it mostly does not. It does disclose useful limits: the max value of 100 for limit, the allowed category and time_filter values, and the shape of the response. It says nothing about rate limits, page/auth requirements, or what happens for a deleted, suspended, or private user. That is a real gap for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence comes first, then compact Args and Returns blocks in the standard docstring layout. It is appropriately sized with no filler. The Returns line is mostly redundant because an output schema exists, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema is present, so return values are already covered, and the description is complete enough to call the tool. It leaves out error behavior for missing users and any note about rate limits or authentication, which matters for a README-level public API surface. It is usable but not fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage and no enums, so the description has to document the 4 parameters, and it does. It gives the username format (no u/ prefix) and lists the allowed category and time_filter values that the schema leaves as bare strings. One flaw holds it below 5: the defaults it states, category=new and time_filter=all, differ from the schema's null defaults, so an agent omitting those arguments gets a different behavior from what the prose implies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb and resource: fetch a Reddit user's submitted posts. That is enough to separate it from reddit_get_user (profile) and reddit_get_subreddit_posts (community feed). It never names a sibling explicitly, but the noun phrase alone makes the difference clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The Args block tells the agent how to shape a request (username format, limit cap, category and time_filter choices), so its use is implied. Nothing says when to pick this tool instead of reddit_get_user or reddit_search, and nothing covers the cases where a call should be skipped. A 2 would be too harsh, but this is only adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.