# legacy2mcp

Turns SOAP endpoints and REST APIs into typed MCP tools with audit logging. Mutations stay disabled by default, keeping queries safe.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 6
- Author: bvenkata
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/bvenkata/legacy2mcp
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/legacy2mcp

## What it does

The tool scans legacy architectures live without requiring handwritten wrapper logic. For SOAP services, it inspects WSDL definitions via zeep, while HTTP APIs get parsed using Swagger discovery. It can also generate contracts from HAR network captures or Postman collections.

Safety is enforced before requests reach your backend. Inbound parameters are validated against strict JSON Schema definitions. Write operations remain disabled until configured otherwise in the generated YAML file. Every query goes straight into an audit log.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add legacy2mcp -- uvx legacy2mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from legacy2mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add legacy2mcp -- uvx legacy2mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from legacy2mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "legacy2mcp": {
            "command": "uvx",
            "args": [
                "legacy2mcp"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from legacy2mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "legacy2mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "legacy2mcp"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from legacy2mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add legacy2mcp uvx legacy2mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from legacy2mcp <command>

## When to use it
- expose legacy SOAP and WSDL methods to AI coding agents
- build typed MCP schemas from live REST and OpenAPI endpoints
- restrict database access to read-only queries with schema checks
- record audit logs for external backend calls

## Example prompts
- Set up an MCP server from the SOAP endpoint at http://www.dneonline.com/calculator.asmx?WSDL
- Generate MCP tool definitions for the REST API at https://petstore3.swagger.io/api/v3
- Extract MCP tools from my Postman collection using legacy2mcp discover

## Similar
- [MCP Toolbox for Databases](https://affpapa.org/en/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP server · ★ 16730
- [PostHog MCP Server](https://affpapa.org/en/nevibecode/mcp/posthog-mcp-server.md) — MCP server · ★ 40459
- [OpenWork MCP Gateway](https://affpapa.org/en/nevibecode/mcp/openwork-mcp-gateway.md) — MCP server · ★ 24271
- [Keploy](https://affpapa.org/en/nevibecode/mcp/keploy.md) — MCP server · ★ 18779
- [Nhost](https://affpapa.org/en/nevibecode/mcp/nhost.md) — MCP server · ★ 9369
- [basebalance.cloud — x402 RPC & MCP gateway](https://affpapa.org/en/nevibecode/mcp/basebalancecloud-x402-rpc-mcp-gateway.md) — MCP server · ★ 7548

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
