Skip to main content
Glama
vitaleap
by vitaleap

llmstxt-mcp

用于管理远程 llms.txt 文档的 MCP

当前提供 6 个工具:

  • add:新增一个 llms.txt,抓取成功后保存配置和文档。

  • edit:按 id 修改名称、URL 或简介;URL 变更时会重新抓取文档。

  • del:按 id 删除配置和本地文档目录。

  • list:列出所有 llms 的 id、name、url、description。

  • view:按 id 读取本地缓存的 llms.txt 内容,返回的文本里包含的绝对 URL 可通过 view_doc 进一步获取。

  • view_doc:按绝对 URL 抓取并返回 llms.txt 中链接到的文档内容。

开发

1. 安装

pnpm install

2. 启动

pnpm dev

3. 调试

在弹出的 MCP Inspector 跳时网页,选择 SSE 模式并连接,SSE 支持自动重连,更好支持本地开发调试,当然你也可以选择其他模式

4. 参数传递

  • stdio 模式,可以用 process.env 获取 mcp 配置的 env 变量

  • sse/streamable-http 模式,可以用封装的 ctx.get() 获取 mcp 配置的请求头,方便鉴权等

Related MCP server: mcp-llm

部署 Stdio

1. 打包

pnpm build

2. 发布到 npm

pnpm publish

3. MCP 配置

{
  "mcpServers": {
    "llmstxt-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["llmstxt-mcp"]
    }
  }
}

部署 docker

1. Build

docker build -t llmstxt-mcp .

2. Run the server

docker run -p 3000:3000 llmstxt-mcp
# 或启动 sse
docker run -p 4000:4000 llmstxt-mcp node sse.js

3. MCP 配置

{
  "mcpServers": {
    "llmstxt-mcp": {
      "type": "streamableHttp",
      "url": "http://localhost:3000/mcp",
      "headers": {
        "API_KEY": "sk-123"
      }
    },
    // 或 sse
    "llmstxt-mcp": {
      "type": "sse",
      "url": "http://localhost:4000/mcp",
      "headers": {
        "API_KEY": "sk-123"
      }
    }
  }
}

Available Tools

6 tools
addA

Add a new llms.txt (https://llmstxt.org) by URL. Fetches and caches the document locally. Use when the user wants to save, import, or subscribe to an llms.txt.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesllms.txt url
nameYesunique llms name
descriptionYesbrief introduction for this llms.txt

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behavior (fetches and caches locally), which is helpful. But with no annotations, it could detail more (e.g., idempotency, error handling, authentication needs).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The main action is front-loaded, and the second sentence adds helpful use-case context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple add tool, but missing info on return value, behavior on duplicates, and error scenarios. No output schema makes this gap more noticeable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage, so baseline is 3. The description ties the url to fetching, adding marginal value, but does not elaborate on name or description beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (add), resource (llms.txt), and method (by URL). It also distinguishes from siblings like del, edit, list, view_content by focusing on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use when the user wants to save, import, or subscribe to an llms.txt', providing clear usage context. However, it does not explicitly list when not to use or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delA

Delete an llms.txt entry and its cached content by id. Call list first if you don't have the id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesllms id

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that both the entry and cached content are deleted, which is behavior beyond the schema. However, no annotations are provided, and the description does not mention permissions, reversibility, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the main action and providing a helpful hint. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description covers the core action and how to obtain the ID. It lacks detail on side effects or success/failure indicators but is adequate overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter is well-documented with type, format, and pattern. The description adds minimal value by referencing the need for ID, but it is sufficient given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deletes an llms.txt entry and its cached content, with a specific verb and resource. It distinguishes itself from sibling tools (add, edit, list, view_content) by focusing on deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance to call 'list' first if the ID is unknown, helping the agent understand usage context. Does not explicitly state when not to use, but the instruction is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

editA

Update name, url, or description of an llms.txt entry by id. Re-fetches if url changes. Call list first if you don't have the id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesllms id
urlNonew unique llms.txt url
nameNonew unique llms name
descriptionNonew llms description

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the re-fetch behavior when url changes, which is a useful side effect. However, it does not mention whether the update is destructive, if permissions are needed, or error scenarios. The disclosure is adequate but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core purpose, and includes a practical tip. Every sentence is necessary and free of extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple edit tool with 4 parameters and no output schema, the description covers purpose, prerequisite, and a key behavioral note. However, it lacks mention of what the tool returns (e.g., updated entry or success status) and error handling, which are gaps given the absence of annotations and output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all 4 parameters. The description adds no parameter-specific meaning beyond what the schema already provides (e.g., 'new unique llms name', 'new unique llms.txt url'). Thus it meets the baseline but adds no extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates name, url, or description of an llms.txt entry by id. This distinguishes it from sibling tools: add (create), del (delete), list (list all), view_content (view). It specifies the resource and the action, making it easy for an AI to select correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises calling `list` first if the id is unknown, providing clear prerequisite guidance. However, it does not explicitly mention when not to use this tool or alternatives beyond the implicit context of having the id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listA

List all saved llms.txt entries (id, name, url, description). Use when the user asks what's available, or to look up an id for other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavior. It clearly states that the tool lists all entries and returns specific fields (id, name, url, description). It does not mention any limitations, sorting, or other behavioral details, but for a simple list operation with no parameters, this is adequate. The transparency is good but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short sentences. The first defines the tool's purpose, and the second provides usage guidance. Every word is necessary, and there is no redundancy or fluff. It is well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has no parameters, no output schema, and no annotations, the description is fully complete. It explains what the tool does, what it returns, and when to use it. No additional information is needed for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so schema coverage is 100%. The description does not add any parameter semantics because there are none. According to guidelines, baseline is 3, which is appropriate as there is no parameter information to enhance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'list' and clearly identifies the resource as 'all saved llms.txt entries', including the fields returned (id, name, url, description). It distinguishes from siblings like add, del, edit, and view_content, which are for individual operations, by focusing on listing all entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use when the user asks what's available, or to look up an id for other tools.' This provides clear context, though it does not explicitly mention when not to use it or list alternative tools. However, the guidance is precise and helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

viewA

Read the content of a stored llms.txt document by id. The returned text contains absolute URLs that can be fetched via view_doc. Call list first if you don't have the id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesllms id

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although no annotations are provided, the description discloses that the returned text contains absolute URLs for 'view_doc', which is helpful. As a read operation, it lacks mention of side effects or authentication, but the verb 'Read' implies non-destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, front-loaded with the core action. Every sentence adds value: purpose, outcome hint, and guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one parameter, no output schema), the description is complete. It explains what the tool does, what the output contains, and how to use it in conjunction with siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (id) with full schema coverage. The description adds minimal meaning beyond the schema—just 'by id' and the URL hint. Baseline 3 is appropriate since the schema already describes the parameter well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Read'), the resource ('stored llms.txt document'), and the input ('by id'). It distinguishes from siblings by referencing 'list' and 'view_doc'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to call 'list' first if the id is unknown, and notes that returned URLs can be fetched via 'view_doc', providing clear context for when to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

view_docA

Fetch a document content linked from a stored llms.txt by its absolute URL. Typically called with a URL discovered via view.

ParametersJSON Schema
NameRequiredDescriptionDefault
docUrlYesAbsolute URL of the document to fetch

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only mentions fetching content without disclosing any behavioral traits such as read-only nature, authentication requirements, error conditions, or side effects. This leaves the agent with minimal insight beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences convey the action and typical usage without any superfluous words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple fetch tool with one parameter, but lacks details about the output format (e.g., plain text, HTML) or error handling (e.g., what if URL not found). No output schema exists to fill this gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema covers the parameter with a description, the tool description adds context by specifying that the URL is 'absolute' and 'linked from a stored llms.txt', enhancing the agent's understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch a document content'), specifies the resource ('linked from a stored llms.txt'), and differentiates from the sibling 'view' tool by noting that the URL is typically discovered via 'view'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: 'Typically called with a URL discovered via `view`', indicating a workflow. Does not explicitly state when not to use, but the guidance is sufficient for an agent to select this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.2
    • Addedview
    • Removedview_content
    • Addedview_doc
  2. 5 tool updatesv0.1.0
    • First observedadd
    • First observeddel
    • First observededit
    • First observedlist
    • First observedview_content

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct operation: add creates an entry, edit updates metadata, del removes it, list shows summaries, view reads stored content, and view_doc fetches linked documents. There is no meaningful overlap or ambiguity between tool purposes.

Naming Consistency4/5

Most names follow a simple imperative verb style: add, edit, del, list, view. The main deviation is view_doc, which uses a verb_noun pattern, and del is an abbreviation of delete, but the set is still readable and predictable overall.

Tool Count5/5

Six tools is an appropriate size for this server's focused purpose of managing and viewing llms.txt documents. The tool count is neither too thin nor bloated.

Completeness5/5

The tool set covers the full lifecycle of stored llms.txt entries: add, edit, delete, list, and view content, plus fetching linked documents. No obvious operations needed for the described domain are missing.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers