Token导航 LogoToken导航TokenDH.com
Reddit API Integration MCP Server Prod logo
AI代理stdio官方级别未说明来源级核验

Reddit API Integration MCP Server Prod

MCP Server

一个基于MCP协议的Reddit API集成服务器,提供Reddit帖子、评论和讨论的获取功能,支持D402支付协议进行安全访问控制。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
API集成PythonAI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Traia-IO

提供方

Traia-IO

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run python server.py

详细介绍

Reddit API集成MCP服务器

这是一个MCP(模型上下文协议)服务器,它使用PRAW(Python Reddit API包装器)提供Reddit API集成,用于从子版块获取帖子、评论和讨论。它使用D402支付协议进行安全访问控制。

特性

  • 🔧 MCP协议:基于模型上下文协议构建,实现无缝的人工智能集成
  • 📊 Reddit集成:使用PRAW(Python Reddit API Wrapper)进行全面的Reddit数据访问
  • 💳 D402支付协议:使用HTTP 402支付协议进行安全访问
  • 🔍 高级搜索:关键字过滤和subreddit搜索功能
  • 📈 趋势子漩涡:发现受欢迎和活跃的社区
  • 🐳 Docker支持:使用Docker和Docker Compose轻松部署
  • 异步操作:内置FastMCP,实现高效异步处理
  • 🎯 生产就绪:针对生产环境进行了优化

可用工具

此服务器为Reddit数据访问提供以下工具:

1. get_subreddit_posts

通过可选的筛选从特定的subreddit获取帖子。

参数:

  • subreddit_name (string):子版块的名称(不含r/)
  • limit (整数):要获取的最大帖子数(最大100,默认值:25)
  • time_filter (string):时间过滤器(小时、天、周、月、年、全部,默认值:天)
  • sort_by (string):排序方法(热、新、顶部、上升、默认:热)

退货:

  • 带有元数据的帖子(标题、作者、分数、评论数等)

付款: 每个请求0.00001个令牌

2. search_subreddit_posts

使用关键字在特定的subreddit中搜索帖子。

参数:

  • subreddit_name (string):子版块的名称(不含r/)
  • query (string):搜索查询/关键字
  • limit (整数):要获取的最大帖子数(最大100,默认值:25)
  • time_filter (string):时间过滤器(小时、天、周、月、年、全部,默认值:月)
  • sort_by (string):排序方法(相关性、热门、顶部、新、评论、默认:相关性)

退货:

  • 带有帖子元数据的搜索结果

付款: 每个请求0.00001个令牌

3. get_post_comments

从特定的Reddit帖子中获取评论。

参数:

  • post_id (字符串):Reddit帖子ID
  • limit (整数):要获取的最大评论数(默认值:50)
  • sort_by (string):排序方法(top、best、new、conference、old、qa、default:top)

退货:

  • 带有元数据的评论(正文、作者、分数等)

付款: 每次请求0.000015个令牌

4. get_trending_subreddits

获取热门/流行的子版块。

参数:

  • limit (整数):要获取的最大子版块数(默认值:25)

退货:

  • 带有元数据(订阅者、描述等)的热门子版块

付款: 每个请求0.00001个令牌

5. get_api_info

获取有关Reddit API集成服务及其状态的信息。

退货:

  • 服务信息、身份验证状态和可用端点

付款: 每个请求0.000005个令牌

安装

使用Docker(推荐)

  1. 克隆此存储库:
   git clone https://github.com/Traia-IO/reddit-api-integration-mcp-server.git
   cd reddit-api-integration-mcp-server
  1. 设置环境变量:
   export SERVER_ADDRESS="your-iatp-wallet-address"
   export MCP_OPERATOR_PRIVATE_KEY="your-operator-key"
   export REDDIT_CLIENT_ID="your-reddit-client-id"
   # Note: client_secret is provided by users via D402 API key, not server environment
  1. 使用Docker运行:
   ./run_local_docker.sh

使用Docker Compose

  1. 创建一个 .env 使用您的配置文件:
   # Server Configuration
   PORT=8000
   STAGE=MAINNET
   LOG_LEVEL=INFO

   # Reddit API Configuration
   REDDIT_CLIENT_ID=your-reddit-client-id
   # Note: client_secret is provided by users via D402 API key

   # D402 Payment Protocol Configuration
   SERVER_ADDRESS=your-iatp-wallet-address
   MCP_OPERATOR_PRIVATE_KEY=your-operator-key
   MCP_OPERATOR_ADDRESS=your-operator-address
   D402_FACILITATOR_URL=https://test-facilitator.d402.net
   D402_FACILITATOR_API_KEY=your-facilitator-api-key
   D402_TESTING_MODE=false
   NETWORK=sepolia
  1. 启动服务器:
   docker-compose up

