Sibyl
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GEMINI_API_KEY | No | API key for Gemini LLM provider | |
| OPENAI_API_KEY | No | API key for OpenAI LLM provider | |
| ZHIPUAI_API_KEY | No | API key for GLM (ZhipuAI) LLM provider | |
| DEEPSEEK_API_KEY | No | API key for DeepSeek LLM provider | |
| ANTHROPIC_API_KEY | No | API key for Anthropic LLM provider |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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) |
| gather_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) |
| gather_evidence | Run a bounded evidence loop while leaving planning and synthesis to the host. Start with question only. For a complex question, use the returned loop_id and call this tool again with one atomic query. Continue according to next_action. When the returned steps cover the question, call with finish=true and list the synthesis-ready E-step IDs that support the answer. Only status="ready" permits synthesis. Loops expire after ten minutes and allow at most four retrieval calls. Args: question: Original research question; use only when starting a loop loop_id: Existing loop identifier for a continuation or finish call query: One new atomic retrieval query for an existing loop finish: Validate selected steps and close the loop for synthesis supporting_step_ids: Synthesis-ready step IDs used to finish the loop max_steps: Retrieval budget for a new loop (default 3; bounded to 1-4) max_sources: Sources per retrieval call (default 10; bounded to 1-20) chars_per_source: Characters per evidence passage (default 7000) ranker: lexical (default), flashrank, or none render_thin_pages: Send thin-page URLs to Jina Reader |
| 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) |
| 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/...") |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chriswu727/sibyl'
If you have feedback or need assistance with the MCP directory API, please join our Discord server