-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Add MCP Marketplace #1731
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add MCP Marketplace #1731
Conversation
|
|
The pull request is quite large, with 1079 lines added across 11 files. While the changes primarily focus on integrating MCP marketplace functionality, there are several distinct components and updates included:
Given the size and scope of the changes, it might be beneficial to split the pull request into smaller, more focused PRs. For example:
This would make it easier to review and test each part independently. Please consider splitting the changes accordingly. |
| {/* Logo */} | ||
| {item.logoUrl && ( | ||
| <img | ||
| src={item.logoUrl} |
Check failure
Code scanning / CodeQL
Client-side cross-site scripting High
user-provided value
| {/* Logo */} | ||
| {item.logoUrl && ( | ||
| <img | ||
| src={item.logoUrl} |
Check warning
Code scanning / CodeQL
Client-side URL redirect Medium
user-provided value
| rowGap: 0, // Add this to remove vertical gap | ||
| }}> | ||
| <a | ||
| href={item.githubUrl} |
Check failure
Code scanning / CodeQL
Client-side cross-site scripting High
user-provided value
| rowGap: 0, // Add this to remove vertical gap | ||
| }}> | ||
| <a | ||
| href={item.githubUrl} |
Check warning
Code scanning / CodeQL
Client-side URL redirect Medium
user-provided value
src/core/webview/ClineProvider.ts
Outdated
|
|
||
| private async fetchMcpMarketplaceFromApi(silent: boolean = false): Promise<McpMarketplaceCatalog | undefined> { | ||
| try { | ||
| const response = await axios.get("https://api.cline.bot/v1/mcp/marketplace", { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avoid hardcoding external API URLs (e.g. https://api.cline.bot/v1/mcp/marketplace). Consider placing endpoints in config or environment variables to ease deployment and testing. This follows our secure configuration best practices.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@buzz-code @mrubens i think we can use glama mcp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great idea, let me look into this.
src/core/webview/ClineProvider.ts
Outdated
| } | ||
|
|
||
| private async openMcpMarketplaceServerDetails(mcpId: string) { | ||
| const response = await fetch(`https://api.cline.bot/v1/mcp/marketplace/item?mcpId=${mcpId}`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider adding error handling for the fetch call in openMcpMarketplaceServerDetails so that network failures or unexpected responses don’t lead to unhandled exceptions.
|
Can we move it into another class not the same with cline provider ? |
|
hey guys @mrubens you're welcome to use our marketplace api (: |
|
@samhvw8 I've moved the functions out of cline provider file |
@buzz-code cool, btw do you have discord or smt else ? can we chat via discord ? |
| style={{ | ||
| display: "flex", | ||
| flexDirection: "column", | ||
| alignItems: "center", | ||
| gap: "24px", | ||
| padding: "32px 20px", | ||
| marginTop: "16px", | ||
| }}> | ||
| {/* Logo */} | ||
| <img | ||
| src="https://storage.googleapis.com/cline_public_images/cline.png" | ||
| alt="Cline bot logo" | ||
| style={{ | ||
| width: 64, | ||
| height: 64, | ||
| borderRadius: 8, | ||
| }} | ||
| /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we have integrated tailwind and shadcn
https://ui.shadcn.com/
it will be cool if you you can leverage it 💪,
mrubens
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generous offer aside, we shouldn't be hitting api.cline.bot. We should discuss the best way to support this with an API.
Why not both ¯_(ツ)_/¯. Add the ability to add multiple MCP marketplace endpoints. Roo's and Cline's and ????'s. |
|
Hope this gets merged! ;) would love to see this! |
|
Closing because I don't have the time for it now |
|
I am genuinely sad 😢 hope this gets implemented later |
Context
Added MCP marketplace, inspired from cline's pr (cline/cline#1841)
Implementation
Screenshots
How to Test
Get in Touch
Important
Adds MCP Marketplace to
ClineProviderwith UI components for browsing and managing MCP servers.ClineProviderfor fetching, downloading, and displaying MCP servers.mcpMarketplaceCatalogandmcpDownloadDetailsmessages.McpMarketplaceView,McpMarketplaceCard, andMcpSubmitCardcomponents for marketplace UI.McpMarketplaceView.McpView.GlobalStateKeywithmcpMarketplaceCatalog.ExtensionMessageandWebviewMessagefor marketplace actions.This description was created by
for c9ddca0. It will automatically update as commits are pushed.