Codify Mcp

io.github.cybairfly由 GitHub 帳號 cybairfly 發布v1.0.0更新於 Oct 24, 2026

Easily create reusable automation tools from casual browser actions using Apify Agent

已驗證STDIO僅桌面瀏覽器自動化開發者工具

概覽

AI 產生的概覽

讓助理執行以 JSON 定義的自訂瀏覽器自動化工具,並透過 Apify Agent 執行 Playwright 指令碼。

可以做什麼
Codify MCP 是一個本機 stdio 伺服器,會把命令列中以 JSON 參數傳入的瀏覽器自動化工具註冊給助理。每個工具定義包含名稱、說明、輸入 schema,以及透過 Apify actor(預設 cyberfly/apify-agent)執行 Playwright 指令碼的實作。助理接著可呼叫這些工具來瀏覽頁面、擷取內容並回傳結構化結果。
適用情境
當你想把可重複的瀏覽器操作變成助理可呼叫的可重用工具時使用,例如抓取商品頁面或從網站擷取資料。它適合已在使用 Apify 生態、又不想自行撰寫完整 MCP 伺服器的使用者。
執行需求
透過 npx 或全域 npm 安裝在本機執行,需要 Node.js。需要 Apify 權杖,可透過 APIFY_TOKEN 環境變數或 apify login CLI 產生的 ~/.apify/auth.json 檔案提供。需要網路存取以連線 Apify 與目標網站。
安裝前請注意
需要 APIFY_TOKEN 憑證,它可存取你的 Apify 帳戶,actor 執行可能消耗付費額度。工具指令碼是透過 Apify 執行的任意 Playwright JavaScript,因此只執行你信任的定義。瀏覽器自動化可能登入或修改網站,頁面資料會傳送到 Apify 服務。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Codify Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

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:

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

Or install locally:

bash
npm install -g codify-mcp

Quick Start

1. Apify Token

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

bash
apify login

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

Alternatively, set the environment variable:

bash
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.

json
{  "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

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

Or with multiple tools:

bash
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

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

javascript
{  // 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:

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

Optional field:

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

Enum (dropdown):

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

Usage Patterns

Single Tool (Development)

bash
npx codify-mcp '{"name":"test","description":"Test tool","inputSchema":{"type":"object","properties":{}},"implementation":{"type":"apify-actor","script":"console.log('hello')"}}'

Multiple Tools (Production)

bash
npx codify-mcp \  "$(cat tools/scraper.json)" \  "$(cat tools/logger.json)" \  "$(cat tools/analyzer.json)"

With Environment Variable

bash
APIFY_TOKEN="apk_..." npx codify-mcp '{"name":"...","description":"...","inputSchema":{},"implementation":{"type":"apify-actor","script":"..."}}'

With npm link (Local Testing)

bash
cd /path/to/codify-mcpnpm link
# Now use anywherecodify-mcp '{"name":"...","description":"...","inputSchema":{},"implementation":{"type":"apify-actor","script":"..."}}'

Authentication

Token resolution order:

  1. APIFY_TOKEN environment variable (if set and not empty)
  2. ~/.apify/auth.json (from apify login CLI command)
  3. Error: No token found, tool execution will fail with clear message

Troubleshooting

"No valid tools in arguments"

Ensure you're passing valid JSON strings as arguments:

bash
# ✓ Correctnpx codify-mcp '{"name":"test","description":"Test","inputSchema":{"type":"object","properties":{}},"implementation":{"type":"apify-actor","script":"return {ok:true}"}}'
# ✗ Wrong (missing quotes around JSON)npx codify-mcp {name:"test"...}
# ✗ Wrong (single quotes around JSON on Linux/Mac may need escaping)npx codify-mcp '{name:"test"...}'  # Use double quotes inside

"Invalid or missing Apify token"

Ensure authentication is set up:

bash
# Option 1: Login via CLIapify login
# Option 2: Set environment variableexport APIFY_TOKEN="apk_your_token_here"apify token

"Tool execution failed"

Check your Playwright script syntax. The script must be valid JavaScript that:

  • Has access to inputs (user-provided parameters)
  • Has access to page (Playwright page object)
  • Returns a value or object
javascript
// ✓ Validawait page.goto(inputs.url);const title = await page.textContent('h1');return { title };
// ✗ Invalid (missing await)page.goto(inputs.url);

Large Tool Sets (50+ tools)

If you have many tools, consider splitting into multiple MCP servers:

json
{  "mcpServers": {    "apify-scraper": {      "command": "npx",      "args": ["codify-mcp", "...tool1...", "...tool2..."]    },    "apify-analyzer": {      "command": "npx",      "args": ["codify-mcp", "...tool3...", "...tool4..."]    }  }}

Development

Running Locally

bash
npm linkcodify-mcp '{"name":"test",...}'

Structure

lib/  index.js              # Main entry: assembleWrapperCode(), start()  mcp/    resolver.js         # Module path bootstrapping    auth.js             # Token resolution    actor_caller.js     # Apify actor execution    server_setup.js     # MCP server + tool registration
bin/  start.js    # Executable entry point (bin field in package.json)

Key Design Principles

  • No files: Tools passed entirely via argv; no config files or manual setup.
  • No base64: Clean, readable command lines; no obfuscation.
  • Self-contained: All dependencies bundled; works offline once installed.
  • Stateless: Each invocation is independent; easy horizontal scaling.
  • Token from env/CLI: Seamless auth experience; respects Apify ecosystem conventions.

License

Apache-2.0

Contributing

Issues and PRs welcome at github.com/cybairfly/codify-mcp

來源:README.md,提交 1035031

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分