Skip to content

chore: Add MCP v1 to the docs#3503

Merged
perkinsjr merged 2 commits intomainfrom
mcp-docs
Jul 10, 2025
Merged

chore: Add MCP v1 to the docs#3503
perkinsjr merged 2 commits intomainfrom
mcp-docs

Conversation

@perkinsjr
Copy link
Member

@perkinsjr perkinsjr commented Jul 10, 2025

What does this PR do?

Unkey MCP is here. So these docs just add some flavor about using it.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Chore (refactoring code, technical debt, workflow improvements)
  • Enhancement (small improvements)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How should this be tested?

No testing.

Checklist

Required

  • Filled out the "How to test" section in this PR
  • Read Contributing Guide
  • Self-reviewed my own code
  • Commented on my code in hard-to-understand areas
  • Ran pnpm build
  • Ran pnpm fmt
  • Checked for warnings, there are none
  • Removed all console.logs
  • Merged the latest changes from main onto my branch with git pull origin main
  • My changes don't cause any responsiveness issues

Appreciated

  • If a UI change was made: Added a screen recording or screenshots to this PR
  • Updated the Unkey Docs if changes were necessary

Summary by CodeRabbit

  • New Features

    • Introduced a new "AI Code Gen" documentation section with guides for integrating Unkey with AI-powered development tools such as Cursor, Windsurf, and Unkey MCP.
    • Added step-by-step setup and configuration instructions for using Unkey APIs with Cursor, Windsurf, and Claude Desktop via MCP servers.
  • Documentation

    • Enhanced documentation navigation with new icons and restructured groups for improved discoverability.
    • Updated navigation to include the new "AI Code Gen" section and reorganized other groups for clarity.

@changeset-bot
Copy link

changeset-bot bot commented Jul 10, 2025

⚠️ No Changeset found

Latest commit: 6bea789

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 10, 2025

Caution

Review failed

The pull request is closed.

📝 Walkthrough

"""

Walkthrough

New documentation pages were added under the "AI Code Gen" section, introducing integration guides for Cursor, Windsurf, and Unkey MCP with Unkey's APIs. The documentation navigation JSON was updated to include a new "AI Code Gen" group, restructure migration pages, and add icons to various navigation groups.

Changes

File(s) Change Summary
apps/docs/ai-code-gen/overview.mdx Added an overview page introducing AI code generation tools compatible with Unkey APIs.
apps/docs/ai-code-gen/cursor.mdx Added a guide for using Cursor with Unkey, including setup and integration steps.
apps/docs/ai-code-gen/windsurf.mdx Added documentation for integrating Windsurf with Unkey APIs and MCP servers.
apps/docs/ai-code-gen/unkey-mcp.mdx Added a detailed guide for connecting AI tools to Unkey APIs via the Model Context Protocol (MCP).
apps/docs/docs.json Updated documentation navigation: added "AI Code Gen" group, assigned icons to groups, restructured migrations.

Suggested reviewers

  • mcstepp
  • MichaelUnkey
  • ogzhanolguncu
    """

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bbeb350 and 6bea789.

📒 Files selected for processing (1)
  • apps/docs/ai-code-gen/windsurf.mdx (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions
Copy link
Contributor

github-actions bot commented Jul 10, 2025

Thank you for following the naming conventions for pull request titles! 🙏

@vercel
Copy link

vercel bot commented Jul 10, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

2 Skipped Deployments
Name Status Preview Comments Updated (UTC)
dashboard ⬜️ Ignored (Inspect) Visit Preview Jul 10, 2025 3:22pm
engineering ⬜️ Ignored (Inspect) Visit Preview Jul 10, 2025 3:22pm

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c603bc0 and c2ef78e.

📒 Files selected for processing (5)
  • apps/docs/ai-code-gen/cursor.mdx (1 hunks)
  • apps/docs/ai-code-gen/overview.mdx (1 hunks)
  • apps/docs/ai-code-gen/unkey-mcp.mdx (1 hunks)
  • apps/docs/ai-code-gen/windsurf.mdx (1 hunks)
  • apps/docs/docs.json (8 hunks)
🧰 Additional context used
🧠 Learnings (5)
apps/docs/ai-code-gen/cursor.mdx (2)
Learnt from: ogzhanolguncu
PR: unkeyed/unkey#2872
File: apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts:36-39
Timestamp: 2025-04-08T09:34:24.576Z
Learning: In the Unkey dashboard, when making database queries involving workspaces, use `ctx.workspace.id` directly instead of fetching the workspace separately for better performance and security.
Learnt from: ogzhanolguncu
PR: unkeyed/unkey#3321
File: apps/dashboard/lib/trpc/routers/authorization/roles/keys/schema-with-helpers.ts:5-8
Timestamp: 2025-06-18T12:28:10.449Z
Learning: In the unkey dashboard application, API validation for pagination limits is controlled at the UI level rather than requiring additional server-side validation, as the APIs are internal and protected by UI logic.
apps/docs/ai-code-gen/overview.mdx (2)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml} : Use `AIDEV-NOTE:`, `AIDEV-TODO:`, `AIDEV-BUSINESS_RULE:`, or `AIDEV-QUESTION:` (all-caps prefix) as anchor comments aimed at AI and developers.
Learnt from: Flo4604
PR: unkeyed/unkey#3421
File: go/apps/api/openapi/openapi.yaml:196-200
Timestamp: 2025-07-03T05:58:10.699Z
Learning: In the Unkey codebase, OpenAPI 3.1 is used, which allows sibling keys (such as `description`) alongside `$ref` in schema objects. Do not flag this as an error in future reviews.
apps/docs/docs.json (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml} : Update relevant anchors when modifying associated code.
apps/docs/ai-code-gen/windsurf.mdx (4)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml} : Use `AIDEV-NOTE:`, `AIDEV-TODO:`, `AIDEV-BUSINESS_RULE:`, or `AIDEV-QUESTION:` (all-caps prefix) as anchor comments aimed at AI and developers.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml} : Make sure to add relevant anchor comments whenever a file or piece of code is too complex, very important, confusing, or could have a bug.
Learnt from: MichaelUnkey
PR: unkeyed/unkey#3439
File: apps/engineering/content/design/components/dialogs/dialog-container.mdx:103-111
Timestamp: 2025-07-08T12:47:17.841Z
Learning: In component documentation files (e.g., `.mdx` files in `apps/engineering/content/design/components/`), the Accessibility section is included in the standard template and should not be removed from component documentation.
Learnt from: Devansh-Baghel
PR: unkeyed/unkey#2452
File: oss.gg/7_create_a_template.md:42-42
Timestamp: 2024-10-15T19:57:16.520Z
Learning: In Hono & Cloudflare Workers templates, the 'Setup and Installation' section in the README serves as the quickstart guide.
apps/docs/ai-code-gen/unkey-mcp.mdx (2)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml} : Use `AIDEV-NOTE:`, `AIDEV-TODO:`, `AIDEV-BUSINESS_RULE:`, or `AIDEV-QUESTION:` (all-caps prefix) as anchor comments aimed at AI and developers.
Learnt from: ogzhanolguncu
PR: unkeyed/unkey#3321
File: apps/dashboard/lib/trpc/routers/authorization/roles/keys/schema-with-helpers.ts:5-8
Timestamp: 2025-06-18T12:28:10.449Z
Learning: In the unkey dashboard application, API validation for pagination limits is controlled at the UI level rather than requiring additional server-side validation, as the APIs are internal and protected by UI logic.
🪛 LanguageTool
apps/docs/ai-code-gen/cursor.mdx

[grammar] ~7-~7: Use correct spacing
Context: ...s mode: "wide" --- # Using Cursor with Unkey Cursor is an AI-powered code editor tha...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: There might be a problem here.
Context: ...ations with API key management and rate limiting. ## Prerequisites ## Getting Started ### 1. Set Up Your Unk...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~13-~13: Use correct spacing
Context: ...limiting. ## Prerequisites ## Getting Started ### 1. Set Up Your Unkey Workspace First, ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~15-~15: Use correct spacing
Context: ...tting Started ### 1. Set Up Your Unkey Workspace First, create your Unkey workspace and ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~17-~17: Use correct spacing
Context: ...e your Unkey workspace and get your API keys: Navigate to the Unkey Dashboard and create a new API for your project. Go to Settings > Root Keys and create a new root key with the necessary permissions. Copy your API ID from the dashboard - you'll need this for generating API keys. ### 2. Set Up Unkey MCP Server (Optional) ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~33-~33: Use correct spacing
Context: .../Steps> ### 2. Set Up Unkey MCP Server (Optional) Cursor supports the Model Context Proto...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~35-~35: Use correct spacing
Context: ...ur Unkey workspace for more intelligent suggestions. #### Install Unkey MCP Server 1. **Configur...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~37-~37: Use correct spacing
Context: ...nt suggestions. #### Install Unkey MCP Server 1. Configure the MCP Server Create o...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~39-~39: Use correct spacing
Context: ...nkey MCP Server 1. Configure the MCP Server Create or update your Cursor configurat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~41-~41: Use correct spacing
Context: ...r configuration file with the Unkey MCP server: json { "mcpServers": { "Unkey": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/v1", "--header", "MCP-UNKEY-BEARER-AUTH:${UNKEY_ROOT_KEY}" ] } } } For rate limiting specific operations, ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~59-~59: Use correct spacing
Context: ...iting specific operations, you can also add: json { "mcpServers": { "UnkeyRateLimiting": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/ratelimits/", "--header", "MCP-UNKEY-V2-ROOT-KEY:${UNKEY_ROOT_KEY}" ] } } } 2. Set Environment Variable ```bash ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~77-~77: Use correct spacing
Context: ... } } 2. **Set Environment Variable** bash export UNKEY_ROOT_KEY="your_root_key_here" ``` 3. Restart Cursor Restart Cursor to ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~83-~83: Use correct spacing
Context: ...our_root_key_here" ``` 3. Restart Cursor Restart Cursor to load the MCP server c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~85-~85: Use correct spacing
Context: ... Restart Cursor to load the MCP server configuration. ## Tips and Tricks for Cursor with Unkey ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~87-~87: Use correct spacing
Context: ...on. ## Tips and Tricks for Cursor with Unkey ### 1. Keep Your Requests Small When worki...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~89-~89: Use correct spacing
Context: ...r with Unkey ### 1. Keep Your Requests Small When working with Cursor, break down co...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~91-~91: There might be a problem here.
Context: ...own complex tasks into smaller, focused requests: Good: Create a function to verify an API key with Unkey that returns a boolean Better: Create a TypeScript function that: - Takes an API key string as input - Uses @unkey/api to verify the key - Returns a boolean indicating if the key is valid - Includes proper error handling ### 2. Update and Reference Your README.md ...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~107-~107: Use correct spacing
Context: ...g ``` ### 2. Update and Reference Your README.md Keep your project's README.md updated w...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~109-~109: Use correct spacing
Context: ...sor uses this context to provide better suggestions: markdown # My Project This project uses Unkey for API authentication and rate limiting. ## Environment Variables - `UNKEY_ROOT_KEY`: Your Unkey root key - `UNKEY_API_ID`: Your API ID from the Unkey dashboard ## API Routes - `/api/protected` - Requires valid API key - `/api/keys` - Manage API keys (admin only) ## Rate Limiting - Free tier: 100 requests/hour - Pro tier: 1000 requests/hour ## Add Unkey Documentation Context Adding...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~129-~129: Use correct spacing
Context: ...ts/hour ``` ## Add Unkey Documentation Context Adding Unkey docs can let you specifica...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~131-~131: Use correct spacing
Context: ...er to Unkey features when building your app. From Cursor Settings > Features > Docs ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~133-~133: Use comma(s) to set off direct address
Context: ...app. From Cursor Settings > Features > Docs add new doc, use the URL "https://unkey...

(QB_NEW_EN_OTHER_ERROR_IDS_18)


[grammar] ~133-~133: There might be a problem here.
Context: ...m Cursor Settings > Features > Docs add new doc, use the URL "https://unkey.com/docs"

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~133-~133: There might be a mistake here.
Context: ...eatures > Docs add new doc, use the URL "https://unkey.com/docs"

(QB_NEW_EN_OTHER)

apps/docs/ai-code-gen/overview.mdx

[grammar] ~7-~7: Use correct spacing
Context: ...es mode: "wide" --- # AI Code Gen with Unkey Unkey provides powerful integrations wi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: There might be a problem here.
Context: ...ly. Whether you're using Cursor, GitHub Copilot, Windsurf,you can leverage AI to generate code tha...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~9-~9: Use correct spacing
Context: ...that integrates seamlessly with Unkey's APIs. ## Available AI Tools <CardGroup cols={2}...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: Use correct spacing
Context: ...sly with Unkey's APIs. ## Available AI Tools Use Cursor's AI capabilities with Unkey's API documentation and examples Build Unkey applications with Windsurf's AI-powered development environment Connect your favorite AI code generation tool to Unkey's APIs using Model Context Protocol

(QB_NEW_EN_OTHER_ERROR_IDS_5)

apps/docs/ai-code-gen/windsurf.mdx

[grammar] ~7-~7: Use correct spacing
Context: ...mode: "wide" --- # Using Windsurf with Unkey Windsurf is an AI-powered development e...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: Use correct spacing
Context: ... generation and real-time collaboration features. ## Getting Started ### 1. Set Up Your Unk...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: Use correct spacing
Context: ...ime collaboration features. ## Getting Started ### 1. Set Up Your Unkey Environment Befor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~13-~13: Use correct spacing
Context: ...tting Started ### 1. Set Up Your Unkey Environment Before working with Windsurf, ensure yo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~15-~15: Use correct spacing
Context: ... ensure you have your Unkey credentials ready: Navigate to the Unkey Dashboard and create a new API for your project. Go to Settings > Root Keys and create a new root key with appropriate permissions. Note down your API ID and root key - you'll need these for your application. ### 2. Set Up Unkey MCP Server (Optional) ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~31-~31: Use correct spacing
Context: .../Steps> ### 2. Set Up Unkey MCP Server (Optional) Windsurf supports the Model Context Pro...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~33-~33: Use correct spacing
Context: ...ur Unkey workspace for more intelligent suggestions. #### Install Unkey MCP Server To get starte...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~35-~35: Use correct spacing
Context: ...nt suggestions. #### Install Unkey MCP Server To get started with Windsurf, open "Win...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~37-~37: There might be a mistake here.
Context: ...e > Model Context Protocol (MCP) Servers", click on "Add Server", click "Add custo...

(QB_NEW_EN_OTHER)


[grammar] ~37-~37: There might be a mistake here.
Context: ...col (MCP) Servers", click on "Add Server", click "Add custom server", and add the ...

(QB_NEW_EN_OTHER)


[grammar] ~37-~37: There might be a mistake here.
Context: ...n "Add Server", click "Add custom server", and add the following configuration for...

(QB_NEW_EN_OTHER)


[grammar] ~37-~37: Use correct spacing
Context: ...and add the following configuration for Convex. 1. Configure the MCP Server ```json ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~39-~39: Use correct spacing
Context: ...ion for Convex. 1. Configure the MCP Server json { "mcpServers": { "Unkey": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/v1", "--header", "MCP-UNKEY-BEARER-AUTH:${UNKEY_ROOT_KEY}" ] } } } For rate limiting specific operations, ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~57-~57: Use correct spacing
Context: ...iting specific operations, you can also add: json { "mcpServers": { "UnkeyRateLimiting": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/ratelimits/", "--header", "MCP-UNKEY-V2-ROOT-KEY:${UNKEY_ROOT_KEY}" ] } } } 2. Set Environment Variable ```bash ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~75-~75: Use correct spacing
Context: ... } } 2. **Set Environment Variable** bash export UNKEY_ROOT_KEY="your_root_key_here" ``` 3. Restart Windsurf Restart Windsurf...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~81-~81: There might be a mistake here.
Context: ...our_root_key_here" ``` 3. Restart Windsurf Restart Windsurf to load the MCP server...

