# Source Radar

> 给 AI 用的可审计信息采集引擎。SearXNG 元搜索聚合、MCP Server、证据卡、自适应质量评估。支持中文互联网搜索、抓取、社区采集。

- **Type:** MCP server
- **Install:** `agentstack add mcp-narylr350-source-radar`
- **Verified:** Pending review
- **Seller:** [Narylr350](https://agentstack.voostack.com/s/narylr350)
- **Installs:** 0
- **Category:** [Web & Browser](https://agentstack.voostack.com/c/web-and-browser)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [Narylr350](https://github.com/Narylr350)
- **Source:** https://github.com/Narylr350/source-radar
- **Website:** https://github.com/Narylr350/source-radar

## Install

```sh
agentstack add mcp-narylr350-source-radar
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# source-radar

**给 AI 用的可审计信息采集引擎。**

不是聊天机器人，不是简单搜索封装。它通过 MCP Server 或 CLI 为外部 AI 提供搜索、抓取、社区采集能力，把中文互联网搜索结果变成可审计的证据卡，再交给 AI 做综合、核验或研究。内置 AI Search Planner 自动规划搜索词、选平台、质量评估后重试。和普通 AI 搜索的区别在于：链路分层、采集过程可追溯、缓存可查、追问上下文可控。

## 和普通 AI 搜索有什么区别

| 能力 | 普通 AI 搜索 | source-radar |
|------|-------------|--------------|
| 搜索网页 | 有 | 有（SearXNG 元搜索引擎 + Bing fallback + site 过滤） |
| AI 搜索规划 | 无 | AI Search Planner：自动改词、选平台、质量门重试 |
| 质量评估 | 无 | 8 个检测器：语义不匹配、方法型缺社区、导航菜单等 |
| MCP Server | 无 | 5 个工具：web_search / fetch_url / search_github / search_chinese_platforms / fetch_github_file |
| 证据卡结构化 | 不稳定，每次格式不同 | 统一证据卡，有 id/来源类型/链接/摘要 |
| 工具调用追溯 | 不透明 | 完整记录：用了哪些工具、跳过哪些、为什么 |
| 缓存命中可见 | 通常不可见 | 命中次数、缓存时长都在 JSON 里 |
| 追问上下文 | 黑箱 | 可记录、可关闭、是否使用上下文可查 |
| 严格核验模式 | 看模型发挥 | 独立链路：纯搜索结果不够，强制追加正文抽取 |
| 中文社区增强 | 弱 | 可接 MediaCrawler（小红书/微博/B站/贴吧/抖音/知乎） |
| 适合 Agent 集成 | 一般 | 专门设计：JSON 输出干净、进度与结果分离、追溯结构化；支持 MCP Server |

**一句话总结**：普通 AI 搜索是"快速查一下"，source-radar 是"可审计的信息采集流水线"。

## 架构

```
┌─────────────────────────────────────────────────────────┐
│  CLI / Claude Code Skill / MCP Server / AI Agent        │
│  ask / verify / research / web_search / fetch_url / search_github / search_chinese_platforms / fetch_github_file  │
└───────────────┬─────────────────────────────────────────┘
                │
                ▼
┌─────────────────────────────────────────────────────────┐
│  Agent (内置)                                            │
│  ┌──────────────┐  ┌──────────────┐  ┌───────────────┐  │
│  │ AI Planner   │  │  Evaluator   │  │  Synthesizer  │  │
│  │ 搜索规划+重试 │  │  判断证据     │  │  综合输出      │  │
│  └──────┬───────┘  └──────┬───────┘  └───────────────┘  │
│         │                 │                              │
│         ▼                 ▼                              │
│  ┌──────────────────────────────────────────────────┐   │
│  │  Adaptive Collection                             │   │
│  │  1. AI Planner 生成 2-4 个搜索尝试                │   │
│  │  2. 执行搜索，合并候选                            │   │
│  │  3. 质量评估 (8 个检测器)                         │   │
│  │  4. 质量低 → AI 重试改词/换平台                   │   │
│  │  5. planner 指定平台 → 强制 MediaCrawler          │   │
│  │  6. Evaluator 决定是否需要更多工具                │   │
│  └──────────────────────────────────────────────────┘   │
│         │                                                │
│         ▼                                                │
│  ┌──────────────┐  ┌──────────────┐  ┌───────────────┐  │
│  │  Cache       │  │  Session     │  │  Agent Trace  │  │
│  │  采集结果缓存 │  │  追问上下文   │  │  完整采集追踪  │  │
│  └──────────────┘  └──────────────┘  └───────────────┘  │
└─────────────────────────────────────────────────────────┘
                │
                ▼
┌─────────────────────────────────────────────────────────┐
│  采集引擎                                                  │
│  ┌────────────────────┐ ┌────────────┐ ┌───────────────┐ │
│  │ SearXNG (必选)     │ │trafilatura │ │ crawl4ai      │ │
│  │ 元搜索引擎          │ │正文抽取     │ │ 动态渲染       │ │
│  └────────────────────┘ └────────────┘ └───────────────┘ │
│  ┌────────────┐ ┌──────────────────────────────────────┐ │
│  │ Bing/百度  │ │ mediacrawler (外部 bridge, 可选)     │ │
│  │ fallback   │ │ 小红书/微博/B站/贴吧/抖音/知乎       │ │
│  └────────────┘ └──────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
```

## 快速开始

```bash
git clone https://github.com/Narylr350/source-radar.git
cd source-radar

# 1. 安装核心依赖
uv run python -m source_radar engine install

# 2. 安装 SearXNG（必选 websearch 基础设施）
uv run python -m source_radar engine install --searxng

# 3. 启动 SearXNG
uv run python -m source_radar engine start searxng

# 4. 配置 AI（支持 OpenAI / Anthropic / Gemini / 本地模型）
uv run python -m source_radar config setup

# 5. 验证 SearXNG 可用
uv run python -m source_radar probe --source searxng --query "test"

# 6. 使用
uv run python -m source_radar ask "RTX 5090 电源兼容问题"
uv run python -m source_radar verify "某产品宣布涨价 30%"
```

SearXNG 是必选的 websearch 基础设施——没有它只能靠不稳定的搜索页抓取。安装后通过 `engine start searxng` 启动，自动写入配置。

如果需要增强中文社区采集（小红书/微博/B站等），再配置 MediaCrawler：

```bash
uv run python -m source_radar engine install --community
uv run python -m source_radar cookie
```

## 真实 demo：9800x3D 超频查询

```bash
uv run python -m source_radar ask "9800x3d 微星b850 怎么超频" --format json --quiet
```

输出（简化）：

```json
{
  "query": "9800x3d 微星b850 怎么超频",
  "status": "analysis-ready",
  "evidence": [
    {"id": "ev-001", "source_type": "search-result", "title": "9800X3D超频教程...", "adapter": "search"},
    {"id": "ev-002", "source_type": "web-page", "title": "PBO2设置指南...", "adapter": "trafilatura"}
  ],
  "analysis": {
    "summary": "9800X3D 超频主要通过 PBO2 + Curve Optimizer 实现...",
    "key_points": ["BIOS 中开启 PBO2 Advanced", "CO 值建议 -20 到 -30", "..."],
    "source_notes": ["search: 5 条来源", "trafilatura: 2 条来源"],
    "disagreements": [],
    "noise_notes": ["搜索结果只作为线索，优先看正文抽取和社区原帖。"]
  },
  "agent": {
    "mode": "analysis",
    "planned_tools": ["search", "trafilatura"],
    "tool_calls": [
      {"tool": "search", "items_found": "5", "cache_hit": "False", "elapsed_ms": "1200"},
      {"tool": "trafilatura", "items_found": "2", "cache_hit": "True", "cache_age_seconds": "3600"}
    ],
    "actually_used_tools": ["search", "trafilatura"],
    "skipped_tools": [{"tool": "mediacrawler", "reason": "不需要中文社区讨论", "decided_by": "collection_evaluator"}],
    "cache_hit_count": 1,
    "fresh_tool_count": 1
  }
}
```

追问（session 自动关联）：

```bash
uv run python -m source_radar ask "那内存怎么调" --session oc --quiet
```

agent 识别为追问，`context_used: true`，综合时自动带上上文语境。

## AI agent 如何驱动整个流程

source-radar 不是脚本硬编码的爬虫管线。每次运行，内置 agent 都在做真实决策：

```
你的问题
  ↓
agent 规划：该用哪些采集工具？
  ↓
第 1 轮：搜索（必跑）
  ↓
evaluator（AI）：证据够了吗？
  → 够 → 停止采集
  → 不够 → 选下一个工具（trafilatura / crawl4ai / mediacrawler）
  ↓
（最多 3 个工具，12 张证据卡上限）
  ↓
AI 综合：基于证据卡输出回答 / 核验判断
```

agent 内部包含两个 AI 调用角色：

| 角色 | 作用 |
|------|------|
| **evaluator** | 每轮采集后判断证据是否充分，决定是否继续、选哪个工具 |
| **synthesizer** | 基于所有证据卡，输出综合回答（ask）或真伪判断（verify）|

两者都调用你配置的 AI（同一个 endpoint/model）。evaluator 失败时自动 fallback 到保守规则（search → trafilatura → 停止）。

**自适应采集规则：**

1. **先 search，再判断**：`source=auto`（默认）时，ask/verify 先执行搜索，由 evaluator 判断证据是否足够。
2. **渐进式采集**：evaluator 决定是否需要继续采集（trafilatura 正文抽取、crawl4ai 动态渲染等）。
3. **最多 3 个工具**：max_tools=3，evidence_limit=12。evaluator 无法突破上限。
4. **MediaCrawler 不默认跑**：仅当问题明确涉及中文社区经验、争议、舆论、平台讨论时，evaluator 才选择 mediacrawler。普通事实查询、编程问题、教程搜索不会触发它。
5. **采集结果可缓存**：provider.collect() 的结果写入 acquisition cache，后续相同 query 直接命中。
6. **ask/verify 支持 session context**：追问自动识别，evaluator 用 AI 判断是否与历史上下文相关。
7. **默认显示进度**：stderr 输出时间戳进度，`--quiet` 关闭。JSON stdout 始终干净、不被进度污染。

**AI 配置说明**：高质量 ask/verify/research 依赖你配置的 AI provider（OpenAI / Anthropic / Gemini / 本地模型）。未配置 AI 时，ask/verify 会退化到本地 fallback（不调用 AI），research 不可用。

## MCP Server（给外部 AI 用）

source-radar 可以作为 MCP server，让 Claude Code、Claude Desktop、MiMoCode、Cursor 等支持 MCP 的 AI 工具直接调用搜索和抓取能力。

### 安装

```bash
# 项目有专用安装器，不要直接 uv sync
uv run python -m source_radar install
```

安装器会自动处理 MCP 依赖（`mcp>=1.0`）、Trafilatura、Crawl4AI 等所有可选依赖。

### 配置

**Claude Desktop / Claude Code**，在配置文件中添加：

```json
{
  "mcpServers": {
    "source-radar": {
      "command": "uv",
      "args": ["run", "--extra", "mcp", "source-radar", "mcp"],
      "cwd": "/path/to/source-radar"
    }
  }
}
```

**MiMoCode**，在 `~/.config/mimocode/mimocode.json` 中添加：

```json
{
  "mcp": {
    "source-radar": {
      "type": "local",
      "command": ["uv", "run", "--extra", "mcp", "--directory", "你的项目路径", "source-radar", "mcp"],
      "enabled": true,
      "environment": {
        "PYTHONIOENCODING": "utf-8",
        "PYTHONUTF8": "1"
      }
    }
  }
}
```

### 暴露的工具

| 工具 | 作用 | 参数 |
|------|------|------|
| `web_search` | Bing 搜索，返回结果列表 | `query`（必填）、`limit`（默认 5，最大 10）、`site`（限定域名，如 `hltv.org`）、`page`（翻页）、`nocache`（跳过缓存） |
| `fetch_url` | 抓取单个网页正文 | `url`（必填）、`max_chars`（默认 15000）、`page`（长文档分页） |
| `search_github` | 搜索 GitHub issues/PRs | `query`（必填）、`limit`（默认 5，最大 10）、`page`（翻页）、`nocache` |
| `search_chinese_platforms` | 搜索中文平台（小红书/微博/B站等） | `query`（必填）、`platforms`（可选，如 `bili,tieba`）、`limit`（默认 3）、`nocache` |
| `fetch_github_file` | 获取 GitHub 仓库文件内容 | `repo`+`path` 或 `url`（必填）、`ref`（默认 main）、`max_chars`（默认 15000）、`page`（长文件分页） |

### 质量评估

搜索结果自动附带质量评估（`⚠️ 质量: low/medium` + `💡 建议`）。检测器包括：
- `no-candidates` — 无搜索结果
- `semantic-mismatch` — 结果与查询语义不相关
- `method-answers-missing` — 方法型查询（怎么/如何/教程）但结果多为评测/参数页
- `navigation-heavy` — 正文是导航菜单
- `language-mismatch` — 查询语言与结果语言不匹配
- `domain-concentration` — 结果集中在单一域名
- `snippet-only` — 仅有搜索摘要，未抽取正文
- `key-platform-missing` — 新闻类查询缺少主流媒体结果

### 安全限制

- `fetch_url` 只允许 http/https，拒绝 localhost、内网地址、file:// 等
- 超时 30 秒，最大返回 50000 字符
- 搜索和抓取结果走现有缓存机制（search=6h, trafilatura=24h）
- `search_chinese_platforms` 需要 MediaCrawler bridge 运行（`engine start mediacrawler`），首次调用较慢（~30s/平台），缓存后极快。默认只跑 1 个平台，可通过 `platforms` 参数指定（如 `bili,tieba`）
- `fetch_url` 对 wiki/论坛域名（liquipedia.net、hltv.org、fandom.com 等）自动使用 Crawl4AI 渲染
- 搜索结果自动评估质量，低质量结果会显示 ⚠️ 警告和 💡 建议
- Agent 内置 AI Search Planner：自动生成 2-4 个搜索尝试，质量低时自动重试改词/换平台

### AI Agent 全局指令

MCP 配置完成后，AI 工具不会自动使用 MCP 工具——需要在全局指令文件中声明。以下内容添加到你的 AI 工具全局指令中：

**MiMoCode** — 添加到 `~/.config/mimocode/AGENTS.md`：
```markdown
## Web Search & Fetch
- Use `source-radar_web_search` for web searches (Bing-based, good Chinese support, supports `site:` filter)
- Use `source-radar_fetch_url` for fetching and extracting web page content
- Use `source-radar_search_github` for searching GitHub issues and PRs
- Use `source-radar_search_chinese_platforms` for searching Chinese platforms
- Use `source-radar_fetch_github_file` for fetching raw file content from GitHub repos
```

**Claude Code** — 添加到 `~/.claude/CLAUDE.md`：
```markdown
## Web Search & Fetch
- Use source-radar MCP tools instead of built-in WebSearch/WebFetch when available
- `source-radar_web_search` for web searches (supports `site`, `page`, `nocache`)
- `source-radar_fetch_url` for page content extraction (supports `page` for long docs)
- `source-radar_search_github` for GitHub issues/PRs
- `source-radar_search_chinese_platforms` for Chinese community platforms
- `source-radar_fetch_github_file` for raw GitHub file content
```

### 使用

配置完成后，在 AI 对话中直接说"搜索 xxx"或"抓取 xxx 页面"，AI 工具会自动调用 source-radar。

## Claude Code Skill（推荐使用方式）

source-radar 的核心使用方式是 **Claude Code Skill**：安装后在对话中直接说"帮我查一下 XX"，Claude Code 自动调用 source-radar 搜索中文互联网，综合结果返回给你。

### 如果你是 AI Agent（Claude Code / Codex 等）在帮用户安装

**本项目有自己的 Agent 安装协议。不要按通用 Python/uv 项目经验自行推断安装步骤。**

#### 第 1 步：先读 Skill 文档

克隆后第一件事是读取项目的 Agent 安装指南，而不是直接跑 `uv sync`：

```bash
git clone https://github.com/Narylr350/source-radar.git
cd source-radar
python -c "from pathlib import Path; print(Path('skills/source-radar/SKILL.md').read_text(encoding='utf-8'))"
```

重点读 **"Initialization flow for AI agents"** 章节。

#### 第 2 步：安装 Skill 文件 + 非交互引擎安装

```powershell
# 安装 Skill（推荐用链接，git pull 后自动同步）
# Windows: 用 Junction（不需要管理员权限）
New-Item -ItemType Directory -Force $env:USERPROFILE\.claude\skills | Out-Null
New-Item -ItemType Junction -Path $env:USERPROFILE\.claude\skills\source-radar -Target "$PWD\skills\source-radar"

# macOS/Linux: 用符号链接
# mkdir -p ~/.claude/skills && ln -s "$(pwd)/skills/source-radar" ~/.claude/skills/source-radar

# 非交互安装引擎依赖（不会卡住，不会问你任何问题）
uv run python -m source_radar install --agent
```

#### 第 3 步：查看配置缺口

```bash
uv run python -m source_radar setup-plan --format json
```

根据返回的 `required_inputs` 向用户索要必需配置。**不要运行交互式 `install`（不带 --agent 的那个）。**

#### 禁止事项

- **不要直接跑 `uv sync` 或 `pip install`**——本项目依赖安装必须通过 `uv run python -m source_radar engine install` 或 `uv run python -m source_radar install --agent`
- **不要根据报错自行推断修复命令**——优先使用 `setup-plan` + `doctor` 的输出作为修复指引
- **不要跳过 Skill 直接凭 Python 经验操作**

### 如果你是真人手动安装

```powershell
git clone https://github.com/Narylr350/source-radar.git
cd source-radar

# 安装 Skill 文件
Copy-Item -Recurse skills/source-radar/ $env:USERPROFILE\.claude\skills\source-radar\

# 交互式一键安装（会问你 API key、打开浏览器等）
uv run python -m source_radar install
```

**推荐：用目录链接代替复制，这样 git pull 后 Skill 自动同步，不用每次手动复制：**

```powershell
# 先删除已复制的目录，再创建链接
Remove-Item -Recurse -Force $env:USERPROFILE\.claude\skills\source-radar
New-Item -ItemType Junction -Path $env:USERPROFILE\.claude\skills\source-radar -Target "$PWD\skills\source-radar"
```

macOS/Linux 用符号链接（需要项目路径保持不变）：

```bash
rm -rf ~/.claude/skills/source-radar
ln -s "$(pwd)/skills/source-radar" ~/.claude/skills/source-radar
```

### 使用 Skill

安装完成后，在 Claude Code 对话中直接说：

```
"帮我查一下 RTX 5090 电源接口问题在中文社区的讨论"
"搜一下小红书和 B 站上关于 Python 教程的评价"
"验证这个消息：XX 产品宣布涨价 30%"
```

Skill 会自动：
1. 检测引擎状态
2. source-radar 内部 evaluator 判断是否需要中文社区采集
3. 执行自适应采集、AI 综合
4. 返回分析报告（包含综合回答、关键要点、来源分布、分歧争议、噪音提示）

### 推荐：配置 MCP Server

Skill 通过 CLI 命令调用 source-radar，每次都是完整 agent 流程。如果你只需要搜索和抓取能力（不需要 AI 综合），配置 MCP Server 更轻量：

```bash
# 验证 MCP server 可用
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | uv run --extra mcp source-radar mcp
```

然后在你的 AI 工具中配置 MCP（详见上方 [MCP Server 章节](#mcp-server给外部-ai-用)）。配置后可以直接说"搜索 xxx"或"抓取 xxx 页面"，不走完整 agent 流程，响应更快。

### Skill 调用规范

- **不要手动拆 query**：用户一个问题 = 一个 ask/research/verify 命令。不要把一个复杂问题拆成多个 ask 调用。
- **不要绕过 source-radar 自己补 WebSearch/WebFetch**：source-radar 内部已做 adaptive collection。如果证据弱或缺失，如实报告，不要偷偷用自己工具补充搜索。
- **research 用 research 命令**：复杂多面问题用 `research`（走 planner/evaluator 多轮逻辑），不要混成多个 ask。

### Skill 文件结构

```
skills/source-radar/
├── SKILL.md          # 技能描述和触发条件
└── scripts/
    └── run.py        # 命令封装，自动管理服务生命周期
```

`run.py` 支持的命令：

| 命令 | 作用 |
|------|------|
| `run.py research "问题"` | 深度研究（复杂多面问题） |
| `run.py ask "问题"` | 综合信息分析 |
| `run.py verify "断言"` | 严格核验 |
| `run.py start` | 启动 MediaCrawler 服务 |
| `run.py stop` | 停止服务 |
| `run.py status` | 查看引擎状态 |
| `run.py doctor` | 检查配置并输出修复建议 |
| `run.py cookie` | 获取平台 Cookie |

## 命令行直接使用

不使用 Skill 时，也可以直接调用 CLI：

```powershell
# 一键安装
uv run python -m source_radar install

# 综合信息分析（默认显示进度，source=auto 自适应采集）
uv run python -m source_radar ask "RTX 5090 电源兼容问题的中文社区反馈"

# 启用 MediaCrawler（需先启动本地服务，见"引擎管理"）
uv run python -m source_radar ask "小红书上关于 XX 产品的真实评价" --local-services

# 深度研究（planner 自动为每个子查询选择合适工具）
uv run python -m source_radar research "9800x3d 微星b850 超频经验汇总" --max-rounds 2

# 严格核验
uv run python -m source_radar verify "某产品宣布涨价 30%"

# 安静模式（不输出进度，适合脚本/管线的 JSON 提取）
uv run python -m source_radar ask "问题" --format json --quiet

# Session context：追问自动关联历史
uv run python -m source_radar ask "9800x3d 怎么超频" --session oc
uv run python -m source_radar ask "那内存怎么调" --session oc   # 识别为追问

# Session context：禁用
uv run python -m source_radar ask "问题" --no-session

# 获取 Cookie
uv run python -m source_radar cookie

# 引擎管理
uv run python -m source_radar engine list
uv run python -m source_radar engine start mediacrawler
uv run python -m source_radar engine stop mediacrawler

# Cache 管理
uv run python -m source_radar cache status
uv run python -m source_radar cache clear
uv run python -m source_radar cache prune

# Session 管理
uv run python -m source_radar session status
uv run python -m source_radar session clear --session oc
uv run python -m source_radar session new
```

或用 PowerShell 快捷入口：

```powershell
.\source-radar.ps1 setup       # 一键安装
.\source-radar.ps1 ask "..."   # 综合分析
.\source-radar.ps1 verify "..." # 核验消息
```

### ask / verify / research 的区别

| 命令 | 适用场景 | 采集方式 | Session |
|------|---------|---------|---------|
| `ask` | 简单查询、教程查找、快速搜索 | 自适应采集（source=auto），max_tools=3 | 支持 `--session` |
| `verify` | 真伪核验、事实核查 | 自适应采集 + verify 严格模式（拒绝纯搜索结果，优先一手来源） | 支持 `--session` |
| `research` | 复杂多面问题、硬件调优、方案汇总 | Planner → 按 query 指定工具 → Collect → Dedupe → Synthesize | 暂不支持 session context |

### 自适应采集（Adaptive Collection）

ask/verify 默认 `source=auto` 时启用。工作流程：

```
Round 1: search（必跑）
  → evaluator 判断证据是否足够
    → 够 → 停止，输出
    → 不够 → Round 2: 选择下一个工具（e.g. trafilatura）
      → evaluator 再判断
        → 够 → 停止
        → 不够 → Round 3（最后一个）
```

规则：
- **max_tools=3**：最多跑 3 个

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Narylr350](https://github.com/Narylr350)
- **Source:** [Narylr350/source-radar](https://github.com/Narylr350/source-radar)
- **License:** Apache-2.0
- **Homepage:** https://github.com/Narylr350/source-radar

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** yes
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: flagged — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-narylr350-source-radar
- Seller: https://agentstack.voostack.com/s/narylr350
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
