🎃 Generate llms.txt and llms-full.txt from the repo docs so AI agents can read them
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 1-2 天
- 新手友好度
- 52/100
- Issue 类型
- 功能
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- github-actions, javascript, markdown, node.js
调研方向
Start with scripts/validate-adapters.test.mjs, .github/workflows/ci.yml:48-75, and scripts/sync-guides-to-website.sh:57,81; inspect docs/, content/guides/en/, and the sample guide’s front matter. Run the existing script tests with node --test and review the catalog CI check. Done means deterministic generated files, passing generator tests and --check in CI, website sync support, and the requested docs update.
由索引模型根据 Issue 内容生成。
描述
Part of the October Challenge #846.
Why
People increasingly ask Claude, Cursor or ChatGPT "how do I connect weclapp to AnythingMCP?" and the agent fetches our docs. HTML pages with navigation and JS are a poor input; the llms.txt convention gives agents a short index (/llms.txt) and a single plain-Markdown dump (/llms-full.txt). Mintlify, Cloudflare, Anthropic and Qonto (https://docs.qonto.com/llms.txt) already publish one. We have the source Markdown in this repo; we just never assemble it.
Self-hosted vs Cloud
- Self-hosted: not affected at runtime. This is a build-time script that produces two text files from the repo; nothing ships in the Docker image.
- Cloud (
DEPLOYMENT_MODE=cloud): not affected. The files describe public docs only; they contain no tenant data. - Who can use it: anyone (public files). Publishing on
anythingmcp.comis done by the website team: the website lives in a separate repository and pulls content from here withscripts/sync-guides-to-website.sh.
Decision: do not serve /llms.txt from the app (frontend/backend). The app on cloud.anythingmcp.com or a self-hosted instance is a product, not the documentation site, and an agent connected to it already gets workspace instructions over MCP. The canonical location is https://anythingmcp.com/llms.txt.
What to build
scripts/generate-llms-txt.mjs(plain Node ≥22, no new dependencies), writing intocontent/llms/:llms.txt: follows llmstxt.org. H1# AnythingMCP, a one-paragraph>summary (reuse the README tagline), then H2 sections with- [Title](url): one-line descriptionlinks:- Docs: every
docs/**/*.mdexcept pages about running our Cloud:docs/operations/signup-attribution.md,docs/operations/slo.md, plusdocs/ADOPTERS.mdanddocs/AUTHORS.md. Keepbackup-restore.md,disaster-recovery.mdandobservability.md, which self-hosters need. Keep the exclusion list in one constant at the top of the script. Link to the GitHub blob URL (https://github.com/HelpCode-ai/anythingmcp/blob/main/docs/...); the title is the file's first#heading. - Adapter guides: one line per
content/guides/en/*.mdx, title and description from the front matter, linked ashttps://anythingmcp.com/guides/<file-without-extension>. Ask in the PR if the website URL pattern differs. - Optional: the de/it guides (agents may skip these).
- Docs: every
llms-full.txt: the full Markdown of the "Docs" section plus the English guides. For each file: strip MDX front matter, write# <title>andSource: <url>, then the body. Rewrite relative links (../README.md,connectors/rest.md) to absolute GitHub URLs so they still resolve.content/llms/guides/<locale>/<slug>.md: the plain-Markdown version of each.mdxguide (front matter turned into a title and description header), so the website can serve/guides/<slug>.mdnext to the HTML page.
- A
--checkflag that exits 1 when the committed output is stale. Same pattern as the catalog check at.github/workflows/ci.yml:67. - A CI step in the
backendjob of.github/workflows/ci.yml, next toValidate adapter catalog(line 48):node scripts/generate-llms-txt.mjs --check. - Extend
scripts/sync-guides-to-website.shto also copycontent/llms/llms.txt,content/llms/llms-full.txtandcontent/llms/guides/**into the website (target directory set by a newWEBSITE_PUBLIC_DIRenv var; skip with a message when it is unset). The website team wires the route. - Unit tests with
node --testinscripts/generate-llms-txt.test.mjs(seescripts/validate-adapters.test.mjs): front-matter stripping, relative link rewriting, deterministic order (sort file names), and the excluded paths.
Where to look
docs/— the public Markdown docs (connectors, integrations, tool-definition, api-reference, sso, deployment…).docs/guides.md:5— says per-adapter guides are published at anythingmcp.com/guides.content/guides/{en,de,it}/*.mdx— adapter guides with YAML front matter (title,description,adapterSlug); seecontent/guides/en/billomat-to-mcp.mdx.scripts/sync-guides-to-website.sh:57— loop that copies the.mdxguides into the website repo;:81copies assets. This is where step 4 goes..github/workflows/ci.yml:48-75— existing "generate then fail if diff" checks to copy.scripts/validate-adapters.test.mjs—node --teststyle used for scripts.
Acceptance criteria
-
node scripts/generate-llms-txt.mjsproducescontent/llms/llms.txt,llms-full.txtandguides/<locale>/*.md; running it twice gives byte-identical output. -
llms.txtfollows llmstxt.org (H1, blockquote, H2 link lists) and every link is absolute. - The excluded Cloud-internal pages and anything resembling a
.envfile stay out of the output (a test asserts this). -
--checkfails CI when a doc changes without regeneration. -
node --test scripts/generate-llms-txt.test.mjspasses and runs in CI. - Docs updated: a short "For AI agents" paragraph in
docs/guides.mdpointing tohttps://anythingmcp.com/llms.txt, and a comment insync-guides-to-website.shexplaining the new files.
Out of scope
- Any route in
packages/frontendorpackages/backendserving llms.txt (see the decision above). - Changes to the website repository.
- Translating docs, or adding the generated adapter catalog (≈260 adapters) to
llms-full.txt. A follow-up can add it fromcatalog.ts.
Size
M (1–2 days)
How to claim
Comment "I'd like to work on this" and we'll assign you. Rules in #846.
- 主要语言
- TypeScript
- 星标
- 856
- 派生
- 82
- 平均合并
- 5 小时 18 分钟
- 30 天内合并 PR
- 162
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
HelpCode-ai/anythingmcp 的其他 Issue
-
Docs: document all SMTP_* and other undocumented env vars for self-hosting可能已有人在做 @notlakshitha 于 2 天前认领。 未关闭enhancement
难度 2/5 1-3 小时 新手友好度 82/100
HelpCode-ai/anythingmcp#1049 · 3 条评论 ·
维护者通常 1 天内回复
-
good first issue hacktoberfest
难度 2/5 半天 新手友好度 70/100
HelpCode-ai/anythingmcp#996 ·
维护者通常 1 天内回复
-
good first issue hacktoberfest
难度 2/5 半天 新手友好度 72/100
HelpCode-ai/anythingmcp#995 ·
维护者通常 1 天内回复
-
enhancement good first issue hacktoberfest help wanted
难度 2/5 1-3 小时 新手友好度 78/100
HelpCode-ai/anythingmcp#982 ·
维护者通常 1 天内回复
-
Upload the new social preview可能已有人在做 @helpcodeai 于 2 天前认领。 未关闭
HelpCode-ai/anythingmcp#1087 · 6 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
查看 HelpCode-ai/anythingmcp 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 80/100
aws/agentcore-cli#2606 ·
维护者通常 1 天内回复
-
ai-driven-qa bug Cosmetic
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复
-
ai-driven-qa bug claude Minor
难度 2/5 1-3 小时 新手友好度 64/100
linagora/twake-mail-admin#301 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
reproduced
难度 2/5 1-3 小时 新手友好度 70/100
anomalyco/opencode#56038 · 1 条评论 ·
维护者通常 1 天内回复