llms.txt

io.github.basitalisandhuv0.1.1Updated Oct 5, 2026

Build llms.txt from local Markdown or a sitemap.xml and check an existing llms.txt file.

VerifiedSTDIODesktop onlyDeveloper ToolsKnowledge & Memory

Overview

AI-generated overview

Builds an llms.txt file from local Markdown files or a local sitemap.xml, and checks an existing llms.txt against the convention.

What it does
The server exposes three tools. generate_llms_txt scans a directory of .md, .mdx and .markdown files, skips node_modules, .git, build output and hidden directories, derives titles from frontmatter, the first H1 or the file name, groups entries by top-level folder, and returns the text plus entries and skipped files. generate_from_sitemap turns a local sitemap.xml into one link per url, grouped by first path segment. check_llms_txt reports errors, warnings and info with line numbers for a file path or supplied content.
When to use it
Use it when you maintain documentation or a website and want an llms.txt generated from existing Markdown or a sitemap, or when you want an existing llms.txt validated against the convention before publishing.
Requirements
Runs locally over stdio; no network access, accounts, API keys or environment variables. Install via npx with the pinned package version, or run the Docker image ghcr.io/basitalisandhu/mcp-llms-txt:0.1.1. From a checkout, Node.js and a build step are needed. It reads only files you name.
Before you install
It reads local files under the directory or path you give it, up to 1000 files of 1 MB each and 12 levels deep, or a single sitemap or llms.txt up to 2 MB. It never writes and never fetches URLs, so you must save the returned text yourself. Sitemap-derived entries have empty notes because pages are not fetched; fill them in before publishing. Pin the package version so an update cannot change what runs in your editor.

Installation

In SourceWeft

  1. Open llms.txt in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

llms-txt MCP server

Generates an llms.txt from a directory of Markdown or from a local sitemap.xml, and checks an existing llms.txt against the convention. Reads local files only; never writes and never fetches a URL.

Part of dev-mcp-servers. Stdio transport only; the server never opens a port.

Tools

ToolInputWhat it returns
generate_llms_txtdirectory, title, description?, details?, base_url?, url_style?, max_files?, include_dirs?, optional_sections?Scans .md, .mdx and .markdown files (skipping node_modules, .git, build output and hidden directories), takes each title from frontmatter, the first H1 or the file name and the notes from frontmatter or the first paragraph, groups by top-level folder, and returns the text plus the entries and anything skipped.
generate_from_sitemappath, title, description?, details?, include_prefix?, exclude_prefix?, optional_sections?, max_urls?One link per <url>, grouped by first path segment, titles derived from the URL (pages are not fetched).
check_llms_txtpath or contentErrors, warnings and info with line numbers: single H1 first, blockquote summary, H2 sections of - [name](url): notes, no deeper headings, no duplicates, modest size.

Install

Claude Code:

bash
claude mcp add llms-txt -- npx -y @basitalisandhu/[email protected]

Add -s user to make it available in every project. Any client that reads .mcp.json (Claude Code, Claude Desktop, Cursor):

json
{  "mcpServers": {    "llms-txt": {      "command": "npx",      "args": ["-y", "@basitalisandhu/[email protected]"]    }  }}

Pin the version as shown so that an update to the package cannot change what runs in your editor without you noticing. From a checkout, use "command": "node", "args": ["<path>/packages/llms-txt/dist/index.js"] after npm install && npm run build at the repository root.

What it touches

  • Network: None.
  • Local files: Reads Markdown files under the directory you name (up to 1000 files, 1 MB each, 12 levels deep) or the one sitemap or llms.txt you name (up to 2 MB).
  • Telemetry: none.

Notes

  • The output is returned as text; write it to llms.txt yourself after reviewing it.
  • Sitemap-derived files have empty notes because page content is not fetched; fill them in before publishing.

Build and test

bash
npm install        # at the repository rootnpm run build -w @basitalisandhu/mcp-llms-txtnpm test -w @basitalisandhu/mcp-llms-txt

Tests use node:test and the SDK's in-memory transport; they do not reach the network.

Licence

MIT. See LICENSE.

Source: packages/llms-txt/README.md at commit 58c8c95

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v0.1.1LatestOct 5, 2026