Skip to main content
Glama

Reddit MCP

ライセンス: MIT

Reddit を閲覧、検索、読むためのプラグアンドプレイMCPサーバー。

デモ

Claude Desktop でこれをどのように使用するかを示した短いビデオを以下に示します。

https://github.com/user-attachments/assets/a2e9f2dd-a9ac-453f-acd9-1791380ebdad

Related MCP server: systemprompt-mcp-reddit

特徴

  • pydanticによる詳細なパラメータ検証

  • 信頼性の高いPRAWライブラリを内部で使用

  • PRAWによるレート制限保護を内蔵

注意点

  • 現時点では読み取り機能のみサポートしています。書き込み機能をご利用になりたい場合は、問題に賛成票を投じるか、プルリクエストを送信してください!🙌

  • ツールはトークンを使用します。Claudeでこの機能を使用するには、多くのツール呼び出しを行うためにProユーザーになる必要がある場合があります。無料プランのユーザーは、軽めのツール使用であれば問題ありません。トークンの使用はお客様の責任となります。

インストール

前提条件: Reddit API 認証情報

Redditアカウントで開発者アプリをまだ作成していない場合は、作成してください。これにより、次の手順で使用するclient_idとclient_secretが発行されます。既にこれらをお持ちの場合は、この手順をスキップしてください。

クロードデスクトップ

Claude Desktop にインストールするには:

  • 「任意のテキスト エディターで構成ファイルを開く」セクションまで、ここの指示に従ってください。

  • 希望するインストール方法に応じて、ファイルに以下を追加します。

uvxの使用(推奨)

"mcpServers": {
  "reddit": {
    "command": "uvx",
    "args": ["reddit-mcp"],
    "env": {
      "REDDIT_CLIENT_ID": "<client_id>",
      "REDDIT_CLIENT_SECRET": "<client_secret>"
    }
  }
}

PIPの使用

まずパッケージをインストールします:

pip install reddit-mcp

次に、構成ファイルに次の内容を追加します。

"mcpServers": {
  "reddit": {
    "command": "python",
    "args": ["-m", "reddit_mcp"],
    "env": {
      "REDDIT_CLIENT_ID": "<client_id>",
      "REDDIT_CLIENT_SECRET": "<client_secret>"
    }
  }
}

その他

このサーバーは、エージェントフレームワーク(LangChain、LlamaIndex、AutoGenなど)を含むあらゆるMCPクライアントで使用できます。AutoGenとの統合例については、サンプルをご覧ください。

ツール

サーバーが公開するツールは次のとおりです。

名前

説明

get_comment

コメントにアクセスする

get_comments_by_submission

提出物のコメントにアクセスする

get_submission

提出物にアクセスする

get_subreddit

名前でサブレディットにアクセスする

search_posts

サブレディット内の投稿を検索する

search_subreddits

名前または説明でサブレディットを検索

貢献

貢献を歓迎します!詳細については、 CONTRIBUTING.md をご覧ください。

謝辞

  • 驚くほど信頼性の高いライブラリのPRAW💙

Available Tools

6 tools
get_comment_by_idA
Retrieve a specific comment by ID.

Args:
    comment_id: ID of the comment to retrieve

Returns:
    Comment details with any replies
ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions input and output (comment details with replies) but lacks info on behavior for missing IDs, authentication needs, rate limits, or any side effects.

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

Conciseness5/5

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

Very concise: three lines covering purpose, args, and returns without any extraneous text.

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

Completeness4/5

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

Adequate for a simple single-parameter tool. Describes what it returns (with replies). Could benefit from clarifying that comment_id is required and mentioning error handling, but overall complete.

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?

With 0% schema description coverage, the description adds meaningful detail by stating comment_id is 'ID of the comment to retrieve', which clarifies purpose beyond the schema's 'Comment Id' title.

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

Purpose5/5

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

The description clearly states it retrieves a specific comment by ID. It distinguishes from siblings like get_comments_by_submission which retrieves multiple comments for a submission.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., get_comments_by_submission) or any context about prerequisites or exclusions.

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

