list_websites
Discover websites implementing the llms.txt standard by listing known compliant sites, with options to filter for specific file types.
Instructions
List known websites with llms.txt files
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filter_llms_txt | No | Only show websites with llms.txt | |
| filter_llms_full_txt | No | Only show websites with llms-full.txt |
Implementation Reference
- src/index.ts:466-485 (handler)The switch case handler for the 'list_websites' tool. Filters the list of known websites based on optional filter_llms_txt and filter_llms_full_txt arguments, then returns the filtered list as JSON text content.
case "list_websites": { const filterLlmsTxt = Boolean(request.params.arguments?.filter_llms_txt); const filterLlmsFullTxt = Boolean(request.params.arguments?.filter_llms_full_txt); let websites = knownWebsites; if (filterLlmsTxt) { websites = websites.filter(site => site.llmsTxtUrl); } if (filterLlmsFullTxt) { websites = websites.filter(site => site.llmsFullTxtUrl); } return { content: [{ type: "text", text: JSON.stringify(websites, null, 2) }] }; } - src/index.ts:404-419 (registration)Registration of the 'list_websites' tool within the ListToolsRequestSchema handler, including its name, description, and input schema.
name: "list_websites", description: "List known websites with llms.txt files", inputSchema: { type: "object", properties: { filter_llms_txt: { type: "boolean", description: "Only show websites with llms.txt" }, filter_llms_full_txt: { type: "boolean", description: "Only show websites with llms-full.txt" } } } } - src/index.ts:102-131 (helper)Helper function that fetches the list of known websites from a GitHub JSON file and populates the global 'knownWebsites' array used by the list_websites tool handler. Includes validation and fallback.
async function fetchWebsitesList() { try { console.error('Fetching websites list from GitHub...'); const response = await fetch(websites); if (!response.ok) { throw new Error(`Failed to fetch websites list: ${response.status}`); } const data = await response.json(); if (!Array.isArray(data)) { throw new Error('Invalid data format: expected an array'); } const validWebsites = data.filter(isValidWebsite); console.error(`Fetched ${validWebsites.length} valid websites`); knownWebsites = validWebsites; } catch (error) { console.error('Error fetching websites list:', error); // Fallback to default website if fetch fails knownWebsites = [{ name: "Supabase", domain: "https://supabase.com", description: "Build production-grade applications with Postgres", llmsTxtUrl: "https://supabase.com/llms.txt", category: "developer-tools" }]; } }