手动安装

  1. 使用安装依赖项 uv:
   uv pip install -e .
  1. 运行服务器:
   SERVER_ADDRESS="your-iatp-wallet-address" \
   REDDIT_CLIENT_ID="your-reddit-client-id" \
   uv run python server.py

注:用户将提供 client_secret 发出请求时通过D402 API密钥

用法

健康检查

测试服务器是否正在运行:

python mcp_health_check.py

使用CrewAI

from traia_iatp.mcp.traia_mcp_adapter import create_mcp_adapter

# Connect to the MCP server with payment
with create_mcp_adapter(
    url="http://localhost:8000/mcp/"
) as tools:
    # Use the tools
    for tool in tools:
        print(f"Available tool: {tool.name}")
        
    # Example: Get subreddit posts
    result = await tool.get_subreddit_posts(
        subreddit_name="cryptocurrency",
        limit=25,
        sort_by="hot",
        time_filter="day"
    )
    print(result)

直接MCP连接

import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    server_params = StdioServerParameters(
        command="python",
        args=["server.py"],
        env={
            "SERVER_ADDRESS": "your-iatp-wallet-address",
            "MCP_OPERATOR_PRIVATE_KEY": "your-operator-key"
        }
    )
    
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            # Initialize
            await session.initialize()
            
            # List available tools
            tools = await session.list_tools()
            print(f"Available tools: {[tool.name for tool in tools.tools]}")
            
            # Call a tool
            result = await session.call_tool(
                "get_subreddit_posts",
                arguments={
                    "subreddit_name": "Bitcoin",
                    "limit": 10,
                    "sort_by": "hot"
                }
            )
            print(result)

if __name__ == "__main__":
    asyncio.run(main())

认证

此服务器使用 双模认证 采用D402支付协议的系统:

1.D402支付协议(必填)

所有请求必须包括有效的D402付款凭证:

  • 使用HTTP 402状态码进行支付请求
  • 需要基于区块链的小额支付
  • 通过配置 SERVER_ADDRESSMCP_OPERATOR_PRIVATE_KEY

2.Reddit API凭据(必需)

Reddit API访问使用拆分凭据方法:

  • 服务器端: REDDIT_CLIENT_ID 从服务器环境加载
  • 用户侧:Reddit client_secret 由用户通过D402 API密钥提供(使用 get_active_api_key())
  • 可选的:通过自定义用户代理 X-Reddit-User-Agent header(默认为“Traia Reddit MCP服务器/1.0”)

它是如何工作的:

  1. 服务器加载其 REDDIT_CLIENT_ID 从启动时的环境变量
  2. 用户提供他们的 client_secret 作为付款期间的D402 API密钥
  3. 服务器将两者结合起来,使用PRAW创建Reddit API客户端

API密钥设置示例: 在提出请求时,用户提供他们的Reddit client_secret 作为D402支付流中的API密钥。服务器使用以下命令自动检索它 get_active_api_key(context) 并将其与服务器的 REDDIT_CLIENT_ID.

获取Reddit API凭据

对于服务器操作员:

  1. 首选 Reddit应用
  2. 点击“创建应用程序”或“创建另一个应用程序”
  3. 填写详细信息:

- 名字:您的应用程序名称(例如,“Traia Reddit MCP服务器”) - 应用程序类型:选择“脚本” - 描述:应用程序的简要说明 - 重定向URI: http://localhost:8080(适用于脚本应用程序)

  1. 点击“创建应用”
  2. 设置 client_id 作为 REDDIT_CLIENT_ID 在您的服务器环境中

对于用户:

  1. 按照上述步骤创建自己的Reddit应用程序
  2. 用你的 client_secret 通过D402进行请求时作为API密钥
  3. 服务器将自动合并您的 client_secret 与服务器的 REDDIT_CLIENT_ID

D402付款配置

服务器使用D402支付协议进行访问控制。配置是通过环境变量完成的:

必需变量

  • SERVER_ADDRESS:您的IATP钱包地址(接收付款)
  • MCP_OPERATOR_PRIVATE_KEY:用于签署结算证明的私钥
  • MCP_OPERATOR_ADDRESS:操作员的公共地址(用于验证)

可选变量

  • D402_FACILITATOR_URL:支付服务商URL(默认值:https://test-facilitator.d402.net)
  • D402_FACILITATOR_API_KEY:主持人服务的API密钥
  • D402_TESTING_MODE:对于没有实际付款的本地测试,设置为“true”(默认值:false)
  • NETWORK:要使用的区块链网络(默认:sepolia)

付款价格

工具价格(代币)描述
get_subreddit_posts0.00001从subreddit获取帖子
search_subreddit_posts0.00001在子版块中搜索帖子
get_post_comments0.000015从帖子中获取评论
get_trending_subreddits0.00001获得受欢迎的子版块
get_api_info0.000005服务信息

发展

项目结构

reddit-api-integration-mcp-server/
├── server.py                 # Main MCP server implementation
├── endpoints.json            # API endpoint documentation
├── deployment_params.json    # Deployment configuration
├── mcp_health_check.py      # Health check script
├── pyproject.toml           # Python dependencies
├── Dockerfile               # Container configuration
├── docker-compose.yml       # Docker orchestration
├── run_local_docker.sh      # Local development script
└── README.md               # This file

测试服务器

  1. 在本地启动服务器:
   ./run_local_docker.sh
  1. 运行健康检查:
   python mcp_health_check.py
  1. 使用CrewAI适配器或直接MCP连接测试单个工具

添加新工具

要添加新工具,请编辑 server.py 以及:

  1. 使用以下命令创建工具功能 @mcp.tool() 装饰器
  2. 添加 @require_payment_for_tool() 带支付配置的装饰器
  3. 使用PRAW实现Reddit API逻辑
  4. 更新 endpoints.json 使用新的工具模式
  5. 更新 deployment_params.json 能力阵列
  6. 使用工具文档更新此README

部署

部署配置

deployment_params.json 文件包含部署配置:

{
  "mcp_server": {
    "name": "reddit-api-integration-mcp",
    "payment_protocol": "402",
    "dual_mode": true,
    "capabilities": [
      "get_subreddit_posts",
      "search_subreddit_posts",
      "get_post_comments",
      "get_trending_subreddits",
      "get_api_info"
    ]
  }
}

重要:始终更新 capabilities 添加或删除工具时使用数组!

谷歌云运行

此服务器旨在部署在Google Cloud Run上。部署将:

  1. 从Dockerfile构建一个容器
  2. 使用指定配置部署到Cloud Run
  3. 暴露 /mcp 客户端连接的端点

环境变量

服务器配置

  • PORT:服务器端口(默认值:8000)
  • STAGE:环境阶段(默认:MAINNET)
  • LOG_LEVEL:日志记录级别(默认值:INFO)

Reddit API配置

  • REDDIT_CLIENT_ID:服务器的Reddit应用程序客户端ID(必填,从环境加载)
  • 用户的 client_secret:由用户通过D402 API密钥提供(使用自动检索 get_active_api_key())

D402付款配置

  • SERVER_ADDRESS:用于接收付款的IATP钱包地址(必填)
  • MCP_OPERATOR_PRIVATE_KEY:用于签署结算的私钥(必需)
  • MCP_OPERATOR_ADDRESS:操作员的公共地址用于验证(必填)
  • D402_FACILITATOR_URL:主持人服务URL(默认值:https://test-facilitator.d402.net)
  • D402_FACILITATOR_API_KEY:主持人API密钥(可选)
  • D402_TESTING_MODE:启用测试模式(默认值:false)
  • NETWORK:区块链网络(默认:sepolia)

API文档

故障排除

  1. 服务器未启动:使用以下命令检查Docker日志 docker logs reddit-api-integration-mcp-local
  2. 身份验证错误:验证D402支付凭证和Reddit API凭证
  3. Reddit API错误:确保您的Reddit凭据有效并具有必要的权限
  4. 付款错误:检查D402配置和主持人连接
  5. 工具错误:检查服务器日志以获取详细的错误消息

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 实施新工具或改进
  4. 更新README、endpoints.json和deployment_params.json
  5. 提交拉取请求

许可证

MIT许可证

目录标签

目录标签

API集成PythonAI代理本地部署社交媒体数据MCP协议D402支付Reddit数据

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP