Codify MCP MCP Server

$npx codify-mcp {{JSON_MCP_TOOL_1}}
README.md

Easily create custom reusable automation tools from casual browser actions

Codify MCP

MCP server for custom automation tools using Apify Agent

Part of Project Codify

Project Codify

Complete end-to-end browser automation pipeline running inside browser (or locally). Codify and replay browser actions as robust (deterministic) and reusable scripts. From rapid prototyping and quick automation scripts to sophisticated deployments at scale.

  • Login - reusable authentication sessions - reusable secure login (TBD) ❎

  • Agent - turn scripts into browser actions - code or text script (future) ✅

  • Coder - turn browser actions into scripts (TBD - currently integrated) ✅

  • Robot - automation engine for scalability (TBD - currently integrated) ✅

  • MCP - automations become reusable tools you can reuse through AI ✅

More is on the way... Give it a shot 🎬 or join the list to follow the project! 🔔

What It Does

Model Context Protocol (MCP) server that lets AI assistants (e.g. Claude, Cursor, VS Code) execute browser automation tasks via Apify Agent. Tools are passed as clean JSON arguments — one per line. No manual setup or file creation.

Usage

Run directly using npx:

npx codify-mcp {{JSON_MCP_TOOL_1}} {{JSON_MCP_TOOL_2}} {{JSON_MCP_TOOL_3}}...

Or install locally:

npm install -g codify-mcp

Quick Start

1. Apify Token

Optional - you can also place the token inside the MCP server JSON later.

apify login

This saves your token to ~/.apify/auth.json.

Alternatively, set the environment variable:

export APIFY_TOKEN="your_token_here"

2. Create a Tool

Apify Coder can turn casual browser actions into reusable AI tools. Currently, this feature is also integrated in Apify Agent

Export a tool and append the result as a JSON string to the MCP server args field or ask your AI to do it for you.

{
  "name": "scrape_product",
  "description": "Scrape product info from a page",
  "inputSchema": {
    "type": "object",
    "properties": {
      "url": {
        "type": "string",
        "description": "Product page URL"
      }
    },
    "required": ["url"]
  },
  "implementation": {
    "type": "apify-actor",
    "actorId": "cyberfly/apify-agent",
    "script": "await page.goto(inputs.url); const title = await page.textContent('h1'); return {title};"
  }
}

3. Run the Server

npx codify-mcp '{"name":"scrape_product","description":"...","inputSchema":{...},"implementation":{...}}'

Or with multiple tools:

npx codify-mcp \
  '{"name":"tool1",...}' \
  '{"name":"tool2",...}' \
  '{"name":"tool3",...}'

4. Connect to Claude Desktop (or Cursor/VS Code)

Edit your Claude Desktop config:

macOS/Linux: ~/.config/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "codify-mcp": {
      "command": "npx",
      "args": [
        "codify-mcp",
        "{\"name\":\"scrape_product\",\"description\":\"...\",\"inputSchema\":{...},\"implementation\":{...}}"
      ],
      "env": {
        "APIFY_TOKEN": "your_token_or_leave_empty_to_use_auth_file"
      }
    }
  }
}

Restart Claude. Your tools are now available to the AI assistant.

Tool Definition Reference

Basic Structure

{
  // Required
  "name": "tool_name",                    // alphanumeric + underscore/dash
  "description": "What the tool does",    // shown to AI
  "inputSchema": {
    "type": "object",
    "properties": {
      "paramName": {
        "type": "string",
        "description": "Parameter description"
      }
    },
    "required": ["paramName"]
  },
  "implementation": {
    "type": "apify-actor",
    "actorId": "cyberfly/apify-agent",    // actor to run
    "script": "await page.goto(inputs.url); ..."  // Playwright code
  },
  
  // Optional
  "version": "1.0.0",
  "metadata": { "custom": "fields" }
}

Implementation Details

  • script: Playwright automation code. Receives inputs object with user-provided parameters and page object for browser automation.
  • actorId: Apify actor to execute. Defaults to cyberfly/apify-agent.

Input Schema Examples

Simple text input:

{
  "url": {
    "type": "string",
    "description": "Website URL"
  }
}

Optional field:

{
  "timeout": {
    "type": "integer",
    "description": "Timeout in seconds",
    "default": 30
  }
}

Enum (dropdown):

{
  "format": {
    "type": "string",
    "enum": ["json", "csv", "markdown"],
    "description": "Output format"
  }
}

Usage Patterns

Single Tool (Development)

npx codify-mcp '{"name":"test","description":"Te

Tools (1)

custom_tool_defined_by_userExecutes a custom Playwright script via Apify Agent based on user-defined JSON configuration.

Environment Variables

APIFY_TOKENApify API token for authentication; can also be read from ~/.apify/auth.json

Configuration

claude_desktop_config.json
{"mcpServers":{"codify-mcp":{"command":"npx","args":["codify-mcp","{\"name\":\"scrape_product\",\"description\":\"Scrape product info from a page\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"url\":{\"type\":\"string\"}},\"required\":[\"url\"]},\"implementation\":{\"type\":\"apify-actor\",\"actorId\":\"cyberfly/apify-agent\",\"script\":\"await page.goto(inputs.url); const title = await page.textContent('h1'); return {title};\"}}"],"env":{"APIFY_TOKEN":"your_token_here"}}}}

Try it

Scrape the product title and price from this URL using my scrape_product tool.
Run the browser automation script to log into my dashboard and export the report.
Use the Codify tool to navigate to the news site and return the top three headlines in markdown format.
Execute the custom Playwright script I defined to check the inventory status of this item.

Frequently Asked Questions

What are the key features of Codify MCP?

Turn casual browser actions into robust, deterministic, and reusable scripts.. Execute browser automation tasks via clean JSON arguments without manual file creation.. Integration with Apify Agent to run Playwright code in the cloud or locally.. Support for multiple tool definitions passed directly as command-line arguments..

What can I use Codify MCP for?

Rapidly prototyping web scrapers by recording browser actions.. Automating repetitive web workflows like form filling or data extraction through AI.. Scaling browser automation scripts using the Apify Robot engine.. Creating custom AI-accessible tools for internal web applications without building a full API..

How do I install Codify MCP?

Install Codify MCP by running: npx codify-mcp {{JSON_MCP_TOOL_1}}

What MCP clients work with Codify MCP?

Codify MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use Codify MCP with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free