From f1332b585d055ff5318db4d4d10631ea776c4938 Mon Sep 17 00:00:00 2001 From: Adam Dierkens Date: Fri, 27 Mar 2026 19:44:57 +0000 Subject: [PATCH 1/2] Remove old fallback for mcp docs --- package-lock.json | 8 +++---- packages/mcp/src/server.ts | 46 ++++++++------------------------------ 2 files changed, 13 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index 293f92456bb..7eaac82f053 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,7 +82,7 @@ "react-dom": "^18.3.1" }, "devDependencies": { - "@primer/react": "38.16.0", + "@primer/react": "38.17.0", "@primer/styled-react": "1.0.3", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", @@ -96,7 +96,7 @@ "name": "example-nextjs", "version": "0.0.0", "dependencies": { - "@primer/react": "38.16.0", + "@primer/react": "38.17.0", "@primer/styled-react": "1.0.3", "next": "^16.1.7", "react": "^19.2.0", @@ -139,7 +139,7 @@ "version": "0.0.0", "dependencies": { "@primer/octicons-react": "^19.21.0", - "@primer/react": "38.16.0", + "@primer/react": "38.17.0", "@primer/styled-react": "1.0.3", "clsx": "^2.1.1", "next": "^16.1.7", @@ -27322,7 +27322,7 @@ }, "packages/react": { "name": "@primer/react", - "version": "38.16.0", + "version": "38.17.0", "license": "MIT", "dependencies": { "@github/mini-throttle": "^2.1.1", diff --git a/packages/mcp/src/server.ts b/packages/mcp/src/server.ts index 7cda805d255..915e565fd69 100644 --- a/packages/mcp/src/server.ts +++ b/packages/mcp/src/server.ts @@ -133,11 +133,10 @@ server.registerTool( content: [], } } - - const llmsUrl = new URL(`/product/components/${match.slug}/llms.txt`, 'https://primer.style') - const llmsResponse = await fetch(llmsUrl) - if (llmsResponse.ok) { - try { + try { + const llmsUrl = new URL(`/product/components/${match.slug}/llms.txt`, 'https://primer.style') + const llmsResponse = await fetch(llmsUrl) + if (llmsResponse.ok) { const llmsText = await llmsResponse.text() return { content: [ @@ -147,42 +146,15 @@ server.registerTool( }, ], } - } catch (_: unknown) { - // If there's an error fetching or processing the llms.txt, we fall back to the regular documentation - } - } - - const url = new URL(`/product/components/${match.slug}`, 'https://primer.style') - const response = await fetch(url) - if (!response.ok) { - throw new Error(`Failed to fetch ${url}: ${response.statusText}`) - } - - const html = await response.text() - if (!html) { - return { - content: [], - } - } - - const $ = cheerio.load(html) - const source = $('main').html() - if (!source) { - return { - content: [], } + } catch (_: unknown) { + // If there's an error fetching or processing the llms.txt, we fall back to a generic error message. } - const text = turndownService.turndown(source) - return { - content: [ - { - type: 'text', - text: `Here is the documentation for the \`${name}\` component from the @primer/react package: -${text}`, - }, - ], + isError: true, + errorMessage: `There was an error fetching documentation for ${name}. Ensure the component exists.`, + content: [], } }, ) From f160fa811d1adf2a7aabee2a9c8396070ea72335 Mon Sep 17 00:00:00 2001 From: Adam Dierkens Date: Fri, 27 Mar 2026 19:47:56 +0000 Subject: [PATCH 2/2] Add changeset --- .changeset/swift-ads-matter.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/swift-ads-matter.md diff --git a/.changeset/swift-ads-matter.md b/.changeset/swift-ads-matter.md new file mode 100644 index 00000000000..1b3da848a91 --- /dev/null +++ b/.changeset/swift-ads-matter.md @@ -0,0 +1,5 @@ +--- +'@primer/mcp': patch +--- + +Removes fallback for legacy documentation for components using `get_component`