pi-naver-news
네이버 뉴스 검색 API 클라이언트 for pi — 한국 증권·종목 뉴스 검색 (NAVER API HUB 공식, 무료·월 775,000건, 직접 REST, 의존성 0).
Package details
Install pi-naver-news from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-naver-news- Package
pi-naver-news- Version
0.2.1- Published
- Aug 10, 2026
- Downloads
- 116/mo · 19/wk
- Author
- preinpost
- License
- MIT
- Types
- extension
- Size
- 72.3 KB
- Dependencies
- 1 dependency · 2 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-naver-news
네이버 뉴스 검색 API 클라이언트 pi 패키지 — 한국 증권·종목 뉴스 검색.
REST 직접 호출(의존성 0, MCP 서버 없음). 인증은 NAVER API HUB 키(API Key ID/Secret 헤더).
⚠️ 2026-07-31부터 네이버 개발자센터의 Search API 신규 신청이 종료되어 신규 키는 모두 NAVER API HUB (네이버클라우드)에서 발급합니다. 기존 개발자센터 키는
legacy모드로 2027-06-30까지 사용 가능합니다.
설치
pi install npm:pi-naver-news
# pi 재시작
사용
# pi 안에서:
/naver-news-key # API Key ID / API Key 등록 (기본 hub 모드 — NAVER API HUB)
/naver-news-status # 연동 상태 진단 (모드/키/백엔드/레이트리밋/캐시/오늘 호출 수)
# 그 다음 자연어로:
"삼성전자 최근 뉴스" # naver_news_search (sort=date, 최근 7일)
"005930 관련 기사 정확도순 20개" # naver_news_search (display=20, sort=sim)
"코스피 오늘 기사 없나?" # naver_news_search (days=1)
도구
| 도구 | 설명 |
|---|---|
naver_news_search |
한국 뉴스 검색 — query 필수, display(≤100)/start(≤1000)/sort(sim·date)/days(최근 N일 필터) |
⚠️ API에 날짜 필터가 없어
days는 클라이언트 필터입니다 (기본 7, 0=필터 없음). 제목/요약의<b>하이라이트와 HTML 엔티티는 제거되어 전달됩니다.
키 등록 (NAVER API HUB — 신규 기본)
- 네이버클라우드 콘솔 가입/로그인 (리전·플랫폼 선택 → 적용)
- 메뉴 → 전체 서비스 → Application Services → NAVER API HUB 구독
- 콘솔에서 Application 생성 → 발급된 API Key ID / API Key 확인
- pi에서
/naver-news-key실행 → 기본 hub 모드로 두 값 등록
legacy 모드 (기존 개발자센터 키 보유자만)
2026-07-31 이전 발급 키가 있으면 /naver-news-key에서 모드에 legacy 입력
(X-Naver-Client-Id/Secret, openapi.naver.com) — 2027-06-30까지만 동작합니다.
한도 (2026-08 현재)
- HUB (기본): 월 775,000건 통합 / 키당 50 RPS — 현재 한시 무료, 향후 유료 예정
- legacy: 하루 25,000회 (2027-06-30 종료)
- 기본 스로틀 300ms (~3.3 req/s) —
NAVER_NEWS_RATE_LIMIT_MULTIPLIER로 배율 조정 (0이면 해제) - TTL 캐시로 호출 절약: 검색 60s (
NAVER_NEWS_DISABLE_CACHE=1로 비활성화) - 401 = 키 오류 / 403 = 구독·Application 미생성 (또는 legacy에서 검색 API 미활성화) / 429 = 한도 초과
아키텍처
index.ts — thin entry: export default registerExtension
src/
cache.ts TTL 메모리 캐시 (검색 60s, NAVER_NEWS_DISABLE_CACHE=1 비활성)
client.ts transport — 모드별 엔드포인트/헤더 (hub: naverapihub.apigw.ntruss.com
+ X-NCP-APIGW-API-KEY-ID/KEY, legacy: openapi.naver.com + X-Naver-*)
+ 레이트리밋 + 에러 매핑 (평면형/중첩형 오류 모두 파싱, 401/403/429)
ratelimit.ts promise-chain 레이트리밋 (기본 300ms, NAVER_NEWS_RATE_LIMIT_MULTIPLIER 배율)
+ 호출 카운터 (자정 리셋, /naver-news-status에서 확인)
secret.ts pi-naver-news 전용 키 스토어 (mode: hub/legacy, mergeWrite,
env 폴백 NCP_APIGW_API_KEY_ID/KEY 또는 NAVER_CLIENT_ID/SECRET)
roles/ — 도메인 역할 (typed wrapper, 에이전트가 직접 import)
naver-news.ts 검색 정규화 (decodeHtml: <b>·엔티티 제거, pubDate → ISO, days 필터)
agent/ — pi 통합
extension.ts registerExtension
tools.ts naver_news_search 툴 (execute는 roles 위임)
commands.ts /naver-news-key, /naver-news-status
시크릿 저장소
namespace pi-naver-news (env 컨트롤은 공용 KIS_SECRET_STORE/KIS_KEYS_FILE).
백엔드 우선순위: OS 키체인(@napi-rs/keyring) → 0600 파일 폴백(~/.pi/agent/pi-naver-news-keys.json).
자세한 동작(적응형 폴백/마이그레이션)은 pi-finance-core 참고.
개발
이 패키지는 pi-finances 모노레포(pnpm workspace)의 일부입니다.
pnpm --filter pi-naver-news typecheck
pnpm --filter pi-naver-news exec node --experimental-transform-types scripts/smoke.mjs