🎃 Generate llms.txt and llms-full.txt from the repo docs so AI agents can read them
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 52/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- github-actions, javascript, markdown, node.js
- Ambito
- build-system, ci-cd, documentation
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- TypeScript
- Stelle
- 856
- Fork
- 82
- Merge medio
- 7h 30m
- PR unite (30g)
- 121
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di HelpCode-ai/anythingmcp
-
good first issue hacktoberfest
Difficoltà 2/5 Mezza giornata Idoneità per principianti 70/100
HelpCode-ai/anythingmcp#996 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue hacktoberfest
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
HelpCode-ai/anythingmcp#995 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue hacktoberfest help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
HelpCode-ai/anythingmcp#982 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue hacktoberfest
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
HelpCode-ai/anythingmcp#745 ·
I maintainer di solito rispondono entro 1 giorno
-
🐣 Good first issue: contribute a new MCP adapterForse di nuovo libera @7k777 l’ha presa 21 giorni fa e non c’è nessuna pull request aperta. Apertaenhancement good first issue hacktoberfest help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
HelpCode-ai/anythingmcp#150 · 18 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di HelpCode-ai/anythingmcp
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
microsoft/playwright#43327 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
microsoft/TypeScript#64758 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
opensearch-project/OpenSearch-Dashboards#12937 ·
I maintainer di solito rispondono entro 2 giorni
-
Liveness marks block-included attesters live in the block's epoch instead of the attestation's epochAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
status: needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
a2ui-project/a2ui#3158 ·
I maintainer di solito rispondono entro 2 giorni