Sibyl
Sibyl
AI 기반 심층 연구 에이전트. 질문을 입력하면 Sibyl이 여러 소스에 걸쳐 웹을 검색하고, 수십 개의 페이지를 읽고, 결과를 교차 검증한 뒤 분석, 예측 및 인용이 포함된 임원급 연구 보고서를 생성합니다.
단순한 검색 요약 도구가 아닙니다. Sibyl은 연구 분석 플랫폼으로서 구조화된 비교, SWOT 분석, Google Trends 추적, 이벤트 타임라인, 금융 데이터 시각화 기능을 제공합니다. 이 모든 것이 단 하나의 질문에서 시작됩니다.
Sibyl의 차별점
기존 검색 | ChatGPT/Perplexity | GPT Researcher | Sibyl | |
웹 검색 + 요약 | 예 | 예 | 예 | 예 |
다중 소스 (뉴스, Reddit, Wikipedia) | 아니요 | 부분적 | 부분적 | 예 (4개 엔진) |
하위 질문 분해 | 아니요 | 아니요 | 예 | 예 |
반복적 정보 격차 해소 (검색 → 분석 → 격차 식별 → 재검색) | 아니요 | 아니요 | 부분적 | 예 |
교차 소스 분석 (감성, 합의, 의견 불일치) | 아니요 | 아니요 | 아니요 | 예 |
구조화된 비교 표 | 아니요 | 아니요 | 아니요 | 예 |
SWOT 분석 | 아니요 | 아니요 | 아니요 | 예 |
Google Trends 데이터 | 아니요 | 아니요 | 아니요 | 예 |
이벤트 타임라인 | 아니요 | 아니요 | 아니요 | 예 |
금융 데이터 + 차트 | 아니요 | 아니요 | 아니요 | 예 |
MCP 서버 (Claude Code, Cursor) | 아니요 | 아니요 | 아니요 | 예 |
다중 LLM (DeepSeek, Gemini, GLM, OpenAI) | 아니요 | 아니요 | 제한적 | 예 (자동 감지) |
차트가 포함된 PDF 보고서 | 아니요 | 아니요 | 기본 | 예 |
Related MCP server: Finance MCP
빠른 시작
MCP 서버 (Claude Code / Cursor용)
pip install sibyl-research
claude mcp add sibyl -e DEEPSEEK_API_KEY=sk-... -- sibyl-mcp그다음 Claude Code에서:
"향후 5년간 AI가 소프트웨어 엔지니어링 직무에 미치는 영향 조사"
"AI 워크로드를 위한 NVIDIA vs AMD vs Intel 비교"
"2026년 Tesla에 대한 SWOT 분석"
CLI
pip install sibyl-research
export DEEPSEEK_API_KEY=sk-... # or OPENAI_API_KEY, GEMINI_API_KEY, etc.
# Standard research
sibyl "Canadian housing market outlook 2026"
# Deep research with predictions + market data + PDF
sibyl "Will NVIDIA maintain AI chip dominance?" -d 3 --symbols NVDA,AMD,INTC --pdf
# Chinese output
sibyl "加拿大移民政策变化" -l zh --pdf -o reports/작동 원리
You ask a question
│
├─ Step 1: Decompose into 3-5 focused sub-questions
├─ Step 2: Generate 15-20 diverse search queries
├─ Step 3: Search across 4 engines (DuckDuckGo, Google News, Reddit, Wikipedia)
├─ Step 4: Scrape 15-20 sources (realistic browser headers, retry, Google Cache fallback)
├─ Step 5: Filter sources by relevance (LLM-scored)
├─ Step 6: Analyze each sub-question independently
├─ Step 7: Identify knowledge gaps → auto-search for missing info
├─ Step 8: Cross-reference sources (sentiment, consensus, disagreements)
├─ Step 9: Section-by-section synthesis (Summary, Findings, Analysis, Predictions)
├─ Step 10: Review and refine draft
└─ Output: PDF/Markdown report with Table of Contents, citations, charts연구 도구 (11개 MCP 도구)
핵심 연구
도구 | 기능 |
| 전체 연구 주기: 검색 → 스크랩 → 분석 → 보고서. 깊이 1-3. |
| 빠른 웹 검색, 원시 결과 반환 |
| 모든 URL에서 깔끔한 텍스트 추출 |
| LLM을 사용하여 제공된 텍스트 분석 |
분석 도구 (Sibyl 고유)
도구 | 기능 |
| 지표와 권장 사항이 포함된 구조화된 비교 표 |
| 증거 기반의 강점 / 약점 / 기회 / 위협 분석 |
| 실제 Google Trends 데이터: 관심도, 추세, 급상승 검색어 |
| 날짜와 영향 평가가 포함된 연대순 이벤트 표 |
금융 데이터
도구 | 기능 |
| 실제 주식/ETF 가격, 추세, 이동 평균, 52주 범위 |
| 가격 추세 차트 생성 (PNG) |
출력
도구 | 기능 |
| PDF(차트 포함) 및/또는 Markdown으로 저장 |
연구 깊이
깊이 | 진행 과정 | LLM 호출 | 시간 |
1 (빠름) | 2-3개 검색 쿼리, 기본 합성 | ~3 | 20-30초 |
2 (표준) | 하위 질문 분해, 질문별 분석, 교차 검증, 검토 | ~10 | 60-90초 |
3 (심층) | + 지식 격차 해소, 낙관/비관/기본 시나리오 예측, 신뢰도 평가 | ~13 | 90-120초 |
다중 공급자 지원
Sibyl은 모든 LLM과 작동합니다. 환경 변수에서 자동으로 감지합니다:
공급자 | 환경 변수 | 모델 |
DeepSeek |
|
|
OpenAI |
|
|
Anthropic |
|
|
Gemini |
|
|
GLM (ZhipuAI) |
|
|
또는 역할을 지정하여 여러 공급자를 구성할 수 있습니다:
# sibyl.yaml
providers:
- model: deepseek/deepseek-chat
api_key: sk-xxx
role: analysis
- model: gemini/gemini-2.5-flash
api_key: xxx
role: fast
- model: openai/glm-4-flash
api_key: xxx
api_base: https://open.bigmodel.cn/api/paas/v4
role: chinese보고서 예시
Sibyl이 실제 주제에 대해 생성한 보고서:
2026-2027년 연준 금리 전망 — 5페이지, 12개 발견 사항, 6개 소스, "고금리 장기화" vs "점진적 완화" 논쟁 분석
2026년 트럼프 관세가 무역에 미치는 영향 — 5페이지, 10개 발견 사항, 4개 소스, 스무트-홀리 관세법과의 역사적 비교, AI 노동 대체에 대한 2차 효과
2026년 AI 산업 지형 — 시장 규모($538B), 투자 동향($2.9T 인프라), 규제 전망, NVDA/GOOGL/META 주가 차트 포함
요구 사항
Python 3.10 이상
최소 1개의 LLM API 키
다른 API 키 불필요 (모든 검색 엔진은 무료)
라이선스
MIT
Available Tools
4 toolsgather_bundleA
Return a structured, keyless SourceBundle without synthesizing an answer.
This is the programmatic form of gather_sources, intended for agents and pipelines that need stable evidence identifiers and retrieval provenance. Passage/source relevance defaults to the dependency-free lexical_v1 ranker. FlashRank is optional and falls back to lexical_v1 with an explicit diagnostic. Source quality remains null until a separate quality evaluator computes it. Follow diagnostics.recommended_action; only "synthesize" permits synthesis.
Args: query: One focused search query max_sources: How many sources to return (default 10; bounded to 1-20) chars_per_source: Max characters per evidence passage (default 7000; bounded to 500-10000) ranker: lexical (default), flashrank (optional extra), or none (retrieval order) render_thin_pages: Send thin-page URLs to Jina Reader (default false)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| ranker | No | lexical | |
| max_sources | No | ||
| chars_per_source | No | ||
| render_thin_pages | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| query | Yes | |
| status | Yes | |
| sources | Yes | |
| bundle_id | Yes | |
| diagnostics | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It thoroughly discloses behaviors: no answer synthesis, default ranker, fallback to lexical_v1, source quality remaining null, and diagnostic action. It also explains parameter bounds and defaults. This provides complete behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a single-line summary, a compact behavior paragraph, and a bulleted Args list. Every sentence adds value without redundancy. The structure is front-loaded with the core action, then details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, output schema), the description covers essential context like return type (SourceBundle), lack of synthesis, and diagnostic guidance. It does not explain what a 'keyless SourceBundle' is or how diagnostics work, which could be clarified, but overall it provides sufficient context for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates fully. Each of the 5 parameters is described with purpose, default values, and bounds (e.g., 'max_sources' bounded to 1-20, 'ranker' options explained). This adds significant meaning beyond the schema's titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a 'structured, keyless SourceBundle without synthesizing an answer,' with specific verb and resource. It distinguishes itself from 'gather_sources' by being 'programmatic' and 'keyless,' and from siblings like 'quick_search' by emphasizing structured evidence identifiers and provenance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool is 'intended for agents and pipelines that need stable evidence identifiers and retrieval provenance,' and instructs to follow 'diagnostics.recommended_action' and that only 'synthesize' permits synthesis. However, it does not explicitly compare when to use this versus sibling tools like 'gather_sources' or 'quick_search,' leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gather_sourcesA
Keyless web retrieval: search + scrape + dedup, returning the top FULL-TEXT sources for a query WITHOUT writing an answer — so YOU (the calling model) read the evidence and reason over it yourself.
Use this to research a question: call it several times with different focused sub-queries, read the numbered [Source N] blocks it returns, cross-reference them, then write the answer yourself with citations. If the sources don't contain the answer, gather more or say you don't know — do not guess. No API key required.
Args: query: One focused search query (issue several calls for a multi-part question) max_sources: How many sources to return (default 10; bounded to 1-20) chars_per_source: Max characters of text per source (default 7000; bounded to 500-10000) ranker: lexical (default), flashrank (optional extra), or none (retrieval order) render_thin_pages: Send thin-page URLs to Jina Reader (default false)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| ranker | No | lexical | |
| max_sources | No | ||
| chars_per_source | No | ||
| render_thin_pages | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of behavioral disclosure. It states the tool is keyless, performs search/scrape/dedup, returns full-text sources without writing an answer, and provides numbered blocks. It does not explicitly state it is read-only or non-destructive, but the 'retrieval' nature implies safety. Some details like error handling or rate limits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a bold lead sentence, usage instructions, and a clear parameter list. It is slightly verbose but each sentence provides value. The front-loading of the key concept ('keyless web retrieval') is effective. The length is appropriate for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and an output schema (not shown), the description covers the main purpose, parameters, and usage workflow. It lacks details on error handling, empty results, or performance characteristics. However, the output schema likely covers return value format, so the description is moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description compensates fully. It explains each parameter: query (one focused query, issue multiple for multi-part), max_sources (default 10, bounded 1-20), chars_per_source (default 7000, bounded 500-10000), ranker (lexical default, flashrank optional, or none), and render_thin_pages (sends thin-page URLs to Jina Reader). These details add significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'keyless web retrieval: search + scrape + dedup, returning the top FULL-TEXT sources for a query WITHOUT writing an answer.' It explains the workflow for research. However, it does not explicitly differentiate from sibling tools like quick_search, gather_bundle, or read_url, missing an opportunity to clarify when to use this tool over others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this to research a question: call it several times with different focused sub-queries, read the numbered [Source N] blocks, cross-reference them, then write the answer yourself.' It also advises what to do if sources lack an answer. However, it does not contrast with alternative tools or specify when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quick_searchA
Quick web search without deep analysis. Returns raw search results.
Args: query: What to search for max_results: Maximum number of results (default 5)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the search is 'quick' and returns 'raw' results, which adds some behavioral context beyond the basic function. However, it lacks details on rate limits, authentication needs, error handling, or what 'raw' specifically entails (e.g., format, source limitations).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose and key behavioral trait ('without deep analysis'), and the Args section efficiently documents parameters. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no annotations, but with an output schema), the description is fairly complete. It covers purpose, basic behavior, and parameters. Since an output schema exists, it doesn't need to explain return values, but it could benefit from more behavioral details (e.g., speed, source reliability) to be fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful context for both parameters: 'query' is explained as 'What to search for', and 'max_results' includes a default value (5) not explicitly stated in the schema. This goes beyond the schema's basic titles, though it could provide more detail on constraints (e.g., query length, max_results range).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a 'quick web search' and 'returns raw search results', which is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'research' or 'analyze' that might also involve searching, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the phrase 'without deep analysis', suggesting this is for basic searches rather than comprehensive research. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'research' or 'analyze', nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_urlA
Read and extract clean text content from a URL.
Fetches the page, strips navigation/scripts/ads, and returns the main article or body text. Useful for reading a specific source in detail before or after running research().
Returns the page title, URL, and up to 8000 characters of clean text. Handles retries, anti-bot protection, and Google Cache fallback.
Args: url: The full URL to read (e.g. "https://www.reuters.com/article/...")
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries behavioral disclosure. It explains that it fetches the page, strips navigation/scripts/ads, returns up to 8000 characters, handles retries, anti-bot protection, and Google Cache fallback. This is comprehensive for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (5 sentences) with front-loaded purpose. Each sentence serves a purpose: action, use case, output specifics, handling mechanisms, and parameter details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter and an output schema. The description explains the output (title, URL, clean text length) and error handling (retries, cache fallback). It is mostly complete, though it could mention error responses for unreachable pages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage for 'url', but the description adds an example and the requirement for a full URL (e.g., including protocol). This provides needed context beyond the schema's type definition, though more details on validation could improve.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a URL and extracts clean text. It specifies the verb 'Read and extract' and resource 'clean text content from a URL'. It also mentions it's useful before or after research(), distinguishing it from sibling tools like gather_sources which likely handle multiple sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Useful for reading a specific source in detail before or after running research()', providing clear context when to use. It does not explicitly state when not to use, but the context sufficiently guides an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v0.3.0- Removed
analyze - Removed
chart - Removed
compare - Removed
fetch_market_data - Added
gather_bundle - Added
gather_sources - Removed
research - Removed
save_report - Removed
swot - Removed
timeline - Removed
trends
11 tool updates
v0.1.0- First observed
analyze - First observed
chart - First observed
compare - First observed
fetch_market_data - First observed
quick_search - First observed
read_url - First observed
research - First observed
save_report - First observed
swot - First observed
timeline - First observed
trends
TDQS
Scored across 4 tools
gather_sources and gather_bundle are nearly identical in purpose and parameters, with only subtle differences in output structure. This creates significant ambiguity for an agent trying to select the appropriate tool. quick_search and read_url are more distinct but the overlap between the gather tools is problematic.
The names mix patterns: 'gather_' prefix for two tools, 'quick_' for one, and 'read_' for another. While each name is somewhat descriptive, the lack of a consistent verb_noun pattern across the set reduces predictability.
With 4 tools, the set is small but still covers the core needs of web research (search, deep retrieval, quick results, and URL reading). It could be streamlined to 3 by merging the gather tools, but the count is not excessive.
The server covers the essential operations for web research: searching, retrieving full-text sources, quick scanning, and reading specific URLs. Minor gaps like missing history or caching are acceptable for the scope.
Maintenance
Related MCP Connectors
Web search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
Web research for agents: quality-scored Google search, webpage extraction, and deep research.
The Google for AI agents — company intel, competitor tracking, market research via MCP. JSON output
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables iterative deep research by integrating AI agents with search engines, web scraping, and large language models for efficient data gathering and comprehensive reporting.11 npm324MIT
- AlicenseCqualityCmaintenanceEnables financial research and analysis through AI agents that combine web search, content crawling, entity extraction, and deep research workflows. Supports extracting stock/fund entities with security codes and conducting structured financial investigations.926Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI agents to perform professional-grade deep research by aggregating real-time data from multiple sources, evaluating source credibility, and generating comprehensive reports.311Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables deep research tasks using a multi-agent architecture that integrates any LLM and MCP tools. Available via MCP stdio, streamable HTTP, and SSE transports.17MIT