MCP Server for Windsurf/Roocode
LocalAbout MCP Server for Windsurf/Roocode
MCP Server for Windsurf/Roocode adds image generation and web scraping capabilities for Windsurf. It generates images with Flux Pro and uses ScrapeGraph to extract webpage content, convert it to Markdown, or retrieve structured data.
Key features
- 01Generate images with Flux Pro
- 02Extract main webpage content
- 03Convert webpages to Markdown
- 04Scrape structured webpage data
- 05Adjust content-cleaning level
Use cases
- 01Generate images from text prompts
- 02Turn online sources into documentation
- 03Extract webpage content for analysis
- 04Collect structured data from product pages
MCP support
This MCP server provides image generation and web scraping capabilities to Windsurf through MCP configuration.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Server for Windsurf/Roocode
This is a Model Context Protocol (MCP) server that provides image generation and web scraping capabilities for Windsurf.
Features
- Image Generation: Generate images using the Flux Pro model
- Web Scraping: Extract content from webpages using ScrapeGraph
Getting Started
-
Clone and set up the project:
git clone https://github.com/bananabit-dev/mcp.git cd mcp python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -r requirements.txt -
Set up environment variables:
cp .env.example .envThen edit
.envto add your API keys:AIMLAPI_KEY=your_flux_pro_api_key SGAI_API_KEY=your_scrapegraph_api_key
MCP Server Configuration
- Add this configuration to
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"bananabit-mcp": {
"command": "/absolute/path/to/your/.venv/bin/python",
"args": ["-m", "app.mcp_server"],
"cwd": "/absolute/path/to/mcp",
"env": {
"PYTHONPATH": "/absolute/path/to/mcp",
"AIMLAPI_KEY": "${env:AIMLAPI_KEY}",
"SGAI_API_KEY": "${env:SGAI_API_KEY}"
}
}
}
}
- In Windsurf, click the hammer icon and "Refresh" to load the MCP server.
Example Usage
Image Generation
Let's create a cozy kawaii living room! Here's an example dialogue with Windsurf:
User: Generate a image of a cozy warm living room in kawaii and anime style.
Assistant: I'll help you generate a cozy warm living room image in kawaii and anime style!
[Generated image saved as cozy_kawaii_living_room.png]

User: Try again with an even more cozy and kawaii living room.
Assistant: I'll enhance the kawaii and cozy elements even more in this new version!
[Generated image saved as super_cozy_kawaii_living_room.png]

The MCP server will generate unique images each time, but they will follow the style and elements specified in the prompts. Try creating your own cozy spaces or other creative images!
Web Scraping
The MCP server provides powerful web scraping capabilities through the ScrapeGraph API. Here are the main features:
-
Content Extraction
# Extract main content from a webpage result = await extract_webpage_content( url="https://example.com" ) -
Markdown Conversion
# Convert webpage to clean markdown result = await markdownify_webpage( url="https://example.com", clean_level="medium" # Options: light, medium, aggressive ) -
Smart Scraping
# Extract specific information using AI result = await scrape_webpage( url="https://example.com" )
Features
- AI-Powered Extraction: Intelligently identifies and extracts main content
- Clean Output: Removes ads, navigation, and other clutter
- Format Options: Get content in raw HTML, markdown, or structured data
- Error Handling: Graceful fallbacks for failed extractions
- Customization: Control cleaning level and output format
Example Use Cases
-
Documentation Generation
# Create local documentation from online sources content = await markdownify_webpage( url="https://docs.example.com/guide", clean_level="medium" ) with open(".docs/guide.md", "w") as f: f.write(content) -
Content Analysis
# Extract and analyze webpage sentiment content = await extract_webpage_content( url="https://example.com/article" ) sentiment = await analyze_text_sentiment( text=content["text"] ) -
Data Collection
# Extract structured data data = await scrape_webpage( url="https://example.com/products" ) # Process extracted data for item in data["structured_data"]: process_item(item)
Best Practices
-
Rate Limiting
- Respect website rate limits
- Add delays between requests
- Use caching when possible
-
Error Handling
try: content = await extract_webpage_content(url) except Exception as e: # Fall back to simpler extraction content = await markdownify_webpage(url) -
Content Cleaning
- Start with "medium" clean_level
- Use "aggressive" for very noisy pages
- Use "light" when preserving format is important
-
Output Processing
- Validate extracted content
- Handle empty or partial results
- Process structured data appropriately
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.