Guides / MCP

MCP 연결

Claude, ChatGPT, Cursor 같은 AI 도구에서 Phoenix AI의 공시·재무·시세 데이터를 도구로 씁니다. Data API 키(ck_live_)로 붙으면 Data API 도구가, PRO API 키나 OAuth로 붙으면 대화형 리서치를 포함한 PRO 도구가 열립니다. 플랜과 한도는 각 API의 것을 그대로 씁니다.

키에 따라 열리는 도구

Data API 키(ck_live_…)로 연결하면 Data API 도구가, PRO API 키(ck_pers_…)나 OAuth로 연결하면 PRO 도구가 나옵니다. Data API 키로 ask_phoenix 같은 PRO 도구를 부르거나 API 문서 세션 키(ck_docs_…)로 연결하면 WRONG_KEY_SCOPE를 받습니다. 아래 Data API 키로 연결을 보세요.

서버 정보

MCP 서버 정보
항목값
서버 주소https://www.chickstockfi.com/openapi/pro/v1/mcp
전송 방식Streamable HTTP(JSON-RPC 2.0), 상태 없음. POST만 받고 GET(SSE)·DELETE는 405입니다.
인증Data API 키(Authorization: Bearer ck_live_…) — Data API 도구 · PRO API 키(Authorization: Bearer ck_pers_…) 또는 OAuth 2.1(PKCE · 동적 클라이언트 등록) — PRO 도구
범위(scope)mcp 하나. 쓸 수 있는 도구는 계정의 PRO 플랜이 정합니다.
필요한 플랜Data API 키: Data API 플랜(PoC · Launch · Business · Scale · Enterprise). PRO API 키·OAuth: PRO 플랜(Data · Ask · Bundle 중 하나). Data만 있으면 질문 도구가 없고, Ask만 있으면 데이터 도구가 없습니다.

OAuth 인가 서버(issuer)는 https://www.chickstockfi.com/openapi/pro/v1입니다. MCP 연결은 www.chickstockfi.com 주소를 쓰세요.

Data API 키로 연결

Data API 고객은 Data API 키(ck_live_…)를 Authorization 헤더에 넣어 연결합니다. PRO API 플랜은 없어도 됩니다. 서버 주소는 같고, 어떤 키로 붙느냐에 따라 나오는 도구가 달라집니다.

  • 도구 하나가 Data API 엔드포인트 하나에 대응합니다. 도구 호출 1번은 Data API 요청 1번이고, REST와 같은 하루 한도·분당 한도에서 셉니다.
  • tools/list에는 그 키로 쓸 수 있는 도구만 나옵니다. 계약하지 않은 시장의 도구는 빠지고(한국만 계약했으면 get_earnings_calendar가 없습니다), 예전 Free 키는 get_news·search_news·grounded_answer·get_api_usage만 나옵니다.
  • 결과는 REST 응답 본문에 usage가 붙은 모양입니다. quota(하루)·rate_limit(분당)가 들어 있고, AI 호출 한도가 있는 계정(PoC · Launch · Business · Scale)은 ai_quota도 있습니다.
  • 오류 코드와 문구는 REST와 같습니다. 예: MARKET_NOT_ENTITLED, PLAN_REQUIRED, POC_ENDED, QUOTA_EXCEEDED, RATE_LIMITED, AI_QUOTA_EXCEEDED. PoC가 끝나면 연결 단계에서 403 POC_ENDED가 옵니다.
  • OAuth 로그인은 PRO 계정용입니다. Data API 키는 헤더로 연결하세요. API 문서 세션 키(ck_docs_…)로는 연결할 수 없고(401 WRONG_KEY_SCOPE), ask_phoenix 같은 PRO 도구를 부르면 WRONG_KEY_SCOPE가 옵니다.

Claude Code

bash
claude mcp add --transport http phoenix-data https://www.chickstockfi.com/openapi/pro/v1/mcp \
  --header "Authorization: Bearer $PHOENIX_DATA_KEY"

Claude Desktop

claude_desktop_config.json

json
{
  "mcpServers": {
    "phoenix-data": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.chickstockfi.com/openapi/pro/v1/mcp", "--header", "Authorization:${PHOENIX_AUTH}"],
      "env": { "PHOENIX_AUTH": "Bearer ck_live_xxxxxxxx" }
    }
  }
}

Cursor

~/.cursor/mcp.json

