list_websites
Discover websites with llms.txt or llms-full.txt files to analyze and explore LLMS standards compliance using filtering options.
Instructions
List known websites with llms.txt files
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filter_llms_full_txt | No | Only show websites with llms-full.txt | |
| filter_llms_txt | No | Only show websites with llms.txt |
Implementation Reference
- src/index.ts:466-485 (handler)The handler function that executes the list_websites tool. It applies optional filters for websites with llms.txt or llms-full.txt and returns the filtered list as JSON.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:403-419 (registration)The registration of the list_websites tool in the ListToolsRequestSchema handler, including its name, description, and input schema definition.{ 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:406-417 (schema)The input schema definition for the list_websites tool.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 and populates the knownWebsites array from a GitHub JSON file, which is the data source used by the list_websites tool. Called at server startup.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" }]; } }
- src/index.ts:58-60 (helper)Global array holding the list of known websites, directly returned (filtered) by the list_websites handler.*/ let knownWebsites: Website[] = [];