Reddit数据访问工具

该工具通过集成Reddit API与MCP协议,使AI应用能够获取Reddit帖子、搜索内容、分析评论、跟踪趋势和情感,并访问用户和社区信息。

  • by barudobr
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 barudobr/mcp-reddit

使用说明

Reddit MCP演员

将Reddit的社交媒体平台与模型上下文协议集成,以便AI代理访问Reddit数据。

概述

该Actor将Reddit API与MCP协议连接起来,使人工智能应用程序能够从子版块检索帖子、搜索Reddit内容、分析评论、跟踪趋势和情绪,以及访问用户和社区信息。

快速开始

使用pip Install-r requirements.txt安装依赖项。通过登录Reddit配置Reddit API,导航到https://www.reddit.com/prefs/apps,单击创建应用程序,填写名称为reddit mcp actor,选择脚本作为应用程序类型,并使用http://localhost:8080作为重定向uri。复制您的client_id和client_secret。

创建.env文件,用您的凭据填充它:REDDIT_CLIENT_ID、REDDIT_LIENT_SECRET和REDDIT_USER_AGENT设置为REDDIT mcp actor/1.0。

使用python Test_reddit_connection.py测试连接,使用python Test_mcp_server.py运行测试,并使用python reddit_mcp_server.py启动mcp服务器。

可用工具

get_subreddit_posts函数使用subreddit_name(必需)、limit(可选,默认值10)和sort_by(可选:热、新、顶部、上升)参数从subreddit检索帖子。

search_reddi函数在reddit上搜索带有参数query(必需)、subreddit_name(可选)、limit(可选,默认10)和sort_by(可选:相关性、热门、顶部、新)的帖子。

get_post_comments函数使用参数post_id(必需)和limit(可选)检索帖子的评论。

get_subreddit_info函数使用参数subreddit_name(必需)检索subreddit信息。

get_user_info函数使用参数username(必需)检索用户信息。

analyze_posts_sentence函数使用subreddit_name(可选)、search_query(可选)和limit(可选,默认50)参数分析帖子的情绪。

项目结构

该项目包括reddit_mcp_server.py作为主mcp服务器,reddit_tools.py用于reddit API函数,config.py用于配置,test_redit_connection.py用于连接测试,test_mcp_seerver.py用于服务器测试,requirements.txt用于Python依赖项,.env用于凭据(未提交),.env.template作为模板,.gignore用于git规则,README.md用于文档。

安全

永远不要将.env文件上传到GitHub。.gitignore文件会自动排除.env文件。随时对API密钥保密。

故障排除

对于ModuleNotFoundError,运行pip install-r requirements.txt。对于REDDIT_CLIENT_ID未设置错误,请验证.env文件是否配置正确。对于401未经授权,请检查client_id和client_secret是否正确。对于403 Forbidden等待,因为Reddit可能是限速请求。

技术栈

使用Python 3.8+、PRAW Python Reddit API Wrapper、MCP模型上下文协议和用于环境变量管理的Python-domainv构建。

使用AI系统

此MCP服务器可与任何兼容MCP的AI系统配合使用。使用python reddit_mcp_server.py启动服务器,让AI系统通过mcp协议连接,允许AI调用get_subreddit_posts和search_reddi等工具,并接收标准mcp格式的数据。

示例用法

使用帖子监视subreddit等于get_subreddit_posts,参数为python,limit 50,sort_by-new。用情绪分析情绪等于用subreddit_name技术分析帖子情绪,限制100。带有结果的搜索趋势等于带有查询人工智能的Search_reddi,限制为50。

许可证

该项目是开源的,可用于教育和开发目的。

支持

如果遇到问题,请验证.env文件是否配置正确,所有依赖项是否已安装,虚拟环境是否已激活,以及互联网连接是否正常工作。