# OpenAPI MCP Server Compiler (`vamsi-krishna/openapi-to-mcp-server-generator`) Actor

Compile any OpenAPI 3.x spec into a deployable MCP server ZIP. Paste JSON or YAML, run the Actor, and download a TypeScript project with one tool per endpoint, API Key/Bearer auth, Dockerfile, and README — ready for Cursor, Claude Desktop, or any MCP client.

- **URL**: https://apify.com/vamsi-krishna/openapi-to-mcp-server-generator.md
- **Developed by:** [Vamsi Krishna](https://apify.com/vamsi-krishna) (community)
- **Categories:** MCP servers, AI, Developer tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $490.00 / 1,000 mcp server compileds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

Turn any **OpenAPI 3.x** specification into a **production-ready MCP server** you can connect to Cursor, Claude Desktop, or any MCP-compatible AI assistant. Paste your spec, run the Actor, and download a complete deployable ZIP — no manual tool definitions, auth wiring, or boilerplate.

### What can this OpenAPI MCP Server Compiler do?

- **Generate a full MCP server project** from OpenAPI JSON or YAML — one MCP tool per REST endpoint
- **Include auth setup** — API Key and Bearer Token via environment variables
- **Ship deployment files** — Dockerfile, `.env.example`, and a project README
- **Run from Apify Console** — paste a spec in the input form, no local setup required
- **Call via API** — trigger runs programmatically with the [Apify API](https://docs.apify.com/api/v2) or [JavaScript client](https://docs.apify.com/api/client/js)
- **Schedule and monitor** — re-generate when your API spec changes

### What do you get in the output?

| Output | Location | Description |
| ------ | -------- | ----------- |
| `mcp-server.zip` | Key-Value Store | Complete TypeScript MCP server project |
| Run summary | Dataset | Success status, statistics, warnings, download URL |

Each generated ZIP includes:

- MCP tool files mapped from your OpenAPI paths and operations
- TypeScript source, `package.json`, and build scripts
- Authentication helpers for API Key and Bearer Token
- `.env.example` with required secrets
- `Dockerfile` for container deployment
- README with install and run instructions

**Supported today:** OpenAPI 3.x, JSON request/response bodies, REST APIs.

### How to compile an MCP server from OpenAPI

1. Open this Actor in [Apify Console](https://console.apify.com) and click **Start**.
2. Paste your full OpenAPI document into **OpenAPI Specification**.
3. Select **Format** — `yaml` or `json`.
4. Optionally set **Project Name** for the generated folder.
5. Click **Run** and wait for completion (typically under a minute).
6. Open the run's **Key-Value Store** and download **`mcp-server.zip`**.
7. Unzip, configure `.env`, build, and connect the server to your AI client.

#### Example input (Petstore API)

```json
{
  "openApiSpec": "openapi: 3.0.0\ninfo:\n  title: Petstore\n  version: 1.0.0\npaths:\n  /pets:\n    get:\n      operationId: listPets\n      summary: List pets\n      responses:\n        '200':\n          description: OK",
  "format": "yaml",
  "projectName": "petstore-mcp"
}
````

### How much does it cost to compile an MCP server?

This Actor uses [pay per event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing:

| Charge | When |
| ------ | ---- |
| **MCP server compiled** | **$0.49** per successful run (one charge = one complete ZIP) |
| Actor start | ~$0.00005 per run (automatic) |
| Platform usage | Small compute-unit cost per run (see the **Pricing** tab on this Actor) |

**Failed runs are never charged** for `mcp-server-compiled` — invalid specs, parse errors, and generation failures do not trigger the main event.

Each successful run delivers one full project (tools, auth, Dockerfile, README) regardless of endpoint count within supported limits.

**Trying it out:** Apify's [Free plan](https://apify.com/pricing) includes **$5/month** in platform credits (no credit card required). That is enough for several test compilations. See exact event prices and any Store discounts on this Actor's **Pricing** tab in Console or Apify Store.

### Input

See the **Input** tab in Apify Console for the full schema and field tooltips.

| Field | Required | Description |
| ----- | -------- | ----------- |
| `openApiSpec` | Yes\* | Full OpenAPI document as a JSON or YAML string |
| `format` | Yes\* | `"json"` or `"yaml"` — must match the spec you pasted |
| `projectName` | No | Override name for the generated project folder |

\* **API default behavior:** If you omit fields when starting via API, CLI, or scheduler, the platform injects the Petstore sample spec from the input schema `default` values. Always pass your own `openApiSpec` and `format` in production API calls. The Console UI uses `prefill` as an editable example only.

**Tips:**

- Paste the entire spec — not a file path. For URL-hosted specs, fetch the content first or use the Apify API to pass it as a string.
- If your spec has no `servers` entry, set `BASE_URL` in the generated `.env` after download.
- Generation warnings are non-fatal (e.g. unsupported content types) — check the dataset output for details.

### Output

#### Key-Value Store

- **`mcp-server.zip`** — deployable MCP server project (download this)

#### Dataset example

```json
{
  "success": true,
  "downloadUrl": "https://api.apify.com/v2/key-value-stores/.../records/mcp-server.zip",
  "statistics": {
    "endpoints": 5,
    "tools": 5,
    "files": 15,
    "durationMs": 181
  },
  "warnings": []
}
```

On failure, `success` is `false` and `errors` describes what went wrong (e.g. invalid OpenAPI).

You can download dataset results as **JSON, CSV, Excel, HTML, or XML** from the run page.

### How to use your generated MCP server

1. **Unzip** `mcp-server.zip`

2. **Copy** `.env.example` to `.env` and set your API base URL and credentials

3. **Install and build:**

   ```bash
   pnpm install
   pnpm run build
   ```

4. **Start the server** (see the generated project's README)

5. **Add to your AI client** — configure stdio transport in Cursor, Claude Desktop, or another MCP host

Your assistant can then call your REST API through the MCP tools generated from your OpenAPI spec.

### FAQ

#### What is an MCP server?

A [Model Context Protocol](https://modelcontextprotocol.io) server exposes **tools** that AI assistants can call. This Actor generates those tools automatically from your OpenAPI operations.

#### Do I need to write code?

No code is required to **generate** the server — paste your spec and download the ZIP. Basic command-line steps are needed to **run** the generated project (install, build, start).

#### What OpenAPI features are supported?

OpenAPI 3.x with JSON request/response bodies, API Key auth, and Bearer Token auth. Complex schemas (`oneOf`, file uploads, OAuth flows) may be skipped with a warning in v1.

#### Can I run this Actor via API?

Yes. Use the [Apify REST API](https://docs.apify.com/api/v2#tag/ActorsRun-collection/operation/act_runs_post) or `apify-client` to trigger runs from CI/CD when your API spec changes.

#### How does billing work?

You pay the **mcp-server-compiled** event only when a ZIP is successfully generated. You can set a [maximum charge per run](https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event) in Console before starting. Event prices and platform usage are listed on this Actor's **Pricing** tab.

#### Something failed — where do I look?

| Problem | What to try |
| ------- | ----------- |
| Invalid spec error | Validate your file as OpenAPI 3.x JSON or YAML |
| Missing `BASE_URL` at runtime | Add `servers` to your spec or set `BASE_URL` in `.env` |
| Auth errors at runtime | Match `API_KEY` or `ACCESS_TOKEN` in `.env` to your API |
| Generation warnings | Check the dataset `warnings` array — non-fatal issues are listed there |

Found a bug or need a feature? Open an issue from the **Issues** tab on this Actor's page.

### Integrations

- **Apify API** — automate generation in pipelines
- **Webhooks** — trigger downstream deploys when a run succeeds
- **Schedules** — re-generate when your API spec is updated

### For developers

Architecture and design docs: [docs/](docs/) in the [GitHub repository](https://github.com/vamsikrishna-garisapati/openapi-to-mcp-server-generator).

Local CLI (without Apify):

```bash
pnpm install && pnpm run build
pnpm run generate -- --input path/to/spec.yaml --output ./out.zip
## or: pnpm exec openapi-mcp-gen generate --input path/to/spec.yaml --output ./out.zip
```

Apify Actor (local):

```bash
pnpm install && pnpm run build
pnpm actor                    # syncs test input, then apify run
pnpm validate:actor           # validate all .actor schemas
pnpm sync:actor-input         # refresh prefill/default from petstore fixture
```

Before deploying:

```bash
pnpm sync:actor-input && pnpm test && pnpm validate:actor && apify push
```

# Actor input Schema

## `openApiSpec` (type: `string`):

Full OpenAPI specification as JSON or YAML string

## `format` (type: `string`):

Specification format

## `projectName` (type: `string`):

Optional override for generated project name

## Actor input object example

```json
{
  "openApiSpec": "openapi: 3.0.3\ninfo:\n  title: Swagger Petstore\n  description: A sample API that uses a petstore as an example\n  version: 1.0.0\nservers:\n  - url: https://petstore3.swagger.io/api/v3\npaths:\n  /pet:\n    post:\n      tags:\n        - pet\n      summary: Add a new pet to the store\n      operationId: addPet\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/Pet'\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/Pet'\n    put:\n      tags:\n        - pet\n      summary: Update an existing pet\n      operationId: updatePet\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/Pet'\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/Pet'\n  /pet/findByStatus:\n    get:\n      tags:\n        - pet\n      summary: Finds Pets by status\n      operationId: findPetsByStatus\n      parameters:\n        - name: status\n          in: query\n          description: Status values that need to be considered for filter\n          required: true\n          schema:\n            type: array\n            items:\n              type: string\n              enum:\n                - available\n                - pending\n                - sold\n      responses:\n        '200':\n          description: successful operation\n          content:\n            application/json:\n              schema:\n                type: array\n                items:\n                  $ref: '#/components/schemas/Pet'\n  /pet/{petId}:\n    get:\n      tags:\n        - pet\n      summary: Find pet by ID\n      operationId: getPetById\n      parameters:\n        - name: petId\n          in: path\n          required: true\n          schema:\n            type: integer\n            format: int64\n      responses:\n        '200':\n          description: successful operation\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/Pet'\n    delete:\n      tags:\n        - pet\n      summary: Deletes a pet\n      operationId: deletePet\n      parameters:\n        - name: petId\n          in: path\n          required: true\n          schema:\n            type: integer\n            format: int64\n      responses:\n        '200':\n          description: Pet deleted\ncomponents:\n  schemas:\n    Pet:\n      type: object\n      required:\n        - name\n      properties:\n        id:\n          type: integer\n          format: int64\n          nullable: true\n        name:\n          type: string\n          example: doggie\n        status:\n          type: string\n          enum:\n            - available\n            - pending\n            - sold\n          default: available\n",
  "format": "yaml",
  "projectName": "petstore-mcp"
}
```

# Actor output Schema

## `summary` (type: `string`):

Success status, statistics, warnings, and download link for the generated MCP server.

## `mcpServerZip` (type: `string`):

Generated deployable MCP server project archive ready to download and run.

## `warnings` (type: `string`):

Non-fatal generation warnings with error codes and locations.

## `errors` (type: `string`):

Fatal errors that prevented MCP server generation.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "openApiSpec": `openapi: 3.0.3
info:
  title: Swagger Petstore
  description: A sample API that uses a petstore as an example
  version: 1.0.0
servers:
  - url: https://petstore3.swagger.io/api/v3
paths:
  /pet:
    post:
      tags:
        - pet
      summary: Add a new pet to the store
      operationId: addPet
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pet'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pet'
    put:
      tags:
        - pet
      summary: Update an existing pet
      operationId: updatePet
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pet'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pet'
  /pet/findByStatus:
    get:
      tags:
        - pet
      summary: Finds Pets by status
      operationId: findPetsByStatus
      parameters:
        - name: status
          in: query
          description: Status values that need to be considered for filter
          required: true
          schema:
            type: array
            items:
              type: string
              enum:
                - available
                - pending
                - sold
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Pet'
  /pet/{petId}:
    get:
      tags:
        - pet
      summary: Find pet by ID
      operationId: getPetById
      parameters:
        - name: petId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pet'
    delete:
      tags:
        - pet
      summary: Deletes a pet
      operationId: deletePet
      parameters:
        - name: petId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Pet deleted
components:
  schemas:
    Pet:
      type: object
      required:
        - name
      properties:
        id:
          type: integer
          format: int64
          nullable: true
        name:
          type: string
          example: doggie
        status:
          type: string
          enum:
            - available
            - pending
            - sold
          default: available`,
    "format": "yaml",
    "projectName": "petstore-mcp"
};

// Run the Actor and wait for it to finish
const run = await client.actor("vamsi-krishna/openapi-to-mcp-server-generator").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "openApiSpec": """openapi: 3.0.3
info:
  title: Swagger Petstore
  description: A sample API that uses a petstore as an example
  version: 1.0.0
servers:
  - url: https://petstore3.swagger.io/api/v3
paths:
  /pet:
    post:
      tags:
        - pet
      summary: Add a new pet to the store
      operationId: addPet
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pet'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pet'
    put:
      tags:
        - pet
      summary: Update an existing pet
      operationId: updatePet
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pet'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pet'
  /pet/findByStatus:
    get:
      tags:
        - pet
      summary: Finds Pets by status
      operationId: findPetsByStatus
      parameters:
        - name: status
          in: query
          description: Status values that need to be considered for filter
          required: true
          schema:
            type: array
            items:
              type: string
              enum:
                - available
                - pending
                - sold
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Pet'
  /pet/{petId}:
    get:
      tags:
        - pet
      summary: Find pet by ID
      operationId: getPetById
      parameters:
        - name: petId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pet'
    delete:
      tags:
        - pet
      summary: Deletes a pet
      operationId: deletePet
      parameters:
        - name: petId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Pet deleted
components:
  schemas:
    Pet:
      type: object
      required:
        - name
      properties:
        id:
          type: integer
          format: int64
          nullable: true
        name:
          type: string
          example: doggie
        status:
          type: string
          enum:
            - available
            - pending
            - sold
          default: available
""",
    "format": "yaml",
    "projectName": "petstore-mcp",
}

# Run the Actor and wait for it to finish
run = client.actor("vamsi-krishna/openapi-to-mcp-server-generator").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "openApiSpec": "openapi: 3.0.3\\ninfo:\\n  title: Swagger Petstore\\n  description: A sample API that uses a petstore as an example\\n  version: 1.0.0\\nservers:\\n  - url: https://petstore3.swagger.io/api/v3\\npaths:\\n  /pet:\\n    post:\\n      tags:\\n        - pet\\n      summary: Add a new pet to the store\\n      operationId: addPet\\n      requestBody:\\n        required: true\\n        content:\\n          application/json:\\n            schema:\\n              $ref: '\''#/components/schemas/Pet'\''\\n      responses:\\n        '\''200'\'':\\n          description: Successful operation\\n          content:\\n            application/json:\\n              schema:\\n                $ref: '\''#/components/schemas/Pet'\''\\n    put:\\n      tags:\\n        - pet\\n      summary: Update an existing pet\\n      operationId: updatePet\\n      requestBody:\\n        required: true\\n        content:\\n          application/json:\\n            schema:\\n              $ref: '\''#/components/schemas/Pet'\''\\n      responses:\\n        '\''200'\'':\\n          description: Successful operation\\n          content:\\n            application/json:\\n              schema:\\n                $ref: '\''#/components/schemas/Pet'\''\\n  /pet/findByStatus:\\n    get:\\n      tags:\\n        - pet\\n      summary: Finds Pets by status\\n      operationId: findPetsByStatus\\n      parameters:\\n        - name: status\\n          in: query\\n          description: Status values that need to be considered for filter\\n          required: true\\n          schema:\\n            type: array\\n            items:\\n              type: string\\n              enum:\\n                - available\\n                - pending\\n                - sold\\n      responses:\\n        '\''200'\'':\\n          description: successful operation\\n          content:\\n            application/json:\\n              schema:\\n                type: array\\n                items:\\n                  $ref: '\''#/components/schemas/Pet'\''\\n  /pet/{petId}:\\n    get:\\n      tags:\\n        - pet\\n      summary: Find pet by ID\\n      operationId: getPetById\\n      parameters:\\n        - name: petId\\n          in: path\\n          required: true\\n          schema:\\n            type: integer\\n            format: int64\\n      responses:\\n        '\''200'\'':\\n          description: successful operation\\n          content:\\n            application/json:\\n              schema:\\n                $ref: '\''#/components/schemas/Pet'\''\\n    delete:\\n      tags:\\n        - pet\\n      summary: Deletes a pet\\n      operationId: deletePet\\n      parameters:\\n        - name: petId\\n          in: path\\n          required: true\\n          schema:\\n            type: integer\\n            format: int64\\n      responses:\\n        '\''200'\'':\\n          description: Pet deleted\\ncomponents:\\n  schemas:\\n    Pet:\\n      type: object\\n      required:\\n        - name\\n      properties:\\n        id:\\n          type: integer\\n          format: int64\\n          nullable: true\\n        name:\\n          type: string\\n          example: doggie\\n        status:\\n          type: string\\n          enum:\\n            - available\\n            - pending\\n            - sold\\n          default: available\\n",
  "format": "yaml",
  "projectName": "petstore-mcp"
}' |
apify call vamsi-krishna/openapi-to-mcp-server-generator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=vamsi-krishna/openapi-to-mcp-server-generator",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "OpenAPI MCP Server Compiler",
        "description": "Compile any OpenAPI 3.x spec into a deployable MCP server ZIP. Paste JSON or YAML, run the Actor, and download a TypeScript project with one tool per endpoint, API Key/Bearer auth, Dockerfile, and README — ready for Cursor, Claude Desktop, or any MCP client.",
        "version": "0.0",
        "x-build-id": "3xRRitrn3YSgrYWCz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/vamsi-krishna~openapi-to-mcp-server-generator/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-vamsi-krishna-openapi-to-mcp-server-generator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/vamsi-krishna~openapi-to-mcp-server-generator/runs": {
            "post": {
                "operationId": "runs-sync-vamsi-krishna-openapi-to-mcp-server-generator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/vamsi-krishna~openapi-to-mcp-server-generator/run-sync": {
            "post": {
                "operationId": "run-sync-vamsi-krishna-openapi-to-mcp-server-generator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "openApiSpec": {
                        "title": "OpenAPI Specification",
                        "type": "string",
                        "description": "Full OpenAPI specification as JSON or YAML string",
                        "default": "openapi: 3.0.3\ninfo:\n  title: Swagger Petstore\n  description: A sample API that uses a petstore as an example\n  version: 1.0.0\nservers:\n  - url: https://petstore3.swagger.io/api/v3\npaths:\n  /pet:\n    post:\n      tags:\n        - pet\n      summary: Add a new pet to the store\n      operationId: addPet\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/Pet'\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/Pet'\n    put:\n      tags:\n        - pet\n      summary: Update an existing pet\n      operationId: updatePet\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/Pet'\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/Pet'\n  /pet/findByStatus:\n    get:\n      tags:\n        - pet\n      summary: Finds Pets by status\n      operationId: findPetsByStatus\n      parameters:\n        - name: status\n          in: query\n          description: Status values that need to be considered for filter\n          required: true\n          schema:\n            type: array\n            items:\n              type: string\n              enum:\n                - available\n                - pending\n                - sold\n      responses:\n        '200':\n          description: successful operation\n          content:\n            application/json:\n              schema:\n                type: array\n                items:\n                  $ref: '#/components/schemas/Pet'\n  /pet/{petId}:\n    get:\n      tags:\n        - pet\n      summary: Find pet by ID\n      operationId: getPetById\n      parameters:\n        - name: petId\n          in: path\n          required: true\n          schema:\n            type: integer\n            format: int64\n      responses:\n        '200':\n          description: successful operation\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/Pet'\n    delete:\n      tags:\n        - pet\n      summary: Deletes a pet\n      operationId: deletePet\n      parameters:\n        - name: petId\n          in: path\n          required: true\n          schema:\n            type: integer\n            format: int64\n      responses:\n        '200':\n          description: Pet deleted\ncomponents:\n  schemas:\n    Pet:\n      type: object\n      required:\n        - name\n      properties:\n        id:\n          type: integer\n          format: int64\n          nullable: true\n        name:\n          type: string\n          example: doggie\n        status:\n          type: string\n          enum:\n            - available\n            - pending\n            - sold\n          default: available\n"
                    },
                    "format": {
                        "title": "Format",
                        "enum": [
                            "json",
                            "yaml"
                        ],
                        "type": "string",
                        "description": "Specification format",
                        "default": "yaml"
                    },
                    "projectName": {
                        "title": "Project Name",
                        "type": "string",
                        "description": "Optional override for generated project name",
                        "default": "petstore-mcp"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
