Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions marketplace-examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Marketplace Examples

This directory contains example configurations for items that could be added to the Roo Code Marketplace.

## Purpose

Since the Roo Code Marketplace items are managed through an external API (`https://api.roocode.com/api/marketplace/`), this directory serves as:
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider clarifying API endpoint URLs: The README mentions https://api.roocode.com/api/marketplace/ while later it refers to https://api.roocode.com/api/marketplace/mcps. Ensure consistency if they are intended to be the same.

Suggested change
Since the Roo Code Marketplace items are managed through an external API (`https://api.roocode.com/api/marketplace/`), this directory serves as:
Since the Roo Code Marketplace items are managed through an external API (`https://api.roocode.com/api/marketplace/mcps`), this directory serves as:


1. **Reference examples** for new marketplace submissions
2. **Documentation** of the expected format for MCP servers and modes
3. **Testing ground** for validating configurations before they're added to the marketplace backend

## Structure

```
marketplace-examples/
├── mcp-servers/ # Example MCP server configurations
│ └── windows-mcp.yaml
└── modes/ # Example custom mode configurations (future)
```

## MCP Server Configuration Format

MCP server configurations follow the schema defined in `packages/types/src/marketplace.ts`. Each configuration should include:
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Could we add a note here mentioning that the type field would be added programmatically when these configurations are processed? According to the schema, the type discriminator is added during processing, not in the YAML files themselves.


### Required Fields

- `id`: Unique identifier for the MCP server
- `name`: Display name
- `description`: Clear description of what the server does
- `url`: GitHub repository or project URL
- `content`: Installation configuration(s)

### Optional Fields

- `author`: Creator's name
- `authorUrl`: Link to author's profile
- `tags`: Array of relevant tags for discovery
- `prerequisites`: System requirements or dependencies
- `parameters`: Configurable options for the server

## Example: Windows MCP

The `mcp-servers/windows-mcp.yaml` file demonstrates a complete configuration for the Windows MCP server, which allows AI agents to control Windows desktop applications, browsers, and file operations.

### Key Features Highlighted:

- Multiple installation methods (uvx, pip, development)
- Clear prerequisites for each installation method
- Optional configuration parameters
- Comprehensive tagging for discoverability

## How to Submit to Marketplace

Currently, marketplace items are managed through the Roo Code backend API. To submit a new MCP server:

1. Create a configuration file following the examples in this directory
2. Test the configuration locally to ensure it works
3. Submit an issue using the [Marketplace Feedback template](https://github.com/RooCodeInc/Roo-Code/issues/new?template=marketplace.yml)
4. Include your configuration file in the issue
5. The Roo Code team will review and add it to the marketplace backend

## Testing Locally

While these configurations cannot be directly used in the extension (as it fetches from the API), you can manually test MCP servers by:

1. Installing them according to their documentation
2. Adding them to your `.roo/mcp.json` (project-level) or global MCP settings
3. Verifying they work correctly with Roo Code

## Contributing

If you'd like to add more example configurations:

1. Follow the existing format and structure
2. Ensure all required fields are present
3. Test the installation instructions
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Consider adding a section about validation here. It would be helpful to document how contributors can validate their example configurations against the TypeScript schema before submission. Perhaps we could add a simple validation script or at least point to the schema location?

4. Submit a PR with your example configuration

## Notes

- These examples are for reference only and don't automatically appear in the marketplace
- The actual marketplace data is served from `https://api.roocode.com/api/marketplace/mcps`
- Changes to the marketplace require backend updates by the Roo Code team
73 changes: 73 additions & 0 deletions marketplace-examples/mcp-servers/windows-mcp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Windows MCP Server Configuration
# This is a sample configuration for adding windows-mcp to the MCP Marketplace
# Repository: https://github.com/CursorTouch/Windows-MCP

id: windows-mcp
name: Windows MCP
description: Control Windows PC with an AI agent - automate desktop apps, web browsers, file operations, and more. Perfect for testing applications, automating workflows, and controlling VS Code itself.
author: CursorTouch
authorUrl: https://github.com/CursorTouch
url: https://github.com/CursorTouch/Windows-MCP
tags:
- automation
- windows
- desktop-control
- testing
- browser-automation
- file-management
prerequisites:
- Windows operating system
- Python 3.8 or higher
- pip package manager

# Installation methods for different scenarios
content:
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The structure here doesn't quite match the schema defined in packages/types/src/marketplace.ts. According to the schema, when using multiple installation methods, each method's content field should be a string containing the JSON configuration. However, I see prerequisites nested under each installation method, which should actually be at the root level for the entire MCP server.

Could we restructure this to match the expected format? The prerequisites at line 18-21 are correct for the root level, but lines 32-33, 42-43, and 54-56 should be removed since prerequisites per installation method aren't supported by the schema.

- name: Standard Installation
content: |
{
"command": "uvx",
"args": ["--from", "windows-mcp", "windows-mcp"],
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Is this intentional that we're using windows-mcp as the package name for uvx? The actual package might not exist on PyPI yet. Consider adding a comment clarifying this is an example configuration and the actual package availability should be verified.

"env": {}
}
prerequisites:
- uvx installed (pip install uvx)

- name: Python Package Installation
content: |
{
"command": "python",
"args": ["-m", "windows_mcp"],
"env": {}
}
prerequisites:
- pip install windows-mcp

- name: Development Installation
content: |
{
"command": "python",
"args": ["path/to/windows-mcp/main.py"],
"env": {
"PYTHONPATH": "path/to/windows-mcp"
}
}
prerequisites:
- Clone repository: git clone https://github.com/CursorTouch/Windows-MCP.git
- Install dependencies: pip install -r requirements.txt

# Optional parameters for configuration
parameters:
- name: Screenshot Directory
key: screenshot_dir
placeholder: "C:\\Screenshots"
optional: true

- name: Automation Speed
key: automation_speed
placeholder: "normal"
optional: true

- name: Enable Logging
key: enable_logging
placeholder: "false"
optional: true
Loading