(QB_NEW_EN_OTHER)

apps/docs/ai-code-gen/unkey-mcp.mdx

[grammar] ~7-~7: Use correct spacing
Context: ... "wide" --- # Unkey MCP (Model Context Protocol) The Unkey Model Context Protocol (MCP) ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[uncategorized] ~9-~9: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...enabling AI-powered API key management, rate limiting configuration, and analytics queries. ...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~9-~9: Use correct spacing
Context: ...e limiting configuration, and analytics queries. ## What is MCP? Model Context Protocol (M...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: Use correct spacing
Context: ...ion, and analytics queries. ## What is MCP? Model Context Protocol (MCP) is an open...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~13-~13: Use correct spacing
Context: ...stance with API key management and rate limiting. ## Available MCP Servers Unkey provides t...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~15-~15: Use correct spacing
Context: ...nt and rate limiting. ## Available MCP Servers Unkey provides two MCP servers: <CardG...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~17-~17: There might be a problem here.
Context: ...ble MCP Servers Unkey provides two MCP servers: Full access to Unkey's API management capabilities Specialized server for rate limiting operations ## Prerequisites - [Unkey account](https://app.unkey.com/au...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~40-~40: There might be a problem here.
Context: ...ermissions - Node.js installed (for npx command) ## Installation Below is an example of using Unkey MCP ...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~44-~44: Correctly pair commas and coordinating conjunctions
Context: ...w is an example of using Unkey MCP with Claude but it can also be used with other AI a...

(QB_NEW_EN_OTHER_ERROR_IDS_14)


[grammar] ~44-~44: Use correct spacing
Context: ...e but it can also be used with other AI applications. ### Unkey API MCP The main Unkey MCP serve...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~46-~46: Use correct spacing
Context: ...h other AI applications. ### Unkey API MCP The main Unkey MCP server provides acce...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~48-~48: Use correct spacing
Context: ...r provides access to the complete Unkey API: 1. Open Claude Desktop Configuration ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~50-~50: There might be a mistake here.
Context: ...te Unkey API: 1. Open Claude Desktop Configuration Navigate to your Claude Desktop configu...

(QB_NEW_EN_OTHER)


[grammar] ~54-~54: Use correct spacing
Context: ...aude/claude_desktop_config.json - **Windows**:%APPDATA%\Claude\claude_desktop_config.json` 2. Add the MCP Server Configuration ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~56-~56: There might be a mistake here.
Context: ...p_config.json` 2. Add the MCP Server Configuration Add the following configuration to your...

(QB_NEW_EN_OTHER)


[grammar] ~58-~58: Use correct spacing
Context: ...Add the following configuration to your claude_desktop_config.json: json { "mcpServers": { "Unkey": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/v1", "--header", "MCP-UNKEY-BEARER-AUTH:${UNKEY_ROOT_KEY}" ] } } } 3. Set Environment Variable Set your...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~76-~76: Use correct spacing
Context: ... } } ``` 3. Set Environment Variable Set your Unkey root key as an environme...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~78-~78: Use correct spacing
Context: ...t your Unkey root key as an environment variable: bash # macOS/Linux export UNKEY_ROOT_KEY="unkey_xxx" # Windows set UNKEY_ROOT_KEY=unkey_xxx 4. Restart Claude Desktop Close and ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~88-~88: There might be a mistake here.
Context: ...Y=unkey_xxx ``` 4. Restart Claude Desktop Close and restart Claude Desktop to loa...

(QB_NEW_EN_OTHER)


[grammar] ~90-~90: There might be a problem here.
Context: ... restart Claude Desktop to load the MCP server. ### Unkey Rate Limiting MCP For specialized rate...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~92-~92: Use correct spacing
Context: ...he MCP server. ### Unkey Rate Limiting MCP For specialized rate limiting operation...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~94-~94: Use hyphens correctly
Context: ...nkey Rate Limiting MCP For specialized rate limiting operations, use the dedicated r...

(QB_NEW_EN_OTHER_ERROR_IDS_29)


[grammar] ~94-~94: Use hyphens correctly
Context: ... limiting operations, use the dedicated rate limiting MCP server: 1. **Add Rate Limi...

