MCP Connector Workflows with Vernclaw CLI

Use vernclaw-cli as a JSON-first connector CLI for MCP connectors, agent skills, scripts, and CI workflows.

Workflow Companion, Not an Install Guide

This page assumes the connector CLI is already installed and authenticated. If you still need the package, browser login, or API key setup, start with the Connector CLI install guide.

Use this workflow guide when you want an AI agent, shell script, or CI job to discover connectors, inspect parameters, invoke a connector, parse JSON, and poll async jobs without copying output by hand.

The Command Chain

The reliable CLI sequence for agents is:

vernclaw-cli status
vernclaw-cli list --json
vernclaw-cli describe seo.google-trends
vernclaw-cli invoke seo.google-trends --keywords "ai agent skills,mcp connectors" --market us
vernclaw-cli job get <jobId>

Use job get only when an invoke response returns an async job ID. Sync connectors return their result immediately.

Discover Connectors as JSON

vernclaw-cli list prints a terminal table for people. Agents and scripts should use --json:

vernclaw-cli list --json

The machine-readable shape is:

{
  "status": 200,
  "data": {
    "command": "list",
    "count": 3,
    "connectors": [
      {
        "id": "seo.google-trends",
        "name": "Google Trends",
        "category": "SEO",
        "description": "Read Google Trends interest and related queries.",
        "status": "available"
      }
    ],
    "hints": []
  }
}

Filter the catalog before deciding which connector to call:

vernclaw-cli list --json \
  | jq -r '.data.connectors[] | select(.category == "SEO") | .id'

Inspect Before Invoke

Use describe before building a repeatable agent skill or MCP-style tool wrapper:

vernclaw-cli describe seo.google-trends

The describe output includes connector metadata, required flags, and an example invocation. This is the safest way for an agent workflow to avoid stale assumptions about parameter names.

JSON-First Invoke Output

invoke prints compact JSON to stdout by default:

vernclaw-cli invoke seo.google-trends \
  --keywords "ai agent skills,mcp connectors" \
  --market us \
  > trends.json

Parse the numeric status first, then read data:

status=$(jq -r '.status' trends.json)

if [ "$status" -ge 200 ] && [ "$status" -lt 300 ]; then
  jq '.data' trends.json
else
  jq '{status, errorCode, data}' trends.json
  exit 1
fi

For human debugging, add --pretty. For agents, scripts, and CI, keep the default compact JSON.

Complete Agent Workflow Example

This shell workflow checks account status, discovers SEO connectors, verifies the Google Trends contract, invokes the connector, and saves normalized JSON for the next agent step:

set -euo pipefail

vernclaw-cli status >/tmp/vernclaw-status.json

vernclaw-cli list --json \
  | jq -r '.data.connectors[] | select(.category == "SEO") | .id' \
  > /tmp/vernclaw-seo-connectors.txt

grep -qx "seo.google-trends" /tmp/vernclaw-seo-connectors.txt

vernclaw-cli describe seo.google-trends >/tmp/vernclaw-google-trends-contract.json

vernclaw-cli invoke seo.google-trends \
  --keywords "connector cli,mcp connectors,ai agent skills" \
  --market us \
  > /tmp/vernclaw-google-trends-result.json

jq '{status, data}' /tmp/vernclaw-google-trends-result.json

Use the saved JSON files as agent context, CI artifacts, or inputs to the next script in the workflow.

Python Wrapper for Agent Skills

Agent skills usually need a tiny wrapper, not a custom SDK:

import json
import subprocess


def run_cli(*args: str) -> dict:
    result = subprocess.run(
        ["vernclaw-cli", *args],
        check=False,
        capture_output=True,
        text=True,
    )
    payload = json.loads(result.stdout or "{}")
    if result.returncode != 0 or not 200 <= int(payload.get("status", 0)) < 300:
        raise RuntimeError(json.dumps(payload))
    return payload["data"]


connectors = run_cli("list", "--json")["connectors"]
seo_ids = [item["id"] for item in connectors if item["category"] == "SEO"]

if "seo.google-trends" in seo_ids:
    trends = run_cli(
        "invoke",
        "seo.google-trends",
        "--keywords",
        "ai agent skills,mcp connectors",
        "--market",
        "us",
    )
    print(json.dumps(trends, indent=2))

This pattern works for OpenAI function calling, Gemini tool wrappers, Codex/Cursor scripts, and custom MCP-adjacent automation where the agent can run shell commands.

MCP and Agent Skills

Vernclaw also exposes connectors through the remote MCP endpoint documented in the Connector API. Use MCP when your client can connect directly to remote MCP tools, such as Claude or ChatGPT Developer Mode.

Use the CLI when the agent already has terminal access, when you want reproducible command logs, or when a CI job should run the same connector chain without an interactive client.

Each connector also ships a SKILL.md in the vernclaw-connect-cli GitHub repository. Those agent skills document the exact connector purpose, required authentication state, and JSON-first output contract for individual tools.

Workflow Patterns

SEO research

vernclaw-cli invoke seo.keyword-suggestions --keyword "mcp connectors" --market us
vernclaw-cli invoke seo.google-trends --keywords "ai agent skills,mcp connectors" --market us
vernclaw-cli invoke seo.serp-google-organic --keyword "best mcp connectors" --market us

Social content reading

vernclaw-cli invoke read.x.post --url "https://x.com/user/status/123"
vernclaw-cli invoke search.youtube --query "AI agent workflows" --limit 5 --order date --region-code US
vernclaw-cli invoke read.youtube.video --url "https://www.youtube.com/watch?v=VIDEO_ID"

Async generation

vernclaw-cli invoke generate.image --prompt "diagram of an AI agent connector workflow" > image-job.json
job_id=$(jq -r '.data.job_id // .data.jobId' image-job.json)
vernclaw-cli job get "$job_id"

Poll async jobs until the response reaches a terminal status. Do not use a fixed sleep as a completion signal.