From a4995686706c667c0940db6ca9e7dcc48441a008 Mon Sep 17 00:00:00 2001 From: Adam Dierkens Date: Mon, 2 Feb 2026 10:42:19 -0500 Subject: [PATCH 1/2] Add support for the `/llms.txt` component endpoint --- packages/mcp/src/server.ts | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/packages/mcp/src/server.ts b/packages/mcp/src/server.ts index c760f2fb58a..7b3ed031088 100644 --- a/packages/mcp/src/server.ts +++ b/packages/mcp/src/server.ts @@ -111,12 +111,27 @@ server.registerTool( }) if (!match) { return { - content: [ - { - type: 'text', - text: `There is no component named \`${name}\` in the @primer/react package. For a full list of components, use the \`list_components\` tool.`, - }, - ], + isError: true, + errorMessage: `There is no component named \`${name}\` in the @primer/react package. For a full list of components, use the \`list_components\` tool.`, + content: [], + } + } + + const llmsUrl = new URL(`/product/components/${match.slug}/llms.txt`, 'https://primer.style') + const llmsResponse = await fetch(llmsUrl) + if (llmsResponse.ok) { + try { + const llmsText = await llmsResponse.text() + return { + content: [ + { + type: 'text', + text: llmsText, + }, + ], + } + } catch (_: unknown) { + // If there's an error fetching or processing the llms.txt, we fall back to the regular documentation } } From f873384f5ccd65cf57a77cbecd0ace3a117c7aa3 Mon Sep 17 00:00:00 2001 From: Adam Dierkens Date: Mon, 2 Feb 2026 10:43:32 -0500 Subject: [PATCH 2/2] Add changeset --- .changeset/gold-snakes-smash.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/gold-snakes-smash.md diff --git a/.changeset/gold-snakes-smash.md b/.changeset/gold-snakes-smash.md new file mode 100644 index 00000000000..ad0db50a420 --- /dev/null +++ b/.changeset/gold-snakes-smash.md @@ -0,0 +1,5 @@ +--- +'@primer/mcp': minor +--- + +Adds support for fetching docs via the `/llms.txt` endpoint per-component