json
{
  "mcpServers": {
    "phoenix-data": {
      "url": "https://www.chickstockfi.com/openapi/pro/v1/mcp",
      "headers": { "Authorization": "Bearer ck_live_xxxxxxxx" }
    }
  }
}

AI 호출

grounded_answer는 답 모델을 부를 때마다 AI 호출 1회를 씁니다. get_disclosure_summary·get_stock_briefing은 요약·브리핑을 새로 만들 때만 1회를 씁니다. run_data_query는 모델을 부르지 않아 세지 않습니다. 한도는 등급별 하루 AI 호출 한도이고 REST와 함께 셉니다(호출 한도와 쿼터).

Data API 도구

엔드포인트 경로는 https://api.chickstockfi.com/openapi/v1 아래입니다.

Data API 도구 목록
도구Data API 엔드포인트시장참고
get_company_financialsGET /companies/{symbol}/financialsKR · US
get_company_metricsGET /companies/{symbol}/metricsKR · US
get_company_segmentsGET /companies/{symbol}/segmentsKR · US
get_company_dividendsGET /companies/{symbol}/dividendsKR · US
get_company_consensusGET /companies/{symbol}/consensusKR · US
get_company_guidanceGET /companies/{symbol}/guidanceKR · US
get_us_earnings_surprisesGET /companies/{symbol}/earnings-surprisesUS
get_us_analyst_ratingsGET /companies/{symbol}/analyst-ratingsUS
get_company_disclosuresGET /companies/{symbol}/disclosuresKR · US
get_net_income_splitGET /companies/{symbol}/net-income-splitKR
get_quoteGET /quotes/{symbol}KR
get_disclosure_textGET /disclosures/{id}KR
get_disclosure_summaryGET /disclosures/{id}/summaryKR새로 만들 때 AI 호출
get_stock_briefingGET /briefings/{symbol}KR새로 만들 때 AI 호출
get_major_holdersGET /major-holders/{symbol}KR
get_insider_tradesGET /insider-trades/{symbol}KR
get_treasury_stockGET /treasury/{symbol}KR
get_employeesGET /employees/{symbol}KR
get_credit_ratingsGET /credit-ratings/{symbol}KR
get_dividend_tableGET /dividends/{symbol}KR
get_corporate_actionsGET /corporate-actions[/{symbol}]KR
get_filing_eventsGET /eventsKR
get_ir_calendarGET /ir-calendarKR
get_ir_materialsGET /ir-materialsKR
get_ipo_offeringsGET /ipo-offeringsKR
get_ipo_listingsGET /ipo-listingsKR
get_clinical_trialsGET /clinical-trialsKR
get_earnings_calendarGET /earningsUS
get_economic_calendarGET /economic-calendarKR · US
get_newsGET /news[/{symbol}]KR · USFree 키도
search_newsGET /searchKRFree 키도
grounded_answerGET /ragKR · USAI 호출 · Free 키도
run_data_queryPOST /queryKR · US
get_api_usageGET /keyKR · USFree 키도

클라이언트별 연결

Claude Code

bash
# PRO API 키로 연결
claude mcp add --transport http phoenix https://www.chickstockfi.com/openapi/pro/v1/mcp \
  --header "Authorization: Bearer $PHOENIX_PRO_KEY"

# OAuth로 연결: 헤더 없이 추가한 뒤 Claude Code에서 /mcp → phoenix → 인증
claude mcp add --transport http phoenix https://www.chickstockfi.com/openapi/pro/v1/mcp

Claude Desktop

키 없이 연결하려면 설정 → 커넥터 → 커스텀 커넥터 추가에서 서버 주소를 넣고 연결합니다. 브라우저에서 로그인하고 동의하면 끝납니다. 키로 연결하려면claude_desktop_config.json에 mcp-remote를 씁니다.

claude_desktop_config.json

json
{
  "mcpServers": {
    "phoenix": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.chickstockfi.com/openapi/pro/v1/mcp", "--header", "Authorization:${PHOENIX_AUTH}"],
      "env": { "PHOENIX_AUTH": "Bearer ck_pers_xxxxxxxx" }
    }
  }
}

claude.ai 웹·앱

설정 → 커넥터 → 커스텀 커넥터 추가 → URL에 서버 주소 → 연결 → 로그인 → 동의. OAuth만 씁니다.

ChatGPT

