内容
# glance-mcp
<p align="center">
<a href="https://github.com/casey/just"><img src="https://img.shields.io/badge/just-ready_to_go-7c5cfc?style=flat-square&logo=just&logoColor=white" alt="Just"></a>
<a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff"></a>
<a href="https://python.org"><img src="https://img.shields.io/badge/Python-3.13+-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python"></a>
<a href="https://github.com/PrefectHQ/fastmcp"><img src="https://img.shields.io/badge/FastMCP-3.2-7c5cfc?style=flat-square" alt="FastMCP"></a>
</p>
> 📖 **[安装指南](INSTALL.md)** — 快速开始,手动设置和故障排除
<div align="center">
**一览无遗的信息在一个MCP中**
*一个小型**容器**,用于收集信息源、天气、舰队健康状况、重定向和OPML,以便代理和工具可以快速浏览世界,而无需同时处理五个集成。*
</div>
---
## 为什么选择glance?
**Glance** 是一个产品理念,用一个词来概括:**快速态势感知**,而非深入存档。该服务器是一个**容器**,一个地方可以**检索**您原本会在途中浏览的信息:**一个联合信息源中有什么新内容**,**这里的天气预报是什么**,**我的本地MCP是否健康**,**这个URL会重定向到哪里**,**这个OPML导出中有哪些URL**。它**不是**知识库MCP、爬虫或完整信息源阅读器的替代品;它是一个轻量级的HTTP外观,可以快速为您提供这些答案。
---
## 您可能会使用此工具如果
| | |
|--:|--|
| **您想要** | 一个MCP来**浏览RSS/Atom**,**检查Open-Meteo天气**(无需API密钥),**探测并行`/health` URL**,**跟踪重定向**,以及**解析OPML信息源列表**,并采用保守的SSRF规则。 |
| **您不需要** | 第二大脑、用于任意站点的爬虫或订阅管理;请参阅 [docs/POLICY_NO_SCRAPE.md](docs/POLICY_NO_SCRAPE.md)。 |
**仓库:** [github.com/sandraschi/glance-mcp](https://github.com/sandraschi/glance-mcp) **`glama.json`** 在仓库根目录。
---
## 内部有什么
| 区域 | 功能 |
|------|----------------|
| **信息源** | 通过 `feedparser` 的RSS/Atom,大小上限下载;[docs/EXAMPLE_FEEDS.md](docs/EXAMPLE_FEEDS.md) 中有精选示例。原始信息源在浏览器中显示为XML;**网页界面**列出条目并提供 **Feedly / Inoreader** 订阅链接。 |
| **天气** | Open-Meteo `https://api.open-meteo.com/v1/forecast` WGS84 纬度/经度,无供应商密钥。 |
| **舰队** | 并行GET您的MCP健康URL(环回/LAN;阻止云元数据IP)。 |
| **重定向** | 跳转式重定向跟踪(HEAD/GET)。 |
| **OPML** | 从订阅导出XML中提取 `xmlUrl` 列表(防御性解析)。 |
---
## MCP工具
| 工具 | 角色 |
|------|------|
| `rss_fetch_feed` | 信息源网址 + `max_items` (1100) |
| `open_meteo_forecast` | `latitude` , `longitude` , `timezone` , `forecast_days` |
| `fleet_http_probe` | `urls[]` , `timeout_seconds` , `max_concurrency` |
| `http_redirect_trace` | URL的重定向链 |
| `opml_list_feeds` | OPML 信息源网址列表 |
REST镜像:`POST /api/rss/fetch` , `/api/weather/forecast` , `/api/probe` , `/api/resolve/trace` , `/api/opml/feeds` (与SPA相同的想法)。
---
## 安装
**仓库:** [github.com/sandraschi/glance-mcp](https://github.com/sandraschi/glance-mcp)。您需要在磁盘上拥有该项目,然后`uv sync`才能正常工作:
```powershell
git clone https://github.com/sandraschi/glance-mcp.git
Set-Location glance-mcp
uv sync
```
后续命令假设您的shell位于**仓库根目录**。
---
## 运行
**标准输入输出(Cursor / Claude):**
```powershell
uv sync
uv run glance-mcp
```
**HTTP + MCP 在 `/mcp`(舰队 / 桥接):**
```powershell
uv run glance-mcp --serve
```
- **API:** `http://127.0.0.1:10776` `/health` , `/docs` , MCP `http://127.0.0.1:10776/mcp`
- **环境变量:** `GLANCE_MCP_HOST` , `GLANCE_MCP_PORT` (默认 **10776**), `GLANCE_MCP_HTTP_PATH` (默认 `/mcp`)
**完整SPA(Vite **10777**):**
```powershell
.\web_sota\start.ps1
```
打开 `http://127.0.0.1:10777/` (代理 `/api` 和 `/health` 至 **10776**)。用户界面:**信息源**,**天气**,**舰队探测**,**重定向**,**OPML**;侧边栏折叠,状态保存在 `localStorage` 中。
---
## 配置
| 环境变量 | 默认值 | 描述 |
|-----|---------|-------------|
| `GLANCE_MCP_HOST` | `127.0.0.1` | 绑定地址 |
| `GLANCE_MCP_PORT` | `10776` | FastAPI 端口 |
| `GLANCE_MCP_HTTP_PATH` | `/mcp` | 流式MCP的安装路径 |
| `GLANCE_RSS_MAX_BYTES` | `3145728` | 最大信息源下载大小 |
| `GLANCE_RSS_ALLOW_PRIVATE_HOSTS` | `0` | 设置为 `1` 以允许RFC1918/环回RSS URL |
---
## 开发者
```powershell
uv sync --extra dev
uv run ruff check .
uv run ruff format .
uv run pytest tests -v
```
**任务:** `just --list` `run`/`serve` , `stdio` , `lint`/`check` , `format`/`fmt` , `test` , `install` , `install-web` , `web`/`start` , `clean` , `health`。
**产品说明:** [docs/PRD.md](docs/PRD.md) **变更日志:** [CHANGELOG.md](CHANGELOG.md)。
---
## 🛡️ 工业质量栈
该项目遵循 **SOTA 14.1** 高保真代理编排的工业标准:
- **Python(核心):** [Ruff](https://astral.sh/ruff) 用于检查和格式化。对核心处理程序中的 `print` 语句(`T201`)采取零容忍政策。
- **Web应用程序(UI):** [Biome](https://biomejs.dev/) 用于毫秒级检查。严格执行 `noConsoleLog`。
- **协议合规性:** 加强 `stdout/stderr` 隔离,以确保抗崩溃的JSON-RPC通信。
- **自动化:** [Justfile](./justfile) 适用于所有舰队操作的配方(`just lint`,`just fix`,`just dev`)。
- **安全:** 通过 `bandit` 和 `safety` 进行自动审计。
## 许可证
MIT