Skip to main content
Glama
nexus-mcp-infra

url-metadata-api

URL Metadata API

给定一个 URL,返回从其 OpenGraph/meta 标签中抓取的 title/description/image/site_name(Microlink 风格的链接预览 API)。NEXUS 候选 #4 -- 手动构建,非 FORGE 生成。

  • POST /extract {"url": "..."} -- 通过 x402 收费 $0.01(Base Sepolia 测试网)。

  • 位于 /mcp 的 MCP 工具 extract_url_metadata -- 目前免费,请参阅“已知限制”。

  • GET /health、GET /.well-known/agent-card.json、GET /openapi.json(包含 x-payment-info)。

部署目标:Cloud Run,而非 Railway

基于 products/mcp-boilerplate-gumroad/template/ 构建(与 similarity-search-api/ws 相同的 MCP+x402+FastAPI 模式),针对 Cloud Run 而非 Railway 进行了适配。有关可复用的部署流水线,请参阅 skills/infra-deploy-ops(仓库根目录下的 scripts/deploy_cloud_run.sh)。两步部署(与 boilerplate README 中记录的陷阱相同):

# 1. First deploy -- PUBLIC_DOMAIN not known yet, every real request 421s until step 2.
./scripts/deploy_cloud_run.sh url-metadata-api manual_assets/url-metadata-api

# 2. Grab the printed *.run.app URL, then:
gcloud run services update url-metadata-api --region us-central1 --project nexus-505016 \
    --update-env-vars PUBLIC_DOMAIN=<the-real-domain>

Related MCP server: mcp-pageshot

已知限制(故意不修复 -- CLAUDE.md SS3,没有证据表明需要就不加门控)

  • MCP 工具调用不收费。 PaymentMiddlewareASGI 仅对 POST /extract 进行门控;MCP 工具直接调用进程内的共享 extract_metadata() 函数(不会通过 HTTP 重新进入 ASGI 应用——正是这种重新进入路径导致了 skills/mcp-server-generation 中记录的“每次 MCP 调用都会收到虚假 402”的真实 bug)。添加真正的 MCP 原生 x402 门控(x402[...,mcp] 自己的支付门控机制,与 FORGE 的生成器对 similarity-search-api/ws 所做的相同)是一项真正的工作,并且存在真正的陷阱(重复的 ctx 参数注入,请参阅 memory)——在 7 天窗口内该候选显示真实 MCP 流量之前,此工作被推迟。在此之前,此资产可以记录量(traffic_events/mcp_call_events),但无法记录 MCP 收入。

  • 没有按调用方进行速率限制。 对于 7 天的临时测量来说没问题;如果它存活下来,再添加。

  • SSRF 防护基于 IP 范围,而不是完整的白名单。 在初始请求和每次手动跟随的重定向跳转(最多 3 次)中,拒绝私有/环回/链路本地/保留目标 IP(包括云元数据的 169.254.169.254)。不防御检查与实际连接之间的 DNS 重绑定(这是该候选范围内已接受的风险)。

测量(设置会话的第 3 部分)

从首次实际部署起的 7 天窗口。事实来源:traffic_events/revenue_events/mcp_call_events 表(asset_name = 'url-metadata-api'),而不是 Cloud Run 日志。第 7 天:如果真实流量为零(过滤爬虫后),则暂停/删除 Cloud Run 服务(gcloud run services delete url-metadata-api --region us-central1 --project nexus-505016)并移至候选 #3。

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides functionality to fetch and transform web content in various formats (HTML, JSON, plain text, and Markdown) through simple API calls.
    135,019 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Converts any URL into clean, LLM-ready Markdown, text, or HTML with production-grade features like SSRF protection, rate limiting, retries, caching, and structured error handling.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Zero-signup link-preview API that returns clean metadata (title, description, image, etc.) from any public URL. No API key required.
    2
    MIT