개발자 모드의 앱·커넥터 만들기에서 MCP 서버 URL에 같은 주소를 넣고, 인증은 OAuth를 고릅니다.

Cursor

~/.cursor/mcp.json

json
{
  "mcpServers": {
    "phoenix": {
      "url": "https://www.chickstockfi.com/openapi/pro/v1/mcp",
      "headers": { "Authorization": "Bearer ck_pers_xxxxxxxx" }
    }
  }
}

그 밖의 MCP 클라이언트

Streamable HTTP를 지원하면 서버 주소와 Authorization 헤더만 넣으면 됩니다. 연결 확인은 curl로도 할 수 있습니다.

bash
curl -s https://www.chickstockfi.com/openapi/pro/v1/mcp \
  -H "Authorization: Bearer $PHOENIX_PRO_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

OAuth 흐름

  1. 클라이언트가 키 없이 서버를 부르면 401과 보호 자원 메타데이터 주소를 받습니다.
  2. 메타데이터에서 인가 서버를 찾고, 동적 클라이언트 등록(/oauth/register)을 합니다.
  3. 브라우저에서 /oauth/authorize → 로그인 → 동의 화면으로 이어집니다. 동의 화면에 앱 이름, 돌아갈 주소, 계정, 플랜으로 쓸 수 있는 기능이 보입니다.
  4. 승인하면 클라이언트가 코드를 토큰으로 바꿉니다(PKCE S256 필수). 접근 토큰(ck_mcp_at_…)은 1시간, 갱신 토큰은 30일이고 쓸 때마다 바뀝니다.
  5. 유효한 PRO 플랜이 있어야 승인됩니다. 토큰을 받은 뒤에도 요청마다 플랜을 다시 확인합니다.
http
HTTP/2 401
WWW-Authenticate: Bearer resource_metadata="https://www.chickstockfi.com/openapi/pro/v1/.well-known/oauth-protected-resource/mcp", scope="mcp"
OAuth 엔드포인트
경로용도
/.well-known/oauth-protected-resource/mcp보호 자원 메타데이터(RFC 9728)
/.well-known/oauth-authorization-server인가 서버 메타데이터(RFC 8414)
/oauth/register동적 클라이언트 등록(RFC 7591)
/oauth/authorize인가 요청 → 로그인·동의
/oauth/token코드 교환 · 토큰 갱신
/oauth/revoke토큰 폐기(RFC 7009)

경로는 모두 https://www.chickstockfi.com/openapi/pro/v1 아래에 있습니다. 계정당 살아 있는 연결은 20개이고, 넘으면 오래된 연결부터 끊깁니다.

PRO 도구(PRO API 키 · OAuth)

MCP 도구 목록
도구플랜 상품하는 일
search_disclosuresData회사·시장·기간·유형으로 국내·미국 공시 검색, 저장된 AI 요약 포함
get_disclosureData공시 1건의 메타데이터·AI 요약·서식 추출값, 선택 시 원문 글
get_company_snapshotData시세·밸류에이션·재무 비율·업종
get_financialsData재무제표 계정 행(값·단위·보고서·공시일·원문 링크)
variance_tableData실적 차이표(원문 실제값 · 회사 가이던스 · 발표 전 컨센서스)
fact_checkData숫자가 든 문장을 공시 원문과 대조(모델을 부르지 않음)
ask_phoenixAskPhoenix AI PRO에 질문
get_ask_resultAsk질문 결과 받기
get_account_usage모든 플랜플랜과 오늘·이번 달 사용량

PRO 한도

  • 도구 호출 1번이 하루 호출 1회입니다. REST 호출과 합쳐 셉니다. get_ask_result·get_account_usage는 넣지 않습니다.
  • 키로 연결하면 REST와 같은 초당 버킷을 씁니다. OAuth 연결은 연결마다 버킷이 따로입니다.
  • 연결 절차(initialize · tools/list)는 하루 호출에 넣지 않습니다.
  • 한도에 걸리면 도구 결과가 오류(isError)로 오고 RATE_LIMITED, DAILY_QUOTA_EXCEEDED 같은 코드가 들어 있습니다. 코드 뜻은 오류 코드를 보세요.

연결이 안 되면

클라이언트 이름과 버전, 연결 방식(키·OAuth), 시각을 help@alpsoft.io로 보내 주세요. 키 전체 값은 보내지 마세요.