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。
This server cannot be deployed
Maintenance
Related MCP Connectors
Free URL metadata extraction API. Extract titles, descriptions, Open Graph tags, and favicons from any URL. No API keys required.
Zero-signup anonymous link-unfurl API. One GET returns clean JSON metadata for any public URL.
Link-preview metadata and clean page-to-Markdown for any public URL. No install.
Same link preview data as link-preview-api, ~1/3 the price via a shared cache.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides functionality to fetch and transform web content in various formats (HTML, JSON, plain text, and Markdown) through simple API calls.135,019 npm1MIT
- AlicenseNot gradedqualityDmaintenancePaste a URL to see exactly how it renders as a social card on Twitter, LinkedIn, Facebook, and Slack. Generate custom OG images from templates.MIT
- AlicenseNot gradedqualityDmaintenanceConverts 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
- AlicenseNot gradedqualityDmaintenanceZero-signup link-preview API that returns clean metadata (title, description, image, etc.) from any public URL. No API key required.2MIT