(QB_NEW_EN_OTHER_ERROR_IDS_29)


[grammar] ~94-~94: Use correct spacing
Context: ...ns, use the dedicated rate limiting MCP server: 1. Add Rate Limiting MCP Configuration ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~96-~96: Use correct spacing
Context: ...MCP server: 1. Add Rate Limiting MCP Configuration Add this configuration to your `claude_...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~98-~98: Use correct spacing
Context: ...on** Add this configuration to your claude_desktop_config.json: json { "mcpServers": { "UnkeyRateLimiting": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/ratelimits/", "--header", "MCP-UNKEY-V2-ROOT-KEY:${UNKEY_ROOT_KEY}" ] } } } 2. Use Both Servers You can configur...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~116-~116: Use correct spacing
Context: ... } } } ``` 2. Use Both Servers You can configure both MCP servers simu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~118-~118: Use correct spacing
Context: ... You can configure both MCP servers simultaneously: json { "mcpServers": { "Unkey": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/v1", "--header", "MCP-UNKEY-BEARER-AUTH:${UNKEY_ROOT_KEY}" ] }, "UnkeyRateLimiting": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/ratelimits/", "--header", "MCP-UNKEY-V2-ROOT-KEY:${UNKEY_ROOT_KEY}" ] } } } ## Getting Your Root Key To use the MCP s...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~145-~145: Use correct spacing
Context: ... } } ``` ## Getting Your Root Key To use the MCP servers, you need a Unke...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~147-~147: Use correct spacing
Context: ... need a Unkey root key with appropriate permissions: Go to Settings > Root Keys in your Unkey dashboard. Click "Create New Root Key" and select the permissions you need: - API Key Management: For creating, updating, and deleting API keys - Rate Limiting: For configuring rate limits - Analytics: For querying usage data Copy your root key and store it securely. You'll use this as your environment variable. ## Using MCP with Claude Desktop Once con...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~166-~166: Use correct spacing
Context: ...tep> ## Using MCP with Claude Desktop Once configured, you can interact with ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~168-~168: Use correct spacing
Context: ...Unkey workspace directly through Claude Desktop: ### API Key Management Ask Claude to help ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~170-~170: Use correct spacing
Context: ...ly through Claude Desktop: ### API Key Management Ask Claude to help with API key operati...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~172-~172: Use correct spacing
Context: ...gement Ask Claude to help with API key operations: Can you create a new API key for my mobile app with the following settings: - Name: "Mobile App Production" - Rate limit: 1000 requests per hour - Expiration: 90 days from now - Metadata: {"app": "mobile", "version": "1.0", "environment": "production"} ### Rate Limiting Configuration Configure ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[uncategorized] ~182-~182: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ..., "environment": "production"} ``` ### Rate Limiting Configuration Configure rate limits th...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~182-~182: Use correct spacing
Context: ...": "production"} ``` ### Rate Limiting Configuration Configure rate limits through natural l...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~184-~184: Use correct spacing
Context: ... Configure rate limits through natural language: I need to set up rate limiting for my API with these tiers: - Free tier: 100 requests per hour - Pro tier: 1000 requests per hour - Enterprise tier: 10000 requests per hour Can you help me configure these limits? ### Analytics and Monitoring Query your AP...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~195-~195: Use correct spacing
Context: ...re these limits? ### Analytics and Monitoring Query your API usage data: Show me...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~197-~197: There might be a problem here.
Context: ...cs and Monitoring Query your API usage data: Show me the API usage statistics for the last 7 days, including: - Total requests - Top 5 API keys by usage - Error rates - Geographic distribution of requests ### Troubleshooting Get help with common issues: ``` I'm s...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~209-~209: Use correct spacing
Context: ...# Troubleshooting Get help with common issues: I'm seeing 401 errors for API key verification. Can you help me debug this? The API key is: uk_xxx The API ID is: api_xxx ## Available Commands ### API Key Operati...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~217-~217: Use correct spacing
Context: ...he API ID is: api_xxx ``` ## Available Commands ### API Key Operations - *Create API Key...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~219-~219: Use correct spacing
Context: ...``` ## Available Commands ### API Key Operations - Create API Key: Generate new API keys...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~221-~221: There might be a mistake here.
Context: ...ey**: Generate new API keys with custom settings - List API Keys: View all API keys ...

(QB_NEW_EN_OTHER)


[grammar] ~222-~222: There might be a mistake here.
Context: ...t API Keys**: View all API keys in your workspace - Update API Key: Modify existing A...

(QB_NEW_EN_OTHER)


[grammar] ~223-~223: There might be a mistake here.
Context: ...date API Key**: Modify existing API key properties - Delete API Key: Remove API keys f...

(QB_NEW_EN_OTHER)


[grammar] ~224-~224: There might be a mistake here.
Context: ...te API Key**: Remove API keys from your workspace - Verify API Key: Check if an API k...

(QB_NEW_EN_OTHER)


[grammar] ~225-~225: There might be a mistake here.
Context: ...Key**: Check if an API key is valid and active ### Rate Limiting Operations - **Configure...