get_comments_by_submissionA
Retrieve comments from a specific submission.

Args:
    submission_id: ID of the submission to get comments from
    replace_more: Whether to replace MoreComments objects with actual comments

Returns:
    List of comments with their replies
ParametersJSON Schema
NameRequiredDescriptionDefault
replace_moreNo
submission_idYes

TDQS

A3.8/5.0
Behavior3/5

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

Without annotations, the description bears full burden. It correctly suggests a read-only operation ('Retrieve comments') and indicates the return type ('list of comments with their replies'). However, it does not disclose specific behaviors such as how depth of replies is handled, whether there are rate limits, or the effect of replace_more beyond a brief sentence.

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 description is concise with separate Args and Returns sections, making it easy to scan. The first sentence immediately conveys the tool's core function. However, it could be more front-loaded by placing the core purpose before the argument list.

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

Completeness4/5

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

For a tool with 2 parameters and a simple read operation, the description covers essential aspects: purpose, parameter meanings, and return type. It lacks details on pagination, ordering, or limitations of the comment list, but the moderate complexity justifies a score of 4 rather than 5.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. It clearly explains each parameter: submission_id as 'ID of the submission' and replace_more as 'Whether to replace MoreComments objects with actual comments'. This adds meaningful context beyond the schema, which only provides type and default.

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

Purpose5/5

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

The description explicitly states 'Retrieve comments from a specific submission', clearly identifying the verb (retrieve) and resource (comments from a submission). This distinguishes it from sibling tools like get_comment_by_id (single comment) and get_submission (submission details).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus its siblings (e.g., get_comment_by_id for a single comment, search_posts for broader search). The description also lacks advice on when to set replace_more to true vs false, leaving the agent to infer usage from the parameter name alone.

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

get_submissionA
Retrieve a specific submission by ID.

Args:
    submission_id: ID of the submission to retrieve

Returns:
    Detailed information about the submission
ParametersJSON Schema
NameRequiredDescriptionDefault
submission_idYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states that the tool retrieves and returns detailed information, omitting details like authentication requirements, rate limits, error handling (e.g., if ID not found), or whether the operation is read-only.

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

Conciseness5/5

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

The description is extremely concise: one sentence for purpose, followed by a clear parameter documentation and return value hint. No redundant information.

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?

For a simple retrieval tool with one parameter and no output schema, the description covers the basic purpose and parameter. However, it lacks details on the expected return format, error cases, and any prerequisites (e.g., authentication), leaving some gaps for the AI agent.

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

Parameters3/5

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

With 0% schema description coverage, the description adds basic meaning to the parameter ("ID of the submission to retrieve") beyond the schema's type-only definition. However, the explanation is minimal and does not specify input formats or constraints.

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

Purpose5/5

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

The description clearly states the action (retrieve) and the resource (a specific submission by ID). It effectively distinguishes from sibling tools like get_comment_by_id and get_comments_by_submission, which operate on comments.

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 description implies usage when a submission ID is known, but it does not explicitly specify when to use this tool over alternatives (e.g., search_posts for query-based retrieval). No when-not or alternative guidance is provided.

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

get_subredditB
Retrieve a subreddit by name.

Args:
    subreddit_name: Name of the subreddit to retrieve

Returns:
    Detailed information about the subreddit
ParametersJSON Schema
NameRequiredDescriptionDefault
subreddit_nameYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description fails to add behavioral context. It only mentions 'Detailed information' without specifics, and does not disclose potential limitations like rate limits or access restrictions.

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 description is very short and to the point, with no unnecessary words. However, the inclusion of Args/Returns structure is not standard for MCP and could be streamlined.

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

Completeness2/5

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

For a tool with one parameter and no output schema, the description is minimal. It lacks details about return format, limitations, or when to use this tool over siblings, leaving an agent with insufficient information.

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

Parameters2/5

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

Schema description coverage is 0%. The description for 'subreddit_name' merely restates the parameter name ('Name of the subreddit to retrieve') without adding semantic value or constraints.

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

