Agent-Reach MCP Server
Provides tools to search Bilibili, read video details, fetch hot content, and retrieve video subtitles.
Provides tools to search Facebook and retrieve profile information.
Provides tools to search GitHub and read GitHub content such as repositories and issues.
Provides tools to search Instagram and retrieve profile and post information.
Provides tools to search Reddit, read posts, and browse subreddit content.
Provides tools to access V2EX hot topics, node content, thread reading, and user information.
Provides tools to search Xiaohongshu, read posts, and retrieve comments.
Provides tools to search YouTube, read video details, fetch subtitles, and transcribe videos.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Agent-Reach MCP Serverread this GitHub issue: https://github.com/microsoft/TypeScript/issues/12345"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Agent-Reach MCP/A2A/Plugin Server
One package, three protocols, 14+ platforms, infinite extensibility.
Exposes Agent-Reach as:
🔌 MCP Server - Works with Claude Code, Cursor, VS Code, Continue.dev
🤝 A2A Server - Agent-to-Agent protocol for multi-agent delegation
🧩 Plugin System - Build custom platform plugins via npm
Features
Protocol | Use Case | Clients |
MCP | Direct tool calling from AI assistants | Claude Code, Cursor, VS Code, Continue.dev, Windsurf |
A2A | Agent delegation & orchestration | LangGraph, CrewAI, AutoGen, custom agents |
Plugin | Extend with custom platforms | npm packages, community sharing |
Related MCP server: NetReach
Supported Platforms (Built-in)
Platform | Channel | Actions |
GitHub |
|
|
Bilibili |
|
|
YouTube |
|
|
Twitter/X |
|
|
|
| |
Xiaohongshu |
|
|
V2EX |
|
|
Xueqiu |
|
|
Xiaoyuzhou |
|
|
|
| |
BOSS Zhipin |
|
|
|
| |
|
| |
Web (General) |
|
|
Total: 42 MCP tools / 41 A2A skills (40 channel actions + auto_read)
Quick Start
Prerequisites
Node.js 20+
Agent-Reach CLI installed
# Install Agent-Reach CLI (if not already)
uv tool install https://github.com/Panniantong/Agent-Reach/releases/latest/download/agent-reach.zip
agent-reach setupInstall via Script (Recommended)
Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/haoweid789/agent-reach-mcp/main/install.sh | bashWindows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/haoweid789/agent-reach-mcp/main/install.ps1 | iex"Manual Install
git clone https://github.com/haoweid789/agent-reach-mcp.git
cd agent-reach-mcp
npm install
npm run buildUsage
1. MCP Server (for AI Assistants)
Start the server:
agent-reach-mcp
# or
node dist/index.jsConfigure in your AI assistant:
Claude Code / Cursor / VS Code / Continue.dev:
{
"mcpServers": {
"agent-reach": {
"command": "node",
"args": ["/path/to/agent-reach-mcp/dist/index.js"],
"env": {
"PATH": "/home/user/.local/bin:${PATH}"
}
}
}
}Now you can ask:
"Search GitHub for React hooks libraries"
"Get Bilibili video details: BV1TH9uBBEwa"
"Read this GitHub issue: https://github.com/microsoft/TypeScript/issues/12345"
"Search Xiaohongshu for coffee shop recommendations"
"Get real-time stock quote for AAPL"
2. A2A Server (for Agent Delegation)
Start the server:
agent-reach-a2a
# or
node dist/a2a-server.jsEndpoints:
Agent Card:
http://localhost:8080/.well-known/agent.jsonJSON-RPC:
http://localhost:8080/rpcSSE Streaming:
http://localhost:8080/tasks/{taskId}/stream
Example - Delegate from another agent:
import httpx
async def search_via_agent_reach(query: str):
async with httpx.AsyncClient() as client:
# 1. Send task
resp = await client.post("http://localhost:8080/rpc", json={
"jsonrpc": "2.0", "id": 1,
"method": "tasks/send",
"params": {
"message": {
"role": "user",
"parts": [{"type": "text", "text": query}]
}
}
})
task = resp.json()["result"]
# 2. Get result (or use SSE for streaming)
result = await client.post("http://localhost:8080/rpc", json={
"jsonrpc": "2.0", "id": 2,
"method": "tasks/get", "params": {"id": task["id"]}
})
return result.json()["result"]["task"]["artifacts"]3. Plugin System (for Custom Platforms)
Install a community plugin:
agent-reach-plugin search zhihu
agent-reach-plugin install @agent-reach/plugin-zhihuCreate your own plugin:
agent-reach-plugin create zhihu --template=basic
cd @agent-reach/plugin-zhihu
npm install
# Edit src/index.ts to implement search/read logic
npm run build
npm publish --access publicPlugin structure:
@agent-reach/plugin-zhihu/
├── plugin.json # Manifest (channel, actions, auth, etc.)
├── package.json
├── tsconfig.json
├── src/
│ └── index.ts # PluginModule with execute(action, params, context)
└── test/
└── plugin.test.jsPlugin SDK (@agent-reach/plugin-sdk):
import { PluginModule, PluginContext, createPluginResult, PluginHttpClient } from '@agent-reach/plugin-sdk';
const plugin: PluginModule = {
manifest: { name: '@agent-reach/plugin-zhihu', channel: 'zhihu', ... },
async execute(actionName, params, context) {
const http = new PluginHttpClient({ baseUrl: 'https://api.zhihu.com' });
const response = await http.get('/search', { params: { q: params.query } });
return createPluginResult(response.data.items.map(item => ({
title: item.title,
url: item.url,
author: item.author.name,
published_at: item.created_time,
text: item.excerpt,
})));
}
};
export default plugin;Architecture
This repository is an npm workspaces monorepo. The root package is the server;
the packages under packages/ are the client-side SDKs and framework adapters.
agent-reach-mcp/
├── src/ # @agent-reach/mcp-server
│ ├── index.ts # MCP Server (stdio/SSE)
│ ├── a2a-server.ts # A2A Server (HTTP/JSON-RPC + SSE)
│ ├── plugin-manager.ts # Plugin lifecycle (install/load/execute)
│ ├── plugin-cli.ts # Plugin CLI (create/install/search/publish)
│ ├── plugin-sdk.ts # SDK for plugin authors
│ ├── plugin-types.ts # TypeScript types
│ ├── channel-definitions.ts # Re-export of the SDK channel catalog
│ └── cli-wrapper.ts # Spawns agent-reach CLI
├── packages/
│ ├── sdk/ # @agent-reach/sdk
│ │ ├── src/client.ts # ReachClient - the unified entry point
│ │ ├── src/cli-transport.ts # Local CLI transport
│ │ ├── src/a2a-transport.ts # Remote A2A transport
│ │ ├── src/channels.ts # Canonical 14-channel catalog
│ │ └── src/adapter-utils.ts # Shared helpers for framework adapters
│ ├── langgraph/ # @agent-reach/langgraph
│ ├── crewai/ # @agent-reach/crewai
│ └── autogen/ # @agent-reach/autogen
├── scripts/smoke.mjs # End-to-end smoke test
├── dist/ # Compiled output
├── install.sh # Linux/macOS installer
├── install.ps1 # Windows installer
└── package.json # Workspace rootPackages
Package | Purpose |
| MCP Server, A2A Server and Plugin System |
| TypeScript client with CLI and A2A transports |
| LangGraph nodes and tool specs |
| CrewAI tools |
| AutoGen / AG2 functions |
The channel catalog lives in @agent-reach/sdk and is re-exported by the
server, so all surfaces expose exactly the same tool set.
TypeScript SDK
npm install @agent-reach/sdkimport { ReachClient } from '@agent-reach/sdk';
const reach = new ReachClient();
// Local CLI transport (default)
const result = await reach.execute('github', 'search', { query: 'react hooks', limit: 5 });
for (const item of result.items ?? []) {
console.log(item.title, item.url);
}
// Remote A2A transport
const remote = new ReachClient({ mode: 'a2a', baseUrl: 'http://localhost:8080' });
// Read any URL - the platform is detected automatically
await reach.read('https://github.com/Panniantong/Agent-Reach');Errors are returned as values, not thrown:
const result = await reach.execute('github', 'search', {});
if (!result.ok) {
console.error(result.error?.code); // UNKNOWN_CHANNEL / MISSING_PARAM / ...
}Framework adapters
Each adapter is a thin wrapper over the SDK. The target framework is an optional peer dependency — the adapters never import it, so they work across framework versions.
LangGraph
import { createReachNode } from '@agent-reach/langgraph';
const node = createReachNode('github', 'search');
const { reach } = await node({ reachArgs: { query: 'react hooks' } });CrewAI
import { ReachTool } from '@agent-reach/crewai';
const agent = new Agent({
role: 'Researcher',
goal: 'Find coffee shops',
tools: [ReachTool('xiaohongshu', 'search')],
});AutoGen / AG2
import { ReachFunction } from '@agent-reach/autogen';
const assistant = new ConversableAgent({
name: 'researcher',
functions: [ReachFunction('bilibili', 'read')],
});Development
# Build everything (SDK, adapters, then the server)
npm run build
# Build a single package
npm run build --workspace @agent-reach/sdk
# Run all tests
npm run test:packages
# End-to-end smoke test against the real CLI and a live A2A server
node scripts/smoke.mjsConfiguration
Environment Variables
Variable | Description | Default |
| A2A server port |
|
| A2A server host |
|
| Public base URL for Agent Card |
|
| Base dir for plugin creation |
|
Agent-Reach CLI
The server spawns agent-reach CLI. Ensure it's in PATH:
export PATH="$HOME/.local/bin:$PATH"Development
# Watch mode for MCP server
npm run dev
# Watch mode for A2A server
npm run dev:a2a
# Watch mode for Plugin CLI
npm run dev:plugin
# Run tests
npm testPublishing
# Build all
npm run build
# Publish MCP/A2A server
npm publish --access public
# Publish plugin SDK separately
cd plugin-sdk && npm publish --access publicExtending with Plugins
Create plugin:
agent-reach-plugin create myplatformImplement actions in
src/index.tsusingPluginHttpClient,PluginCache,PluginLoggerBuild & test:
npm run build && npm testPublish:
npm publish --access publicUsers install:
agent-reach-plugin install @agent-reach/plugin-myplatform
Plugins automatically appear in:
MCP tools (
myplatform_search,myplatform_read, etc.)A2A skills (
myplatform_search,myplatform_read, etc.)Plugin CLI (
agent-reach-plugin list)
License
MIT
Credits
Agent-Reach - The underlying multi-platform content retrieval engine
MCP - Model Context Protocol
A2A - Agent-to-Agent Protocol
This server cannot be deployed
Maintenance
Related MCP Connectors
Direct access to 60+ scraping and search tools. Extract structured data from Google (Search, Maps, Trends), Amazon, Airbnb, Social Media, and any web page directly into your AI agent.
Your AI's eyes and ears on social media: read any TikTok, Instagram, YouTube or X post by link
Web data for agents: YouTube transcripts, screenshots, Google News, WHOIS, jobs, tech stack, more.
Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to fetch clean text from any URL and repurpose it into platform-ready social media content for LinkedIn, Twitter, Reddit, and newsletters. It provides specialized tools for content extraction and structured prompt templates for various formats and tones.16 npm-
- AlicenseNot gradedqualityCmaintenanceProvides AI agents with read-only access to various public data sources (web, YouTube, RSS, GitHub, V2EX, Bilibili, and semantic search) without requiring any login credentials or API keys.35MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search the web, read and extract content from webpages, fetch JSON from REST APIs, and collect links while bypassing anti-bot protections.26 npmISC
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to perform anti-bot web scraping, dynamic SPA rendering, YouTube transcript extraction, and deep OSINT/GEOINT intelligence gathering through 23 integrated tools.-