(QB_NEW_EN_OTHER)


[grammar] ~227-~227: Use hyphens correctly
Context: ... if an API key is valid and active ### Rate Limiting Operations - **Configure Rate ...

(QB_NEW_EN_OTHER_ERROR_IDS_29)


[grammar] ~227-~227: Use correct spacing
Context: ... is valid and active ### Rate Limiting Operations - Configure Rate Limits: Set up rate li...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[uncategorized] ~229-~229: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ns - Configure Rate Limits: Set up rate limiting rules - Check Rate Limit Status: Mo...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~229-~229: There might be a mistake here.
Context: ...ure Rate Limits**: Set up rate limiting rules - Check Rate Limit Status: Monitor ...

(QB_NEW_EN_OTHER)


[grammar] ~230-~230: There might be a mistake here.
Context: ...it Status**: Monitor current rate limit usage - Update Rate Limits: Modify existi...

(QB_NEW_EN_OTHER)


[grammar] ~231-~231: There might be a mistake here.
Context: ...te Limits**: Modify existing rate limit configurations - Delete Rate Limits: Remove rate l...

(QB_NEW_EN_OTHER)


[uncategorized] ~232-~232: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ations - Delete Rate Limits: Remove rate limiting rules ### Analytics and Monitoring - ...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~232-~232: There might be a mistake here.
Context: ...ete Rate Limits**: Remove rate limiting rules ### Analytics and Monitoring - **Usage Ana...

(QB_NEW_EN_OTHER)


[grammar] ~234-~234: Use correct spacing
Context: ... rate limiting rules ### Analytics and Monitoring - Usage Analytics: Query API usage stat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~239-~239: Use correct spacing
Context: ...Usage Reports*: Generate custom usage reports ## Example Conversations ### Creating an ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~241-~241: Use correct spacing
Context: ...nerate custom usage reports ## Example Conversations ### Creating an API Key You: "Create a...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~243-~243: Use correct spacing
Context: ...mple Conversations ### Creating an API Key You: "Create a new API key for my dev...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~245-~245: Use correct spacing
Context: ...sts per hour and set it to expire in 30 days." Claude: "I'll create a new API key fo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~247-~247: Use correct spacing
Context: ...500 requests/hour rate limit and 30-day expiration." ### Analyzing API Usage You: "What are...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~249-~249: Use correct spacing
Context: ... 30-day expiration." ### Analyzing API Usage You: "What are my top 3 API keys by u...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~251-~251: Use correct spacing
Context: ...hat are my top 3 API keys by usage this month?" Claude: "Let me query your Unkey anal...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~253-~253: Use correct spacing
Context: ...sage data and provide you with detailed statistics." ### Debugging Issues You: "I'm getting...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~255-~255: Use correct spacing
Context: ...th detailed statistics." ### Debugging Issues You: "I'm getting rate limit errors b...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~257-~257: Correctly pair commas and coordinating conjunctions
Context: ...ssues You: "I'm getting rate limit errors but I thought my limit was higher. Can ...

(QB_NEW_EN_OTHER_ERROR_IDS_14)


[grammar] ~257-~257: Use correct spacing
Context: ...er. Can you check my current rate limit configuration?" Claude: "I'll check your current rate...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~259-~259: Use hyphens correctly
Context: ...sing the Unkey MCP. Let me examine your rate limiting settings and current usage to h...

(QB_NEW_EN_OTHER_ERROR_IDS_29)


[grammar] ~259-~259: Use correct spacing
Context: ... and current usage to help diagnose the issue." ## Security Best Practices ### Environmen...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~261-~261: Use correct spacing
Context: ... diagnose the issue." ## Security Best Practices ### Environment Variables - Store your roo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~263-~263: Use correct spacing
Context: ...ecurity Best Practices ### Environment Variables - Store your root key in environment vari...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~265-~265: There might be a mistake here.
Context: ...nment variables, never in configuration files - Use different root keys for different...

(QB_NEW_EN_OTHER)


[grammar] ~266-~266: There might be a mistake here.
Context: ...ent environments (development, staging, production) - Regularly rotate your root keys ### ...

(QB_NEW_EN_OTHER)


[grammar] ~267-~267: There might be a problem here.
Context: ...roduction) - Regularly rotate your root keys ### Permissions - Grant only the minimum required permiss...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~271-~271: There might be a mistake here.
Context: ...nimum required permissions to your root keys - Use separate root keys for different ...

(QB_NEW_EN_OTHER)


[grammar] ~272-~272: There might be a mistake here.
Context: ...root keys for different operations when possible - Monitor root key usage through audit ...

(QB_NEW_EN_OTHER)


[grammar] ~273-~273: There might be a mistake here.
Context: ... - Monitor root key usage through audit logs ### Access Control - Limit access to your ...

(QB_NEW_EN_OTHER)


[grammar] ~275-~275: Use correct spacing
Context: ...ey usage through audit logs ### Access Control - Limit access to your Claude Desktop con...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~277-~277: There might be a mistake here.
Context: ... - Limit access to your Claude Desktop configuration - Use secure storage for your root keys...

(QB_NEW_EN_OTHER)


