# Reddit
import ToolInfo from "@/app/_components/tool-info";
import Badges from "@/app/_components/badges";
import TabbedCodeBlock from "@/app/_components/tabbed-code-block";
import TableOfContents from "@/app/_components/table-of-contents";
import ToolFooter from "@/app/_components/tool-footer";
import { Callout } from "nextra/components";
The Arcade Reddit MCP Server provides a pre-built set of tools for interacting with Reddit. These tools make it easy to build agents and AI apps that can:
- Submit text posts
- Comment on posts
- Reply to comments
- Get posts (title and other metadata) in a subreddit
- Get content (body) of posts
- Get top-level comments of a post
- Determine if a subreddit exists or is private
- Get rules of a subreddit
- Get the authenticated user's username
- Get posts by the authenticated user
## Available Tools
These tools are currently available in the Arcade Reddit MCP Sever.
If you need to perform an action that's not listed here, you can [get in touch
with us](mailto:contact@arcade.dev) to request a new tool, or [create your own
tools](/guides/create-tools/tool-basics/build-mcp-server) with the [Reddit auth
provider](/references/auth-providers/reddit#using-reddit-auth-in-custom-tools).
## Reddit.SubmitTextPost
Submit a text-based post to a subreddit
**Parameters**
- **`subreddit`** _(string, required)_ The name of the subreddit to which the post will be submitted.
- **`title`** _(string, required)_ The title of the submission.
- **`body`** _(string, optional)_ The body of the post in markdown format. Should never be the same as the title.
- **`nsfw`** _(boolean, optional)_ Indicates if the submission is NSFW. Default is `False`.
- **`spoiler`** _(boolean, optional)_ Indicates if the post is marked as a spoiler. Default is `False`.
- **`send_replies`** _(boolean, optional)_ If true, sends replies to the user's inbox. Default is `True`.
---
## Reddit.CommentOnPost
Comment on a Reddit post.
**Parameters**
- **`post_identifier`** _(string, required)_ The identifier of the Reddit post. The identifier may be a Reddit URL, a permalink, a fullname, or a post id.
- **`text`** _(string, required)_ The body of the comment in markdown format.
---
## Reddit.ReplyToComment
Reply to a Reddit comment
**Parameters**
- **`comment_identifier`** _(string, required)_ The identifier of the Reddit comment to reply to. The identifier may be a comment ID, a Reddit URL to the comment, a permalink to the comment, or the fullname of the comment.
- **`text`** _(string, required)_ The body of the reply in markdown format.
---
## Reddit.GetPostsInSubreddit
Gets posts titles, links, and other metadata in the specified subreddit.
The time_range is required if the listing type is 'top' or 'controversial'.
**Parameters**
- **`subreddit`** _(string, required)_ The name of the subreddit to fetch posts from.
- **`listing`** _(enum ([SubredditListingType](/resources/integrations/social-communication/reddit#subredditlistingtype)), optional)_ The type of listing to fetch. For simple listings such as 'hot', 'new', or 'rising', the time_range parameter is ignored. For time-based listings such as 'top' or 'controversial', the 'time_range' parameter is required. Default is 'hot'.
- **`limit`** _(integer, optional)_ The maximum number of posts to fetch. Default is 10, max is 100.
- **`cursor`** _(str, optional)_ The pagination token from a previous call.
- **`time_range`** _(enum ([RedditTimeFilter](/resources/integrations/social-communication/reddit#reddittimefilter)), optional)_ The time range for filtering posts. Must be provided if the listing type is 'top' or 'controversial'. Otherwise, it is ignored. Defaults to 'today'.
---
## Reddit.GetContentOfPost
Get the content (body) of a Reddit post by its identifier.
**Parameters**
- **`post_identifier`** _(string, required)_ The identifier of the Reddit post. The identifier may be a Reddit URL, a permalink, a fullname, or a post id.
---
## Reddit.GetContentOfMultiplePosts
Get the content (body) of multiple Reddit posts by their identifiers in a single request
**Parameters**
- **`post_identifiers`** _(list of strings, required)_ A list of identifiers of the Reddit posts. The identifiers may be Reddit URLs, permalinks, fullnames, or post ids.
---
## Reddit.GetTopLevelComments
Get the first page of top-level comments of a Reddit post.
**Parameters**
- **`post_identifier`** _(string, required)_ The identifier of the Reddit post. The identifier may be a Reddit URL, a permalink, a fullname, or a post id.
---
## Reddit.CheckSubredditAccess
Checks whether the specified subreddit exists and also if it is accessible to the authenticated user.
**Parameters**
- **`subreddit`** _(string, required)_ The name of the subreddit to check.
---
## Reddit.GetSubredditRules
Gets the rules of the specified subreddit
**Parameters**
- **`subreddit`** _(string, required)_ The name of the subreddit for which to fetch rules.
---
## Reddit.GetMyUsername
Gets the username of the authenticated user.
---
## Reddit.GetMyPosts
Get posts that were created by the authenticated user sorted by newest first
**Parameters**
- **`limit`** _(integer, optional)_ The maximum number of posts to fetch. Default is 10, max is 100.
- **`include_body`** _(boolean, optional)_ Whether to include the body of the posts in the response. Default is `True`.
- **`cursor`** _(str, optional)_ The pagination token from a previous call.
## Auth
The Arcade Reddit MCP Sever uses the [Reddit auth provider](/references/auth-providers/reddit) to connect to users' Reddit accounts.
With the Arcade Cloud Platform, there's nothing to configure. Your users will see `Arcade` as the name of the application that's requesting permission.
With a self-hosted installation of Arcade, you need to [configure the Reddit auth provider](/references/auth-providers/reddit#configuring-reddit-auth) with your own Reddit app credentials.
## Reference
### SubredditListingType
The type of listing to fetch.
- **`HOT`** _(string: "hot")_: The hottest posts in the subreddit.
- **`NEW`** _(string: "new")_: The newest posts in the subreddit.
- **`RISING`** _(string: "rising")_: The posts that are trending up in the subreddit.
- **`TOP`** _(string: "top")_: The top posts in the subreddit (time-based).
- **`CONTROVERSIAL`** _(string: "controversial")_: The posts that are currently controversial in the subreddit (time-based).
### RedditTimeFilter
The time range for filtering posts.
- **`NOW`** _(string: "NOW")_
- **`TODAY`** _(string: "TODAY")_
- **`THIS_WEEK`** _(string: "THIS_WEEK")_
- **`THIS_MONTH`** _(string: "THIS_MONTH")_
- **`THIS_YEAR`** _(string: "THIS_YEAR")_
- **`ALL_TIME`** _(string: "ALL_TIME")_