pi-finnhub
Finnhub (공식 API) 클라이언트 for pi — 미국 주식 시세·차트·뉴스·펀더멘털·컨센서스 (무료 키, 직접 REST, 의존성 0).
Package details
Install pi-finnhub from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-finnhub- Package
pi-finnhub- Version
0.2.0- Published
- Aug 26, 2026
- Downloads
- 271/mo · 19/wk
- Author
- preinpost
- License
- MIT
- Types
- extension
- Size
- 76.8 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-finnhub
Finnhub 공식 API 클라이언트 pi 패키지 — 미국 주식 시세·차트·뉴스·펀더멘털·컨센서스.
무료 키 + 직접 REST 호출, 의존성 0 (MCP 서버 없음). 무료 티어는 미국 종목만 지원합니다 (AAPL, MSFT 등).
설치
pi install npm:pi-finnhub
# pi 재시작
사용
# pi 안에서:
/finnhub-key # finnhub.io 무료 가입 → dashboard의 API token 등록
# 그 다음 자연어로:
"AAPL 현재가" # finnhub_price
"AAPL 일봉" # finnhub_chart (resolution: D)
"MSFT 1시간봉" # finnhub_chart (resolution: 60)
"AAPL 뉴스" # finnhub_news (최근 7일)
"AAPL 펀더멘털" # finnhub_fundamentals (프로필 + 메트릭 + 컨센서스)
도구
| 도구 | 설명 |
|---|---|
finnhub_price |
현재가 — 콤마 구분 최대 10종목, 심볼당 /quote 1회 호출 (15초 캐시) |
finnhub_chart |
캔들 차트·지표 — 1/5/15/30/60(분봉, 최근 5일)/D(일봉, 기본, 최근 1년)/W/M, 공용 지표(pi-finance-core analyze) |
finnhub_news |
기업 뉴스 — 최근 7일 기본 (from/to YYYY-MM-DD 선택), 최대 20건, summary 200자 (5분 캐시) |
finnhub_fundamentals |
프로필(company-profile2) + 밸류에이션 메트릭(/stock/metrics PE·PBR·배당·EPS·마진·ROE/ROA·FCF) + 애널리스트 컨센서스(/stock/recommendation) (30분 캐시) |
⚠️ 무료 티어 한도 60 req/min —
finnhub_price10종목 호출 시 내부 스로틀(1100ms 간격)로 순차 처리됩니다. 모든 툴은 참고용이며 투자 결정의 책임은 사용자에게 있습니다.
인증·한도
- 키: finnhub.io 무료 가입 → dashboard → API token. 쿼리 파라미터
token으로 전달. /finnhub-key로 등록하거나 환경변수FINNHUB_API_KEY로 지정 가능합니다.- 무료 티어: 미국 종목만, 60 req/min. 유료 티어는 다른 시장/엔드포인트 추가 제공.
- 에러: HTTP 401(키 오류)/403(무료 티어 미지원)/429(레이트 초과) — 본문
{"error": "..."}포함.
아키텍처
index.ts — thin entry: export default registerExtension
src/
client.ts 전송 계층 — fetch + token 쿼리 + 레이트리밋 + TTL 캐시 + 에러 envelope
ratelimit.ts 무료 60 req/min 스로틀 (기본 간격 1100ms, tail 체인)
cache.ts TTL 메모리 캐시 (TtlCache + cached 헬퍼)
secret.ts 공용 시크릿 스토어 위 pi-finnhub 키 뷰 (mergeWrite)
roles/finnhub.ts 현재가·차트·뉴스·펀더멘털 (정규화 + Bar 변환)
agent/ — pi 통합
extension.ts registerExtension
tools.ts finnhub_* 4 툴 (execute는 roles 위임, compact 응답)
commands.ts /finnhub-key, /finnhub-status
환경변수
| 변수 | 기본 | 설명 |
|---|---|---|
FINNHUB_API_KEY |
— | API token (스토어 미등록 시 폴백) |
FINNHUB_RATE_LIMIT_MULTIPLIER |
1.0 |
호출 간격 배율 (2.0 = 2배 완화, 0 = 스로틀 해제) |
FINNHUB_DISABLE_CACHE |
— | 1이면 TTL 캐시 비활성 (실시간 확인용) |
KIS_SECRET_STORE / KIS_KEYS_FILE |
— | 공용 시크릿 스토어 백엔드/파일 제어 |
시크릿 저장소
전용 네임스페이스(pi-finnhub)를 사용합니다. 백엔드 우선순위: OS 키체인 → 0600 파일 폴백(~/.pi/agent/pi-finnhub-keys.json).
자세한 동작(적응형 폴백)은 pi-finance-core 참고.
개발
이 패키지는 pi-finances 모노레포(pnpm workspace)의 일부입니다.
pnpm install # 루트에서
pnpm --filter pi-finnhub typecheck
pnpm --filter pi-finnhub exec node --experimental-transform-types scripts/smoke.mjs