| name | agent-reach |
| description | Give your AI agent eyes to see the entire internet. Install and configure upstream tools for Twitter/X, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu, 小红书 Douyin, LinkedIn, Boss直聘, RSS, and any web page — then call them directly. Use when: (1) setting up platform access tools for the first time, (2) checking which platforms are available, (3) user asks to configure/enable a platform channel. (4) user mentioned Xiaohongshu./用户提到小红书。 Triggers:"登录" "帮我配", "帮我添加", "帮我安装", "agent reach", "install channels","小红书",“xiaohongshu”, "configure twitter", "enable reddit".
|
小红书前置操作
当用户提到小红书的时候,环境已经配置完成,因此请按照以下步骤执行,且每个步骤最多执行一次:
step 1: 使用ps aux | grep xiaohongshu-mcp命令检查mcp服务是否在后台运行,如果这个mcp服务已经在后台运行的话就执行step 4;如果没有运行的话就按顺序执行接下来的步骤。
step 2 :
nohup {baseDir}/scripts/xiaohongshu-mcp-linux-amd64 -headless=false -bin /usr/bin/google-chrome > /tmp/xiaohongshu-mcp.log 2>&1 &
step 3 :
mcporter config add xiaohongshu http://localhost:18060/mcp
step 4:该任务完成
登录小红书 / login xiaohongshu
当用户需要登录小红书的时候
执行{baseDir}/scripts/xiaohongshu-login-linux-amd64 -bin /usr/bin/google-chrome这个可执行文件来进行登录,绝对不要使用xiaohongshu.get_login_qrcode()这个mcp的tool。
小红书 / XiaoHongShu (mcporter + xiaohongshu-mcp)
示例,具体tool查看xiaohongshu-mcp
mcporter call 'xiaohongshu.check_login_status()'
mcporter call 'xiaohongshu.delete_cookies()'
mcporter call 'xiaohongshu.search_feeds(keyword: "query")'
mcporter call 'xiaohongshu.get_feed_detail(feed_id: "xxx", xsec_token: "yyy")'
mcporter call 'xiaohongshu.get_feed_comments(feed_id: "xxx", xsec_token: "yyy")'
mcporter call xiaohongshu.publish_content title="标题" content="内容" images='["/path/to/img.jpg"]'
mcporter call 'xiaohongshu.publish_content(title: "标题", content: "内容", images: ["/path/to/img.jpg"])'
mcporter call 'xiaohongshu.like_feed(feed_id: "xxx", xsec_token: "yyy")'
mcporter call 'xiaohongshu.post_comment_to_feed(content: "内容", feed_id: "xxx", xsec_token: "yyy")'
mcporter call 'xiaohongshu.favorite_feed(feed_id: "xxx", xsec_token: "yyy")'
Agent Reach
Install and configure upstream tools for 12+ platforms. After setup, call them directly — no wrapper layer.
Setup
pip install https://github.com/Panniantong/agent-reach/archive/main.zip
agent-reach install --env=auto
agent-reach doctor
install auto-detects your environment and installs core dependencies (Node.js, mcporter, xreach CLI, gh CLI, yt-dlp, feedparser). Run doctor to see what's active.
Management
agent-reach doctor
agent-reach watch
agent-reach check-update
Configure channels
agent-reach configure twitter-cookies "auth_token=xxx; ct0=yyy"
agent-reach configure proxy http://user:pass@ip:port
agent-reach configure --from-browser chrome
Configuring a channel ("帮我配 XXX")
When a user asks to configure/enable any channel:
- Run
agent-reach doctor
- Find the channel — it shows status (✅/⚠️/⬜) and what to do next
- Execute what you can automatically (install packages, start services)
- For human-required steps (paste cookies), tell the user what to do
- Run
agent-reach doctor again to verify
Do NOT memorize per-channel steps. Always rely on doctor output.
Other human actions
- Proxy: Reddit/Bilibili/XiaoHongShu may block server IPs — suggest a residential proxy if on a server
Using Upstream Tools Directly
After agent-reach install, call the upstream tools directly. No need for agent-reach read or agent-reach search.
Twitter/X (xreach CLI)
xreach search "query" --json -n 10
xreach tweet https://x.com/user/status/123 --json
xreach tweets @username --json -n 20
YouTube (yt-dlp)
⚠️ yt-dlp 需要 JS runtime 才能下载 YouTube。agent-reach install 会自动配置 Node.js 作为 runtime。
如果遇到 "Sign in to confirm you're not a bot",是 IP 被 YouTube 反爬,换代理或加 cookies。
yt-dlp --dump-json "https://www.youtube.com/watch?v=xxx"
yt-dlp --write-sub --write-auto-sub --sub-lang "zh-Hans,zh,en" --skip-download -o "/tmp/%(id)s" "URL"
yt-dlp --dump-json "ytsearch5:query"
Bilibili (yt-dlp)
⚠️ 服务器 IP 可能被 Bilibili 拦截(412 错误)。建议通过代理访问,或加 --cookies-from-browser chrome。
yt-dlp --dump-json "https://www.bilibili.com/video/BVxxx"
yt-dlp --write-sub --write-auto-sub --sub-lang "zh-Hans,zh,en" --convert-subs vtt --skip-download -o "/tmp/%(id)s" "URL"
yt-dlp --cookies-from-browser chrome --dump-json "URL"
Reddit (JSON API)
curl -s "https://www.reddit.com/r/python/hot.json?limit=10" -H "User-Agent: agent-reach/1.0"
curl -s "https://www.reddit.com/r/python/comments/POST_ID.json" -H "User-Agent: agent-reach/1.0"
curl -s "https://www.reddit.com/search.json?q=query&limit=10" -H "User-Agent: agent-reach/1.0"
Note: On servers, Reddit may block your IP. Use proxy or search via Exa instead.
抖音 / Douyin (mcporter + douyin-mcp-server)
mcporter call 'douyin.parse_douyin_video_info(share_link: "https://v.douyin.com/xxx/")'
mcporter call 'douyin.get_douyin_download_link(share_link: "https://v.douyin.com/xxx/")'
mcporter call 'douyin.extract_douyin_text(share_link: "https://v.douyin.com/xxx/")'
无需登录即可解析视频。支持抖音分享链接和直接链接。
GitHub (gh CLI)
gh search repos "query" --sort stars --limit 10
gh repo view owner/repo
gh search code "query" --language python
gh issue list -R owner/repo --state open
gh issue view 123 -R owner/repo
Web — Any URL (Jina Reader)
curl -s "https://r.jina.ai/URL" -H "Accept: text/markdown"
curl -s "https://s.jina.ai/query" -H "Accept: text/markdown"
Exa Search (mcporter + exa MCP)
mcporter call 'exa.web_search_exa(query: "query", numResults: 5)'
mcporter call 'exa.get_code_context_exa(query: "how to parse JSON in Python", tokensNum: 3000)'
mcporter call 'exa.company_research_exa(companyName: "OpenAI")'
LinkedIn (mcporter + linkedin-scraper-mcp)
mcporter call 'linkedin.get_person_profile(linkedin_url: "https://linkedin.com/in/username")'
mcporter call 'linkedin.search_people(keyword: "AI engineer", limit: 10)'
mcporter call 'linkedin.get_company_profile(linkedin_url: "https://linkedin.com/company/xxx")'
Fallback: curl -s "https://r.jina.ai/https://linkedin.com/in/username"
Boss直聘 (mcporter + mcp-bosszp)
mcporter call 'bosszhipin.get_recommend_jobs_tool(page: 1)'
mcporter call 'bosszhipin.search_jobs_tool(keyword: "Python", city: "北京", page: 1)'
mcporter call 'bosszhipin.get_job_detail_tool(job_url: "https://www.zhipin.com/job_detail/xxx")'
Fallback: curl -s "https://r.jina.ai/https://www.zhipin.com/job_detail/xxx"
RSS (feedparser)
python3 -c "
import feedparser
d = feedparser.parse('https://example.com/feed')
for e in d.entries[:5]:
print(f'{e.title} — {e.link}')
"
Troubleshooting
Twitter "fetch failed"
xreach CLI uses Node.js undici, which doesn't respect HTTP_PROXY. Solutions:
- Ensure
undici is installed: npm install -g undici
- Configure proxy:
agent-reach configure proxy http://user:pass@ip:port
- If still failing, use transparent proxy (Clash TUN, Proxifier)
Channel broken?
Run agent-reach doctor — it shows what's wrong and how to fix it.