[grammar] ~278-~278: There might be a mistake here.
Context: ...tion - Use secure storage for your root keys - Implement proper backup and recovery ...

(QB_NEW_EN_OTHER)


[grammar] ~279-~279: There might be a problem here.
Context: ... - Implement proper backup and recovery procedures ## Troubleshooting ### Common Issues 1. **MCP Server Not Load...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~283-~283: Use correct spacing
Context: ...cedures ## Troubleshooting ### Common Issues 1. MCP Server Not Loading - Check tha...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~286-~286: There might be a mistake here.
Context: ... - Check that Node.js is installed and accessible - Verify your configuration file syn...

(QB_NEW_EN_OTHER)


[grammar] ~287-~287: There might be a mistake here.
Context: ...ble - Verify your configuration file syntax - Ensure environment variables are s...

(QB_NEW_EN_OTHER)


[grammar] ~288-~288: There might be a mistake here.
Context: ... - Ensure environment variables are set correctly 2. Authentication Errors - Verify you...

(QB_NEW_EN_OTHER)


[grammar] ~291-~291: There might be a mistake here.
Context: ...your root key is correct and has proper permissions - Check that the environment variabl...

(QB_NEW_EN_OTHER)


[grammar] ~292-~292: There might be a mistake here.
Context: ... Check that the environment variable is set - Confirm your root key hasn't expir...

(QB_NEW_EN_OTHER)


[grammar] ~293-~293: There might be a mistake here.
Context: ...s set - Confirm your root key hasn't expired 3. Connection Issues - Ensure you hav...

(QB_NEW_EN_OTHER)


[grammar] ~296-~296: There might be a mistake here.
Context: ... Issues** - Ensure you have internet connectivity - Check if your firewall is blocking...

(QB_NEW_EN_OTHER)


[grammar] ~297-~297: There might be a mistake here.
Context: ... - Check if your firewall is blocking connections - Verify the MCP server URLs are cor...

(QB_NEW_EN_OTHER)


[grammar] ~298-~298: There might be a mistake here.
Context: ...ons - Verify the MCP server URLs are correct ### Getting Help If you encounter issues: ...

(QB_NEW_EN_OTHER)


[grammar] ~300-~300: Use correct spacing
Context: ...CP server URLs are correct ### Getting Help If you encounter issues: 1. Check the ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~302-~302: Use correct spacing
Context: ...ect ### Getting Help If you encounter issues: 1. Check the Claude Desktop logs for error...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~304-~304: There might be a mistake here.
Context: ...Check the Claude Desktop logs for error messages 2. Verify your configuration matches th...

(QB_NEW_EN_OTHER)


[grammar] ~305-~305: There might be a mistake here.
Context: ...your configuration matches the examples exactly 3. Test your root key directly with the...

(QB_NEW_EN_OTHER)


