---
> [!NOTE]
> `legacy2mcp` introspects every operation in a WSDL, builds a real JSON Schema for each one **from the WSDL's own XSD types**, and exposes them as [MCP](https://modelcontextprotocol.io/) tools — with **every call schema-validated before it reaches your SOAP endpoint**, **write-like operations excluded by default**, and **every call audit-logged**. No hand-written adapter code, no hand-maintained schemas.
## Contents
- [Install](#install)
- [Quick start](#quick-start)
- [How it works](#how-it-works)
- [Point it at your own WSDL](#point-it-at-your-own-wsdl)
- [Use it from Claude Desktop](#use-it-from-claude-desktop-or-any-mcp-client)
- [What's handled](#whats-handled)
- [Safety model](#safety-model)
- [Use cases](#use-cases)
- [Real-world usage](#real-world-usage)
- [Configuration reference](#configuration-reference)
- [Roadmap](#roadmap)
- [Development](#development) · [Contributing](#contributing) · [License](#license)
## Install
```bash
pip install legacy2mcp
# or: uv tool install legacy2mcp · pipx install legacy2mcp
```
Also published to the **[MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.bvenkata/legacy2mcp)** as `io.github.bvenkata/legacy2mcp`, so registry-aware MCP clients can discover it directly.
## Quick start
Try it end-to-end against the bundled mock SOAP service — no external network, no real backend:
```bash
git clone https://github.com/bvenkata/legacy2mcp.git
cd legacy2mcp
pip install -e ".[dev]"
# 1. start the demo SOAP service (dneonline-style Calculator WSDL)
python examples/soap/run_mock_calculator.py &
# 2. see the MCP tools generated from its WSDL
legacy2mcp inspect --config examples/soap/config.calculator.yaml
```