https://github.com/m2rads/v0-mcp
MCP Server to connect your MCP host to V0.dev directly
https://github.com/m2rads/v0-mcp
Last synced: about 2 months ago
JSON representation
MCP Server to connect your MCP host to V0.dev directly
- Host: GitHub
- URL: https://github.com/m2rads/v0-mcp
- Owner: m2rads
- Created: 2025-03-08T21:39:18.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-03-17T06:53:17.000Z (8 months ago)
- Last Synced: 2025-03-17T07:39:55.764Z (8 months ago)
- Language: Python
- Size: 57.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-mcp-servers - **v0-mcp** - MCP Server to connect your MCP host to V0.dev directly `python` `mcp` `server` `pip install git+https://github.com/m2rads/v0-mcp` (🤖 AI/ML)
- awesome-mcp-servers - **v0-mcp** - MCP Server to connect your MCP host to V0.dev directly `python` `mcp` `server` `pip install git+https://github.com/m2rads/v0-mcp` (AI/ML)
README
# V0.dev Response Capture Tool
A tool that connects to your browser, navigates to v0.dev, submits prompts, and captures all network responses - including the streamed AI responses. This allows you to save the complete output from v0.dev for further analysis or use.
## Features
- Connects to your existing Chrome browser with all your accounts/cookies
- Navigates to v0.dev and submits your prompt
- Captures all network activity, focusing on streamed AI responses
- Decodes the Vercel AI SDK streaming format to extract complete responses
- Saves responses to files for later reference
- Provides tools to extract and view responses from saved files
## Prerequisites
- Python 3.8+
- Google Chrome browser
## Installation
1. Clone this repository
2. Install dependencies:
```bash
# Using pip
pip install -r requirements.txt
# OR using uv
uv pip install -r requirements.txt
# Install Playwright browsers
python -m playwright install chromium
```
## Usage
### Capturing a v0.dev response
Run the script with a prompt to capture the response:
```bash
# Use the default prompt (calendar app)
python main.py
# Specify a custom prompt
python main.py monitor --prompt "Build a landing page for a coffee shop with a menu section and contact form"
```
The script will:
1. Connect to your Chrome browser (or launch a new instance)
2. Navigate to v0.dev
3. Submit your prompt
4. Capture all network activity, including the streaming responses
5. Save the responses to the `captures` directory
### Listing captured files
List all the files in your captures directory:
```bash
python main.py list
```
### Extracting responses from captured files
Extract and display the complete response from a captured file:
```bash
python main.py extract captures/full_response_1234567890.txt
```
This will:
1. Parse and decode the captured file
2. Extract the complete text response
3. Display it in the terminal
4. Save a clean version to a new file
## How It Works
### Vercel AI SDK Streaming Format
v0.dev uses the Vercel AI SDK to stream responses in a Server-Sent Events (SSE) format:
```
data: {"type":"data","value":[{"text":"Building"}]}
data: {"type":"data","value":[{"text":" a"}]}
data: {"type":"data","value":[{"text":" calendar"}]}
data: {"type":"message_annotations","value":[{"type":"finish_reason","message":"stop"}]}
```
Our tool:
1. Captures these streamed responses
2. Decodes the format to extract the text content
3. Assembles the complete response
4. Saves both raw and processed data
### File Types
The tool saves several types of files:
- `sse_stream_*.jsonl`: Raw SSE stream data
- `sse_decoded_*.jsonl`: Decoded JSON events from the stream
- `assembled_content_*.txt`: Assembled text content from the stream
- `full_response_*.txt`: Complete, cleaned response text
## Troubleshooting
If you have issues:
1. Try closing all Chrome instances and run the script - it will launch Chrome with your profile
2. For browser installation issues:
```bash
python -m playwright install chromium
```
3. If responses aren't being captured properly, increase the monitoring time in `tools.py`
## Advanced Usage
### Directly using the extraction tool
You can also use the extraction function directly from the `tools.py` file:
```bash
python tools.py extract captures/your_captured_file.jsonl
```
### Custom monitoring duration
By default, the script monitors for 60 seconds. For complex prompts that take longer, you can modify the `monitor_v0_interactions` function in `tools.py` to increase the monitoring time.