Atlas / MCP servers / jordanburke / Reddit

RedditBLOCK

mcp/jordanburke/reddit-6

⚙️ A Model Context Protocol (MCP) that provides tools for fetching and creating Reddit content

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
19 13r · 5w · 1d
Transport
stdio
License
MIT
Stars
285
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

A Model Context Protocol (MCP) server for interacting with Reddit - fetch posts, comments, user info, and create content.

[](https://www.npmjs.com/package/reddit-mcp-server) [](https://www.npmjs.com/package/reddit-mcp-server) [](https://github.com/jordanburke/reddit-mcp-server/stargazers) [](https://opensource.org/licenses/MIT)

Features at a Glance

Read from source at commit 375fc8c78f5fOBSERVED · 2026-10-06
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add reddit-mcp-server --env REDDIT_CLIENT_SECRET=${REDDIT_CLIENT_SECRET} --env REDDIT_PASSWORD=${REDDIT_PASSWORD} -- npx -y [email protected]
03

Exposed tools (19)

13 read · 5 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
browse_subredditreadBrowse a subreddit — or the authenticated home feed when no subreddit is given — by sort order: hot, new, top, rising, or controversial. Read-only; works without credentials via RSS fallback (titles and links only, no scores or comment counts).
create_postwriteCreate a new text or link post in a subreddit. Mutating and NOT idempotent — each call publishes a separate post. Requires REDDIT_USERNAME and REDDIT_PASSWORD; fails without them. Returns the new post
edit_commentwriteReplace the text of one of your own comments. Mutating and idempotent (same text → same result); it overwrites the previous content. Requires REDDIT_USERNAME and REDDIT_PASSWORD, and works only on comments you authored. Adds an
edit_postwriteReplace the body text of one of your own self-text posts. Mutating and idempotent (same text → same result); it overwrites the previous body. Requires REDDIT_USERNAME and REDDIT_PASSWORD, and works only on self posts you authored — titles and link posts cannot be edited. Adds an
get_mereadGet the authenticated user
get_more_commentsreadExpand truncated
get_my_overviewreadGet the authenticated user
get_my_savedreadGet the authenticated user
get_post_commentswriteGet the comment thread for a post (by post id + subreddit), sorted best/top/new/controversial/old/qa. Read-only; requires OAuth credentials. Returns the post header plus threaded comments (author, OP/edited badges, score, body, nesting depth) up to
get_post_flairswriteList a subreddit
get_subreddit_inforeadGet a subreddit
get_subreddit_rulesreadGet a subreddit
get_top_postsreadGet the top-scoring posts from a subreddit — or from the authenticated home feed if no subreddit is given — within a time window (hour...all). Read-only; works without credentials via RSS fallback (titles and links only, no scores or comment counts). Returns a page of posts plus an
get_trending_subredditsreadGet the subreddits Reddit is currently featuring as trending/popular. Read-only, no parameters; requires OAuth credentials. Returns a list of subreddit names that changes through the day (cached briefly server-side). To find subreddits by keyword instead of by trend, use search_reddit with type=
get_user_commentsreadGet comments made by a specific user, with sort (new/hot/top) and time filter. Read-only; requires OAuth credentials. Returns a page of comments (subreddit, parent post title, body excerpt, score, permalink) plus an
get_user_postsreadGet posts submitted by a specific user, with sort (new/hot/top) and time filter. Read-only; requires OAuth credentials. Returns a page of posts (title, subreddit, score, upvote ratio, comment count, permalink) plus an
programmingreadA subreddit for programming
search_redditreadSearch Reddit for posts — or subreddits/users via
unsave_contentdestructiveRemove a post or comment from your saved items (undoes save_content). Mutating but idempotent — unsaving an item that isn
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (3 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (16)

HIGHPrompt injection · prompt.credential_read · CWE-94, CWE-1427
<tool:browse_subreddit>:1
Browse a subreddit — or the authenticated home feed when no subreddit is given — by sort order: hot, new, top, rising, or controversial. Read-only; works without credentials via RSS fallback (titles a
Why it matters. asks the agent to read credentials
HIGHPrompt injection · prompt.credential_read · CWE-94, CWE-1427
<tool:get_post_comments>:1
Get the comment thread for a post (by post id + subreddit), sorted best/top/new/controversial/old/qa. Read-only; requires OAuth credentials. Returns the post header plus threaded comments (author, OP/
Why it matters. asks the agent to read credentials
HIGHPrompt injection · prompt.credential_read · CWE-94, CWE-1427
<tool:get_top_posts>:1
Get the top-scoring posts from a subreddit — or from the authenticated home feed if no subreddit is given — within a time window (hour...all). Read-only; works without credentials via RSS fallback (ti
Why it matters. asks the agent to read credentials
HIGHPrompt injection · prompt.credential_read · CWE-94, CWE-1427
<tool:get_trending_subreddits>:1
Get the subreddits Reddit is currently featuring as trending/popular. Read-only, no parameters; requires OAuth credentials. Returns a list of subreddit names that changes through the day (cached brief
Why it matters. asks the agent to read credentials
HIGHPrompt injection · prompt.credential_read · CWE-94, CWE-1427
<tool:get_user_comments>:1
Get comments made by a specific user, with sort (new/hot/top) and time filter. Read-only; requires OAuth credentials. Returns a page of comments (subreddit, parent post title, body excerpt, score, per
Why it matters. asks the agent to read credentials
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
unsave_content
Why it matters. 1 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.env.test
.env.test
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/client/__tests__/reddit-client.test.ts:3
import type { RedditClientConfig } from "../../types"
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/client/__tests__/reddit-client.test.ts:232
const result = await client.getUser("../../api/v1/me")
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/client/__tests__/rss-client.test.ts:6
import type { RedditClientConfig } from "../../types"
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/client/__tests__/rss-client.test.ts:425
const result = await client.fetchSubredditPosts("../../api/v1/me", "hot")
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/utils/__tests__/formatters.test.ts:4
import type { RedditComment, RedditPost } from "../../types"
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
dotenv, fast-xml-parser, fastmcp, functype, zod, @types/node, ajv-cli, cross-env
Why it matters. 13 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOInventory / provenance · inv.oversize · CWE-1104
mcp-publisher
mcp-publisher
Why it matters. 18689874 bytes not read
INFOPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
CLAUDE.md:244
**Full access (OAuth):**

Gates applied: no_behavioural_pass.

Audited 2026-10-06 · audit v0.4.1 · source sha 375fc8c78f5ffull audit observations/trust-audit/mcp-server/jordanburke__reddit-6.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-06375fc8c78f5fBLOCKD69first audit
06

Questions

What is the Reddit MCP server?

⚙️ A Model Context Protocol (MCP) that provides tools for fetching and creating Reddit content

What tools does Reddit expose?

19 in total: 13 read-only, 5 that write, and 1 that can delete or overwrite (unsave_content). Every one is listed on this page with its risk.

Is Reddit safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 5 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Reddit need?

It reads OAUTH_ENABLED, OAUTH_TOKEN, REDDIT_AUTH_MODE, REDDIT_CLIENT_SECRET and REDDIT_PASSWORD from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Reddit run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as reddit-mcp-server at 1.6.3.

How current is this page?

The grade is for one exact copy of the source (375fc8c78f5f), read on 2026-10-06. The repository is watched and re-audited when it changes.

Advertisement