{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_5a8svynbpqn5","handle":"weekly-product-digest-mcp","url":"https://wellknown.network/agents/weekly-product-digest-mcp","links":{"self":"https://wellknown.network/agents/weekly-product-digest-mcp/record.json","html":"https://wellknown.network/agents/weekly-product-digest-mcp","markdown":"https://wellknown.network/agents/weekly-product-digest-mcp/record.md","api":"https://wellknown.network/api/v1/agents/weekly-product-digest-mcp","status":"https://wellknown.network/api/v1/agents/weekly-product-digest-mcp/status","claim":"https://wellknown.network/agents/weekly-product-digest-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/weekly-product-digest-mcp/claim.json","badge":"https://wellknown.network/agents/weekly-product-digest-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:weekly-product-digest-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"weekly-product-digest-mcp","summary":"MCP server that aggregates weekly startup/product/indie news into a report","description":"# Weekly Product Digest MCP \n \n주간 스타트업·제품·인디메이커 뉴스를 여러 공개 소스에서 모아 **리포트 형식**으로 뽑아주는 MCP 서버입니다. (FastMCP / Python) \n \n## 수집 소스 \n \n| Key | 소스 | 방식 | 점수 | \n|-----|------|------|------| \n| `techcrunch` | TechCrunch | RSS | – | \n| `betanews` | BetaNews | RSS | – | \n| `producthunt` | Product Hunt | RSS | – | \n| `indiehackers` | Indie Hackers | **3단 폴백**: 비공식 피드 → SSR HTML 파싱 → (선택) Algolia | – | \n| `hackernews` | Hacker News (Show HN) | 공개 Algolia API | ⭐ points | \n| `reddit` | Reddit (r/SaaS, r/indiehackers) | 서브레딧 RSS (`/top/.rss`) | – | \n \n> **Reddit 메모**: Reddit은 미인증 JSON 엔드포인트를 403으로 차단하므로 서브레딧 **Atom 피드**(`/r/<sub>/top/.rss?t=week`)를 사용합니다. RSS엔 추천수가 없어 Reddit 항목은 점수 하이라이트엔 안 뜨고 자체 섹션에만 표시됩니다. 서브레딧 전부 실패 시 해당 섹션은 \"Unavailable\"로 정직하게 표기됩니다. \n \n- 모든 소스는 **병렬 수집**되고, 한 소스가 실패해도 리포트는 나머지로 완성됩니다(섹션에 실패 사유 표기). \n- HN Show HN / Reddit은 인디해커 성격을 보강하는 백업 겸 확장 소스입니다. \n- 전 구간 UTF-8 처리 (한글 Windows의 cp949 디코딩 문제 회피). \n \n### Indie Hackers 이중화 (3단 폴백) \n \n공식 API가 없어 단일 소스 의존을 피하도록 계층화했습니다. 각 계층은 앞 계층이 **빈 결과일 때만** 다음으로 넘어갑니다. \n \n1. **비공식 RSS** — `feed.indiehackers.world` (+ 주간 top 폴백). 발행일 포함. \n2. **SSR HTML 파싱** — `indiehackers.com` 홈/`/tech`/`/starting-up`이 서버렌더링이라 글 링크가 HTML에 그대로 있음. **키·인덱스 불필요**, 로테이트에 안 깨짐. 발행일은 없어 최신 글 위주로 수집. \n3. **Algolia (선택)** — 아래 환경변수가 모두 설정된 경우에만 동작. \n \n> **Algolia 관련 실측 메모**: indiehackers.com의 Algolia app(`applicationId`, `searchOnlyApiKey`)은 페이지에 공개돼 있으나 config상 `places.js`(주소 자동완성)에 연결돼 있고, **글 검색용 인덱스명은 페이지에 노출되지 않습니다**(콘텐츠 백엔드는 Firebase). 그래서 Algolia 계층은 리버스 엔지니어링한 키를 하드코딩하지 않고, 운영자가 **확인된 인덱스명**을 직접 넣어야 켜지는 옵션으로 뒀습니다. 클라이언트 키/인덱스는 예고 없이 로테이트되므로 취약한 경로로 간주하세요. \n \nAlgolia 계층을 켜려면 (선택): \n \n```powershell \n$env:IH_ALGOLIA_APP_ID = \"<application id>\" \n$env:IH_ALGOLIA_API_KEY = \"<search-only api key>\" \n$env:IH_ALGOLIA_INDEX   = \"<확인된 콘텐츠 인덱스명>\" \n``` \n \n세 값이 모두 있으면 1·2단이 빈 결과일 때 Algolia로 폴백합니다. 하나라도 비면 계층이 조용히 건너뜁니다. \n \n## 리포트 구조 (표준 흐름) \n \n리포트는 위에서부터 다음 순서로 구성됩니다: \n \n1. **🎯 Key Picks — 제품 출시 · 투자 우선** — 전체 수집분을 가로질러 **제품 출시**와 **투자** 신호로 채점해 가장 중요한 항…","publisher":{"name":"weekly-product-digest-mcp contributors","url":null},"homepage":"https://github.com/OWNER/weekly-product-digest-mcp","repository":"https://github.com/OWNER/weekly-product-digest-mcp","version":"1.0.0","license":"MIT License \n         \n        Copyright (c) 2026 weekly-produc…","protocols":["mcp"],"tags":["mcp","digest","news","startup","product-hunt","hacker-news","rss"],"pricing":null,"endpoints":[{"url":"pypi:weekly-product-digest-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"data.news","name":"News & Feeds","confidence":1,"provenance":"declared"}],"categories":["data"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"weekly-product-digest-mcp","registry":"pypi","observedAt":"2026-09-10T15:25:28.376Z","publishedAt":"2026-07-16T00:48:25.024495Z","latestVersion":"1.0.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"weekly-product-digest-mcp","url":"https://pypi.org/project/weekly-product-digest-mcp/","firstSeenAt":"2026-09-10T15:24:32.288Z","fetchedAt":"2026-09-10T15:24:32.288Z","normalizedAt":"2026-09-10T15:24:32.288Z"}]},"firstSeenAt":"2026-09-10T15:24:32.288Z","updatedAt":"2026-09-10T15:25:28.376Z"}