web2mcp
README.md
# Web2MCP
**Turn any website into a standalone MCP server.**
**AI Agent Auto-Install:** Point your agent to this repo and say "install web2mcp" — it will read this README, detect your MCP client (Kilo/Claude Desktop), and configure itself automatically.
## Features
- **Discovery** - Analyze websites: JSON-LD, API endpoints, HTML forms, headings, links
- **OpenAPI Detection** - Auto-detect and parse OpenAPI/Swagger specs
- **Code Generation** - Generate complete MCP server projects from any website
- **Credential Management** - Encrypted storage for API keys, tokens, cookies, OAuth
- **Multi-Protocol** - Works with any HTTP API (REST, GraphQL, etc.)
## Quick Install (AI Agent)
If you're an AI agent installing this for a user:
```bash
# Detect OS and MCP client, then auto-configure
git clone https://github.com/Xzeroone/web2mcp.git /tmp/web2mcp
cd /tmp/web2mcp
# Install Python package
pip install -e .
# Detect MCP client and configure
if [ -f ~/.config/kilo/kilo.jsonc ]; then
# Kilo config - add web2mcp entry
cat >> ~/.config/kilo/kilo.jsonc << 'EOF'
,
"web2mcp": {
"type": "local",
"command": ["python", "-m", "web2mcp"],
"enabled": true
}
EOF
elif [ -f ~/Library/Application\ Support/Claude/claude_desktop_config.json ]; then
# Claude Desktop config
echo '{"mcpServers": {"web2mcp": {"command": "python", "args": ["-m", "web2mcp"]}}}' >> ~/Library/Application\ Support/Claude/claude_desktop_config.json
fi
```
## Manual Install
### Prerequisites
- Python 3.10+
- pip
### Option 1: pip (No build required)
```bash
pip install web2mcp
```
### Option 2: Local Install from Source
```bash
git clone https://github.com/Xzeroone/web2mcp.git
cd web2mcp
pip install -e .
```
### Option 3: pip install from git
```bash
pip install git+https://github.com/Xzeroone/web2mcp.git
```
Then configure your MCP client:
**Kilo (Recommended)**
```jsonc
// ~/.config/kilo/kilo.jsonc
{
"mcp": {
"web2mcp": {
"type": "local",
"command": ["python", "-m", "web2mcp"],
"enabled": true
}
}
}
```
**Claude Desktop**
```json
// ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"web2mcp": {
"command": "python",
"args": ["-m", "web2mcp"]
}
}
}
```
## Available Tools
| Tool | Description |
|------|-------------|
| `web2mcp_discover` | Analyze a website |
| `web2mcp_request` | Make HTTP requests with auto-injected auth |
| `web2mcp_auth_store` | Manage credentials (save/load/list/delete) |
| `web2mcp_auth_oauth` | OAuth 2.0 flow helper |
| `web2mcp_api_spec` | Parse OpenAPI/Swagger specs |
| `web2mcp_schema` | Infer JSON schema from endpoints |
| `web2mcp_sitemap` | Parse sitemap.xml |
| `web2mcp_forms` | Extract HTML forms |
| `web2mcp_readme` | Fetch GitHub READMEs |
| `web2mcp_generate` | **Generate a standalone MCP server** |
## Usage
### As an MCP Server (stdio)
```bash
web2mcp
# or
python -m web2mcp
```
### Generate an MCP Server for Any Site
```bash
# Generate an MCP server for GitHub
web2mcp_generate url=https://api.github.com name=mcp-github
# Generate an MCP server for Stripe
web2mcp_generate url=https://api.stripe.com name=mcp-stripe
# Output to specific directory
web2mcp_generate url=https://api.example.com output_dir=./my-mcps
```
### Store Credentials
```bash
# Save API key
web2mcp_auth_store domain=api.github.com action=save headers='{"Authorization": "Bearer ghp_xxx"}'
# Save OAuth token
web2mcp_auth_store domain=api.stripe.com action=save oauth_token=sk_live_xxx oauth_type=Bearer
# List stored credentials
web2mcp_auth_store action=list
```
## How It Works
1. **Discover** - Web2MCP analyzes the target website
2. **Detect** - Looks for OpenAPI specs at standard locations (`/openapi.json`, `/swagger.json`, etc.)
3. **Generate** - Creates a complete MCP server project with typed tools per endpoint
4. **Use** - Install, build, and run the generated MCP server
## Generated MCP Servers
The generated MCP servers:
- Are standalone Python projects
- Share web2mcp's credential store (auth set up once works everywhere)
- Auto-inject credentials for every request
- Include typed tools for each API endpoint (if OpenAPI spec found)
- Fall back to generic HTTP tools if no spec available
## Development
```bash
pip install -e ".[dev]"
python -m web2mcp
```
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues