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 分