# Swagger To Openapi — MCP tool `findutils:swagger_to_openapi`

Convert a Swagger 2.0 document (JSON or YAML) to OpenAPI 3.0.3 and return the result as pretty-printed JSON with path and schema counts. host, basePath, and schemes become servers; body and formData parameters become requestBody; response schemas move under content; definitions become components/schemas with $ref rewritten; securityDefinitions become components/securitySchemes (basic, apiKey, oauth2 flows).

- Category: data
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, no API keys, 120 req/min per IP)
- REST endpoint: POST https://api.findutils.com/api/tools/swagger-to-openapi/execute (no API keys, 60 req/min per IP)
- Reference page: https://findutils.com/mcp/swagger-to-openapi/
- Same tool on the other surface: https://findutils.com/api/swagger-to-openapi/

## Connect

```bash
claude mcp add findutils --transport http https://mcp.findutils.com/
```

Claude Desktop (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "findutils": {
      "url": "https://mcp.findutils.com/"
    }
  }
}
```

## Call the tool (verified example)

```bash
curl -X POST https://mcp.findutils.com/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "swagger_to_openapi",
      "arguments": {
        "swagger": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Sample API\",\"version\":\"1.0.0\"},\"host\":\"api.example.com\",\"basePath\":\"/v1\",\"paths\":{\"/users\":{\"get\":{\"responses\":{\"200\":{\"description\":\"ok\"}}}}}}"
      }
    }
  }'
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `swagger` | string | yes | The Swagger 2.0 document as JSON or YAML text. |

Example arguments (verified):

```json
{
  "swagger": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Sample API\",\"version\":\"1.0.0\"},\"host\":\"api.example.com\",\"basePath\":\"/v1\",\"paths\":{\"/users\":{\"get\":{\"responses\":{\"200\":{\"description\":\"ok\"}}}}}}"
}
```

Decoded `swagger` argument (readability only — send it as a string):

```json
{
  "swagger": "2.0",
  "info": {
    "title": "Sample API",
    "version": "1.0.0"
  },
  "host": "api.example.com",
  "basePath": "/v1",
  "paths": {
    "/users": {
      "get": {
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    }
  }
}
```

## Also a REST endpoint

```bash
curl -X POST https://api.findutils.com/api/tools/swagger-to-openapi/execute \
  -H "Content-Type: application/json" \
  -d '{
    "swagger": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Sample API\",\"version\":\"1.0.0\"},\"host\":\"api.example.com\",\"basePath\":\"/v1\",\"paths\":{\"/users\":{\"get\":{\"responses\":{\"200\":{\"description\":\"ok\"}}}}}}"
  }'

# Parameter schema
curl https://api.findutils.com/api/tools/swagger-to-openapi
```

Full REST reference: https://findutils.com/api/swagger-to-openapi/ · OpenAPI 3.1 spec: https://findutils.com/api/openapi.json

---
Full catalog: POST https://mcp.findutils.com/ with method `tools/list` · https://findutils.com/mcp/ · https://findutils.com/llms.txt