Purpose5/5

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

The description clearly states 'Retrieve a subreddit by name,' which is a specific verb-resource pair. It distinguishes from siblings like search_subreddits by implying retrieval of a single subreddit rather than searching.

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 description implies usage when you have a subreddit name, but does not explicitly state when not to use or mention alternatives like search_subreddits. Guidance is minimal.

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

search_postsC
Search for posts within a subreddit.

Args:
    params: Search parameters including subreddit name, query, and filters

Returns:
    List of matching posts with their details
ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. Description only states it searches and returns posts, but does not disclose behavioral traits such as rate limits, authentication needs, or whether it is a read-only operation. Name implies read-only, but not explicit.

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?

Description is three lines: title, args summary, returns summary. Compact and front-loaded. Could be slightly more structured but no wasted words.

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

Completeness2/5

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

No output schema provided, yet return description is vague ('List of matching posts with their details'). No mention of pagination, result limits, or sorting behavior despite these being important for a search tool. Incomplete for a search operation.

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

Parameters3/5

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

Input schema has rich descriptions for all nested fields (subreddit_name, query, sort, syntax, time_filter). The description adds only a generic summary ('params: Search parameters including subreddit name, query, and filters'), which is mostly redundant. With high schema coverage, baseline 3 is appropriate.

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?

Clearly states 'Search for posts within a subreddit' – a specific verb (search) and resource (posts) with scope. However, no differentiation from sibling tools like get_submission or search_subreddits.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., get_submission for single post, search_subreddits for subreddits). No when-not-to-use or context information.

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

search_subredditsC
Search for subreddits using either name-based or description-based search.

Args:
    by: Search parameters, either SearchByName or SearchByDescription

Returns:
    List of matching subreddits with their details
ParametersJSON Schema
NameRequiredDescriptionDefault
byYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only notes it returns a list of matching subreddits with details, but omits important traits like auth requirements, rate limits, or any side effects.

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 description is short and includes a structured Args and Returns section. It is efficient, though perhaps too brief for full clarity.

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

Completeness2/5

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

Given the tool has a complex parameter (union type), no output schema, and no annotations, the description is insufficient. It does not explain return structure or how to choose between search modes.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description only says 'by: Search parameters, either SearchByName or SearchByDescription', which adds little beyond the schema. It fails to explain how the union discriminator works or hint at intended usage.

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

Purpose5/5

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

The description clearly states the tool searches for subreddits using two methods (name-based or description-based), which distinguishes it from sibling tools like get_comment_by_id or search_posts.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus other search tools, nor when to choose name vs. description search. The description lacks explicit context for selection.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedget_comment_by_id
    • First observedget_comments_by_submission
    • First observedget_submission
    • First observedget_subreddit
    • First observedsearch_posts
    • First observedsearch_subreddits

TDQS

B3.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific Reddit entities: comments, submissions, subreddits, and searches. No overlap exists between tools like get_comment_by_id and get_comments_by_submission, which serve different retrieval needs.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscores (e.g., get_comment_by_id, search_posts). The naming is predictable and readable throughout the set, with no deviations in style.

Tool Count4/5

Six tools is reasonable for a Reddit API server, covering core read operations. It's slightly lean but includes key functionalities like retrieval and search, though it lacks write operations which might be expected in a full-featured server.

Completeness3/5

The tool set provides good read coverage for comments, submissions, and subreddits, but there are notable gaps: no create, update, or delete operations (e.g., posting comments or submissions). This limits agents to read-only workflows, which may cause failures in interactive scenarios.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI assistants like Claude to browse and analyze Reddit content, including searching subreddits, retrieving post details with comments, and viewing trending posts.
    9
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    An MCP server that enables AI assistants to access and interact with Reddit content through features like user analysis, post retrieval, subreddit statistics, and authenticated posting capabilities.
    15
    302
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that provides AI agents with full Reddit API capabilities including search, browsing, reading, posting, commenting, voting, editing, and deleting.
    18
    8 npm
    MIT