[grammar] ~306-~306: There might be a mistake here.
Context: ...t your root key directly with the Unkey API 4. Join the [Unkey Discord](https://go....

(QB_NEW_EN_OTHER)


[grammar] ~307-~307: There might be a mistake here.
Context: ...s://go.unkey.com/discord) for community support ## Advanced Configuration ### Custom Envi...

(QB_NEW_EN_OTHER)


[grammar] ~309-~309: Use correct spacing
Context: ...ord) for community support ## Advanced Configuration ### Custom Environment Variables You can u...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~311-~311: Use correct spacing
Context: ...d Configuration ### Custom Environment Variables You can use custom environment variable...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~313-~313: Use correct spacing
Context: ...You can use custom environment variable names: json { "mcpServers": { "Unkey": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/v1", "--header", "MCP-UNKEY-BEARER-AUTH:${MY_CUSTOM_UNKEY_KEY}" ] } } } ### Multiple Workspaces Configure multiple...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~331-~331: Use correct spacing
Context: ..." ] } } } ``` ### Multiple Workspaces Configure multiple Unkey workspaces: `...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~333-~333: Use correct spacing
Context: ...le Workspaces Configure multiple Unkey workspaces: json { "mcpServers": { "UnkeyProduction": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/v1", "--header", "MCP-UNKEY-BEARER-AUTH:${UNKEY_PROD_KEY}" ] }, "UnkeyStaging": { "command": "npx", "args": [ "mcp-remote", "https://mcp.unkey.com/mcp/v1", "--header", "MCP-UNKEY-BEARER-AUTH:${UNKEY_STAGING_KEY}" ] } } } ## Next Steps - Explore [Cursor with Unke...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~360-~360: Use correct spacing
Context: ..._KEY}" ] } } } ``` ## Next Steps - Explore [Cursor with Unkey](/ai-code-ge...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~362-~362: There might be a mistake here.
Context: ...](/ai-code-gen/cursor) for IDE-based AI assistance - Check out [Windsurf with Unkey](/ai-c...

(QB_NEW_EN_OTHER)


[grammar] ~363-~363: There might be a problem here.
Context: ...ai-code-gen/windsurf) for collaborative development ## Resources - [Unkey API Reference](/api-reference/aut...

(QB_NEW_EN_MERGED_MATCH)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (15)
  • GitHub Check: Test Packages / Test ./packages/api
  • GitHub Check: Test Packages / Test ./apps/dashboard
  • GitHub Check: Test Packages / Test ./packages/nextjs
  • GitHub Check: Test Packages / Test ./packages/hono
  • GitHub Check: Test Packages / Test ./packages/rbac
  • GitHub Check: Test Packages / Test ./packages/cache
  • GitHub Check: Test Packages / Test ./internal/encryption
  • GitHub Check: Test Packages / Test ./internal/keys
  • GitHub Check: Test Packages / Test ./internal/clickhouse
  • GitHub Check: Test Packages / Test ./internal/id
  • GitHub Check: Test Packages / Test ./internal/hash
  • GitHub Check: Test Packages / Test ./internal/resend
  • GitHub Check: Test Packages / Test ./internal/billing
  • GitHub Check: autofix
  • GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (4)
apps/docs/docs.json (1)

70-80: Confirm internal links for the new “AI Code Gen” pages

The four new slugs (ai-code-gen/overview, cursor, windsurf, unkey-mcp) are now referenced in the nav. Double-check that the corresponding .mdx files live at
apps/docs/ai-code-gen/<page>.mdx and export the expected title front-matter; otherwise the build will break on missing routes.

apps/docs/ai-code-gen/cursor.mdx (2)

39-41: Typo: hydration sentence references “Convex” instead of Unkey

- …and add the following configuration for Convex.
+ …and add the following configuration for Unkey.

Likely an incorrect or invalid review comment.


33-35: “Prerequisites” section is empty

A heading without content can confuse readers and may be stripped by the docs renderer. Either remove the heading or add a short bullet list (e.g. “Unkey account, root key, Node.js, Cursor ≥ vX.Y”).

⛔ Skipped due to learnings
Learnt from: chronark
PR: unkeyed/unkey#2174
File: oss.gg/7_create_a_template.md:29-29
Timestamp: 2024-10-04T11:30:54.025Z
Learning: Even if a repository's README.md does not have a 'Quickstart' heading, as long as it includes all the steps to run the project, it meets the requirement for including quickstart information in the README.md.
Learnt from: chronark
PR: unkeyed/unkey#2174
File: oss.gg/7_create_a_template.md:29-29
Timestamp: 2024-10-08T15:33:04.290Z
Learning: Even if a repository's README.md does not have a 'Quickstart' heading, as long as it includes all the steps to run the project, it meets the requirement for including quickstart information in the README.md.
Learnt from: MichaelUnkey
PR: unkeyed/unkey#3439
File: apps/engineering/content/design/components/dialogs/dialog-container.mdx:103-111
Timestamp: 2025-07-08T12:47:17.841Z
Learning: In component documentation files (e.g., `.mdx` files in `apps/engineering/content/design/components/`), the Accessibility section is included in the standard template and should not be removed from component documentation.
apps/docs/ai-code-gen/unkey-mcp.mdx (1)

145-165: Steps component: ensure a blank line before <Steps>

Some MDX parsers require a blank line before a JSX block; otherwise it is treated as inline HTML and can break rendering. Add an empty line after the paragraph that introduces the Steps list.

⛔ Skipped due to learnings
Learnt from: MichaelUnkey
PR: unkeyed/unkey#3439
File: apps/engineering/content/design/components/dialogs/dialog-container.mdx:103-111
Timestamp: 2025-07-08T12:47:17.841Z
Learning: In component documentation files (e.g., `.mdx` files in `apps/engineering/content/design/components/`), the Accessibility section is included in the standard template and should not be removed from component documentation.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c2ef78e and bbeb350.

📒 Files selected for processing (1)
  • apps/docs/docs.json (6 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Test Packages / Test ./internal/clickhouse
🔇 Additional comments (2)
apps/docs/docs.json (2)

24-34: Verify icon names against Mintlify / Heroicons list

Several new icon values were introduced (rocket, shield, robot, key, bolt, scroll, chart-bar, plane).
Mintlify forwards these to Heroicons; any name that does not map to a valid Heroicon will silently render a blank square in the sidebar.

robot, scroll, and plane are not part of Heroicons v2 as of today. Please double-check the full list (https://heroicons.com/) or replace them with supported alternatives such as cog-6-tooth, document-text, paper-airplane, etc.
No functional impact, but it degrades UX if left unresolved.

Also applies to: 60-63, 72-80, 96-100, 132-135, 142-145, 148-150, 158-161


72-80: All AI Code Gen pages verified present

Confirmed that the following files exist in apps/docs/docs.json navigation group:

  • ai-code-gen/overview.mdx
  • ai-code-gen/cursor.mdx
  • ai-code-gen/windsurf.mdx
  • ai-code-gen/unkey-mcp.mdx

No missing pages—ready to merge.

@perkinsjr perkinsjr merged commit 8a58c00 into main Jul 10, 2025
28 of 30 checks passed
@perkinsjr perkinsjr deleted the mcp-docs branch July 10, 2025 15:23
@coderabbitai coderabbitai bot mentioned this pull request Nov 4, 2025
19 tasks
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.

1 participant