Skip to content

Conversation

@nearestnabors
Copy link
Contributor

@nearestnabors nearestnabors commented Jan 8, 2026

Summary

  • Added dynamic overview pages for 6 documentation sections with auto-updating subpage lists
  • Created custom MCP client grid with official logos and integration-style cards
  • Implemented consistent navigation patterns across all overview pages

Changes Made

Overview Pages Added

  • /guides/create-tools/tool-basics/ - Build a Tool overview with SubpageList component
  • /guides/create-tools/evaluate-tools/ - Evaluate Tools overview with SubpageList component
  • /guides/create-tools/error-handling/ - Handle Errors overview with SubpageList component
  • /guides/tool-calling/custom-apps/ - Custom Applications overview with SubpageList component
  • /guides/tool-calling/mcp-clients/ - MCP Clients overview with custom grid component
  • /guides/security/ - Security overview with SubpageList component

Auto-Updating Navigation

  • Created SubpageList components that dynamically read _meta.tsx files
  • Added "Overview" entries to all meta files with proper sidebar navigation
  • Components automatically show new pages when added to meta files
  • Uses exact markdown styling classes for consistent appearance

MCP Client Grid Enhancement

  • Custom 3-column responsive grid matching integration page styling
  • Downloaded and stored official logos locally (cursor.png, claude.png, vscode.svg)
  • Integration-style cards with colored borders, backgrounds, and hover effects
  • Professional presentation of MCP client options

Technical Implementation

  • Fixed breadcrumb navigation by adding missing meta files
  • All overview pages use resource-oriented language ("here you'll find...")
  • Consistent component architecture across all sections
  • Local logo storage for better performance and reliability

Test Plan

  • Verify all overview pages render correctly with "Overview" in sidebar
  • Test auto-updating functionality by checking meta file integration
  • Confirm logos display properly and links work correctly
  • Validate responsive design across different screen sizes
  • Check breadcrumb navigation works as expected

🤖 Generated with Claude Code


Note

Adds navigable overview pages across docs with dynamic subpage listing and an MCP client grid.

  • New SubpageList component renders links from _meta and is used by new overview pages: tool-basics, evaluate-tools, error-handling, custom-apps, security
  • New MCP clients section with MCPClientGrid (Cursor, Claude Desktop, VS Code) and local logo assets (incl. vscode.svg)
  • Updated _meta.tsx files to include index "Overview" entries, theme settings, and hrefs where needed
  • Minor infra/content updates: next-env.d.ts routes import path fixed; public/llms.txt regenerated

Written by Cursor Bugbot for commit cd87514. This will update automatically on new commits. Configure here.

@vercel
Copy link

vercel bot commented Jan 8, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
docs Ready Ready Preview, Comment Jan 9, 2026 2:34pm

@nearestnabors nearestnabors enabled auto-merge (squash) January 8, 2026 01:01
@nearestnabors
Copy link
Contributor Author

Also fixes the broken breadcrumbs in DEV-216

@torresmateo
Copy link
Collaborator

I like this a lot, especially as it handles the breadcrumb issue. I have one nit though about "shared" overviews when clicking from nested levels. E.g.:

From this page, the breadcrumbs looks like:

And "Create tools" is NOT clickable. However from this page, the breadcrumb is:

Which seems to follow a different logic (now "Create tools" IS clickable, but the next level of the breadcrumb isn't).

nearestnabors and others added 4 commits January 8, 2026 17:49
- Fix TypeScript error: Property 'title' does not exist on type 'ReactElement'
- Create single reusable SubpageList component in /app/_components/
- Remove 6 duplicate SubpageList wrapper components
- Update all MDX pages to use centralized SubpageList with proper props
- Fix import paths to resolve module resolution errors
- Replace unsafe 'as any' assertions with proper type guards

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
}

export function SubpageList({ basePath, meta }: SubpageListProps) {
const subpages = Object.entries(meta).filter(([key]) => key !== "index");
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SubpageList renders invalid link for theme config key

High Severity

The SubpageList component filters meta entries with key !== "index" but doesn't filter out the "*" key that all meta files use for theme configuration. This causes the component to render a broken link to ${basePath}/* with [object Object] as the link text, since the "*" entry's value ({ theme: { ... } }) lacks a title property and falls through to String(title). All 5 pages using SubpageList will display this broken entry.

Fix in Cursor Fix in Web

@nearestnabors nearestnabors merged commit dfcd056 into main Jan 9, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants