llms.txt for agents

io.github.ux-xd由 GitHub 帳號 ux-xd 發布v0.1.1更新於 Oct 27, 2026

Any site's llms.txt: find the covering index, read its linked docs as markdown, search sections.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取知識與記憶

概覽

AI 產生的概覽

遠端 MCP 伺服器:找出網站的 llms.txt 索引,把其連結的文件頁以 Markdown 回傳,並可搜尋已解析的索引。

可以做什麼
  • 找出並解析涵蓋某個網站或頁面 URL 的 llms.txt,並回報每一步嘗試
  • 把連結的文件頁以 Markdown 回傳,可依字元位移分頁
  • 在已解析的 llms.txt 索引中依章節標題、連結標題與備註搜尋,可限定單一網站
適用情境
當使用者需要某個產品或函式庫自己的文件,而該網站可能發布 llms.txt 時使用:先找索引,再讀取其連結的頁面。已有文件 URL 但想要 Markdown 而非 HTML 時也適用。
執行需求
一個遠端 Streamable HTTP 端點,無需帳號、API 金鑰或身分驗證。每次工具呼叫都必須提供一句描述使用者目標的 task_context。需要能連線至目標網站的網路。
安裝前請注意
工具為唯讀且無需金鑰,但所提供的 task_context 句子被描述為該免費服務了解代理需求的方式,請勿在其中放入敏感資訊。伺服器會保留其已解析的索引,且所查詢的 URL 是由第三方服務擷取,而非從本機發起。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 llms.txt for agents,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.ux-xd%2Fllms-txt/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "llms-txt-for-agents": {
      "type": "http",
      "url": "https://llmstxtmcp.dev/mcp"
    }
  }
}

README

llms.txt for agents

Any site's llms.txt: find the covering index, read its linked docs as markdown, search sections. Remote MCP server over Streamable HTTP at https://llmstxtmcp.dev/mcp. Free, no API key. Tools: llms_index, llms_page, llms_search. The tool list is fixed per version.

Given any site or page URL, llms_index discovers the llms.txt that covers it (root, redirects, Link: rel="describedby" advertisements, subpath files with most-specific-wins), parses it into the v2 structure (title, summary, H2 sections of title: notes links, the Optional section) and reports every rung it tried, so a miss is as informative as a hit. llms_page returns any linked page as markdown by content negotiation (Accept: text/markdown), rel="alternate" markdown mirrors, the .md / .html.md / index.md conventions, or a bounded HTML-to-markdown conversion, paginated by character offset. llms_search navigates every index this server has parsed so far by section heading, link title and notes. Free, keyless, no account; the server keeps only the parsed indexes it has seen.

Use when: The user needs a product's or library's own documentation and the site may publish llms.txt: call llms_index with the site first, then llms_page on the links it returns. Use llms_page directly when you already hold a docs URL and want it as markdown instead of HTML.

Not for: General web scraping or crawling (one fetch per rung, never link-following), pages behind logins, generating or auditing a site's own llms.txt, or searching the whole web for documentation.

Quick install (Claude Code): claude mcp add --transport http llms-txt https://llmstxtmcp.dev/mcp -s user

Live server: https://llmstxtmcp.dev

Docs

Upstreams

Optional

Tools

ToolPurposeEffects
llms_indexFind and parse the llms.txt that covers a site or page URL: title, summary, H2 sections of title links with notes, the Optional section, and (HEAD-probed only) whether an llms-full.txt exists. Use first, before llms_page, whenever the user needs a product or library's own docs; every rung tried is returned so a miss is diagnosable.read-only, open-world, idempotent
llms_pageReturn one docs page as markdown, paginated: tries Accept: text/markdown negotiation, the page's rel="alternate" markdown mirror, the .md / .html.md / index.md conventions, then a bounded HTML-to-markdown conversion. Use on the URLs llms_index returns, or on any docs URL you already hold.read-only, open-world, idempotent
llms_searchSearch the llms.txt indexes this server has parsed (section headings ×3, link titles ×2, notes ×1) and get the matching docs links with their covering index; pass site to search one site (it is indexed on demand). Use to jump straight to the right page of a docs set instead of reading the whole index.read-only, open-world, idempotent

Every tool takes task_context: one sentence on what the user is trying to do. It is required.

llms_index

Find and parse the llms.txt that covers a site or page URL: title, summary, H2 sections of title links with notes, the Optional section, and (HEAD-probed only) whether an llms-full.txt exists. Use first, before llms_page, whenever the user needs a product or library's own docs; every rung tried is returned so a miss is diagnosable.

Input schema:

json
{  "$schema": "http://json-schema.org/draft-07/schema#",  "type": "object",  "properties": {    "site": {      "type": "string",      "minLength": 3,      "maxLength": 2000,      "description": "Site or page URL, e.g. \"docs.stripe.com\" or \"https://hono.dev/docs/\". The most specific covering llms.txt wins."    },    "refresh": {      "default": false,      "description": "Bypass the 24 h cache and fetch again.",      "type": "boolean"    },    "task_context": {      "type": "string",      "minLength": 1,      "maxLength": 500,      "description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."    }  },  "required": [    "site",    "refresh",    "task_context"  ],  "additionalProperties": false}

Example arguments:

json
{  "site": "hono.dev",  "task_context": "example: Find and parse the llms.txt that covers a site or page URL: "}

llms_page

Return one docs page as markdown, paginated: tries Accept: text/markdown negotiation, the page's rel="alternate" markdown mirror, the .md / .html.md / index.md conventions, then a bounded HTML-to-markdown conversion. Use on the URLs llms_index returns, or on any docs URL you already hold.

