Skip to content

Conversation

@MaheshtheDev
Copy link
Member

@MaheshtheDev MaheshtheDev commented Dec 6, 2025

updated the cursor one click installation with new deeplink

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Dec 6, 2025

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
supermemory-app b2ecad1 Commit Preview URL Dec 07 2025, 03:47 AM

@MaheshtheDev MaheshtheDev marked this pull request as ready for review December 6, 2025 08:08
@graphite-app graphite-app bot requested a review from Dhravya December 6, 2025 08:08
Copy link
Member Author


How to use the Graphite Merge Queue

Add the label Main to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@claude
Copy link

claude bot commented Dec 6, 2025

Pull Request Review

Overview

This PR updates the Cursor deeplink URL format from the old HTTPS-based format to the new cursor:// protocol scheme. The decoded configs show:

Old format:

{"command":"npx -y mcp-remote https://api.supermemory.ai/mcp"}

New format:

{"url":"https://api.supermemory.ai/mcp"}

Code Quality ✅

  • Clean change: Single-line update with clear intent
  • Follows conventions: Aligns with Cursor's updated deeplink protocol
  • Naming: The package name changed from supermemory-mcp to supermemory which is cleaner

Potential Issues 🔴

1. Critical: Project Selection Not Included

The deeplink currently uses a hardcoded config without considering the selectedProject state that exists in the component (line 135). The manual installation command at line 269-272 correctly includes project selection:

if (selectedProject && selectedProject !== "none") {
  const projectIdForCommand = selectedProject.replace(/^sm_project_/, "")
  command += ` --project ${projectIdForCommand}`
}

Impact: Users clicking the one-click install button won't have their selected project applied, while users copying the manual command will. This creates an inconsistent UX where the "easier" method is actually less functional.

Recommendation: The getCursorDeeplink() function should be updated to dynamically generate the config based on the selected project, similar to generateInstallCommand().

2. Backwards Compatibility Concern

Users who may have bookmarked or saved the old deeplink format may encounter issues. Consider:

  • Adding release notes or user communication about the change
  • Monitoring for any support tickets related to Cursor installation issues

Security ✅

  • Both old and new URLs point to the same trusted endpoint
  • Base64 encoding is properly formatted
  • No injection vulnerabilities introduced

Performance ✅

  • No performance impact
  • The new format is slightly more concise

Testing ⚠️

Missing Tests

  • No test files found for this component (apps/web/components/**/*.test.tsx)
  • Manual testing should verify:
    • One-click button opens Cursor with correct config
    • Installation succeeds in Cursor
    • Project selection works correctly (currently broken)
    • OAuth flow completes successfully

Recommendations

High Priority:

  1. Make getCursorDeeplink() dynamic - Accept project as parameter and encode it in the config
  2. Add tests - At minimum, test that the deeplink format is correct and includes project selection

Example fix for #1:

function getCursorDeeplink() {
  const config: { url: string; project?: string } = {
    url: "https://api.supermemory.ai/mcp"
  }
  
  if (selectedProject && selectedProject !== "none") {
    config.project = selectedProject.replace(/^sm_project_/, "")
  }
  
  const encodedConfig = btoa(JSON.stringify(config))
  return `cursor://anysphere.cursor-deeplink/mcp/install?name=supermemory&config=${encodedConfig}`
}

Medium Priority:
3. Document the deeplink format change in release notes
4. Consider adding E2E tests for the MCP installation flow

Verdict

While this updates to the correct deeplink format, the missing project selection functionality is a regression that should be addressed before merging. The one-click install button is less functional than the manual method, which defeats its purpose.

Suggested Action: Request changes to include project selection in the deeplink generation.

@graphite-app
Copy link

graphite-app bot commented Dec 7, 2025

Merge activity

@graphite-app
Copy link

graphite-app bot commented Dec 7, 2025

TV gif. Jeremy Clarkson gives a thumbs up and a sarcastic, goofy, toothy smile. (Added via Giphy)

updated the cursor one click installation with new deeplink
@graphite-app graphite-app bot force-pushed the 12-06-chore_update_cursor_one_click_mcp_installation branch from 72c35f0 to b2ecad1 Compare December 7, 2025 03:42
@graphite-app graphite-app bot merged commit b2ecad1 into main Dec 7, 2025
3 of 4 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