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
TableJSON 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" }]; } }