Input schema:

json
{  "$schema": "http://json-schema.org/draft-07/schema#",  "type": "object",  "properties": {    "url": {      "type": "string",      "maxLength": 2000,      "format": "uri",      "description": "Page URL (http/https)."    },    "max_chars": {      "default": 60000,      "description": "Characters of markdown to return in this call.",      "type": "integer",      "minimum": 1000,      "maximum": 200000    },    "offset": {      "default": 0,      "description": "Character offset to continue from (use next_offset from a truncated result).",      "type": "integer",      "minimum": 0,      "maximum": 9007199254740991    },    "task_context": {      "type": "string",      "minLength": 1,      "maxLength": 500,      "description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."    }  },  "required": [    "url",    "max_chars",    "offset",    "task_context"  ],  "additionalProperties": false}

Example arguments:

json
{  "url": "https://hono.dev/docs/",  "task_context": "example: Return one docs page as markdown, paginated: tries Accept: t"}

llms_search

Search the llms.txt indexes this server has parsed (section headings ×3, link titles ×2, notes ×1) and get the matching docs links with their covering index; pass site to search one site (it is indexed on demand). Use to jump straight to the right page of a docs set instead of reading the whole index.

Input schema:

json
{  "$schema": "http://json-schema.org/draft-07/schema#",  "type": "object",  "properties": {    "query": {      "type": "string",      "minLength": 1,      "maxLength": 200,      "description": "Words to match against section headings, link titles and notes."    },    "site": {      "description": "Restrict to one site (indexed via llms_index if not yet cached).",      "type": "string",      "maxLength": 2000    },    "limit": {      "default": 10,      "type": "integer",      "minimum": 1,      "maximum": 50    },    "max_bytes": {      "default": 200000,      "description": "Byte cap on the results array.",      "type": "integer",      "minimum": 10000,      "maximum": 500000    },    "task_context": {      "type": "string",      "minLength": 1,      "maxLength": 500,      "description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."    }  },  "required": [    "query",    "limit",    "max_bytes",    "task_context"  ],  "additionalProperties": false}

Example arguments:

json
{  "query": "middleware",  "site": "hono.dev",  "task_context": "example: Search the llms.txt indexes this server has parsed (section "}

Install

Endpoint: https://llmstxtmcp.dev/mcp (Streamable HTTP, MCP 2026-07-28 with 2025-era fallback). Authentication: none.

Claude Code
claude mcp add --transport http llms-txt https://llmstxtmcp.dev/mcp -s user
Cursor (~/.cursor/mcp.json)
json
{  "mcpServers": {    "llms-txt": {      "url": "https://llmstxtmcp.dev/mcp"    }  }}
VS Code / Copilot (user mcp.json)
json
{  "servers": {    "llms-txt": {      "type": "http",      "url": "https://llmstxtmcp.dev/mcp"    }  }}

or code --add-mcp '{"name":"llms-txt","type":"http","url":"https://llmstxtmcp.dev/mcp"}'

Claude Desktop / claude.ai

Settings → Connectors → Add custom connector → URL https://llmstxtmcp.dev/mcp, Authentication: None.

ChatGPT

Settings → Connectors → Add custom connector → https://llmstxtmcp.dev/mcp. Desktop app / Codex share ~/.codex/config.toml:

toml
[mcp_servers.llms-txt]url = "https://llmstxtmcp.dev/mcp"
Codex CLI (~/.codex/config.toml)
toml
[mcp_servers.llms-txt]url = "https://llmstxtmcp.dev/mcp"
Gemini CLI
gemini mcp add --transport http llms-txt https://llmstxtmcp.dev/mcp -s user

(settings.json uses httpUrl, not url.)

Windsurf (~/.codeium/windsurf/mcp_config.json)
json
{  "mcpServers": {    "llms-txt": {      "serverUrl": "https://llmstxtmcp.dev/mcp"    }  }}
Cline
json
{  "mcpServers": {    "llms-txt": {      "type": "streamableHttp",      "url": "https://llmstxtmcp.dev/mcp"    }  }}
Continue (.continue/mcpServers/llms-txt.yaml)
yaml
name: llms-txtmcpServers:  - name: llms-txt    type: streamable-http    url: https://llmstxtmcp.dev/mcp
Zed (settings.json)
json
{  "context_servers": {    "llms-txt": {      "source": "custom",      "command": "npx",      "args": [        "-y",        "mcp-remote",        "https://llmstxtmcp.dev/mcp"      ]    }  }}
Any MCP client

Streamable HTTP endpoint: https://llmstxtmcp.dev/mcp

json
{  "mcpServers": {    "llms-txt": {      "url": "https://llmstxtmcp.dev/mcp"    }  }}

This page documents a server. It does not ask the reader to change any rules file, memory file, or host configuration.

Run it yourself

npm install && npm start            # http://127.0.0.1:8080/mcpdocker compose up -d --build        # same, in a containernode scripts/smoke.mjs http://127.0.0.1:8080 llms_index '{}'

Built with the MCP server kit (kit/): Streamable HTTP MCP plus agent-readable docs (llms.txt, server.json, install pages, a REST twin), all from one manifest (servers/llms-txt/mcp.factory.json). This repo is the server logic only; no telemetry is collected or sent by this code. MIT.

來源:README.md,提交 de9e89e

工具

0
SourceWeft 尚未讀取此伺服器的工具。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式必需10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分