MCP Hub
Back to servers

Xiaobai Print MCP

An MCP server and local HTTP bridge designed to integrate remote upstream MCP tools into OpenClaw skills or local environments. It enables users to generate skill wrappers and proxy tool calls via a local HTTP bridge for use in Claude Desktop, Cursor, or OpenClaw.

glama
Updated
Mar 14, 2026

xiaobai-print

This repository now centers on the wrapper-skill flow:

  1. Run a local HTTP bridge
  2. Read the bridge tool list
  3. Generate one or more OpenClaw skill directories
  4. Let each skill call the bridge through a local invoke.js

The repository still includes the stdio MCP server for Claude Desktop / Cursor, but the recommended OpenClaw path is:

OpenClaw skill -> scripts/invoke.js -> local HTTP bridge -> remote MCP

Build

npm install
npm run build

Executables

  • xiaobai-print-mcp: stdio MCP server
  • xiaobai-print-bridge: local HTTP bridge for generated skills
  • generate-openclaw-skill: skill generator that reads the bridge tool list

Run The Local Bridge

Start the local HTTP bridge on 127.0.0.1:8787:

MY_MCP_UPSTREAM_URL="https://mcp.gongfudou.com/mcp/openclaw/sse" \
MY_MCP_TOKEN="your-token" \
xiaobai-print-bridge

Or use the compiled file directly:

node dist/bridge/http.js --host 127.0.0.1 --port 8787

Bridge endpoints:

  • GET /health
  • GET /mcp/tools
  • POST /mcp/tools/{toolName}

The bridge accepts Authorization: Bearer <token> per request. If the request omits Authorization, it falls back to MY_MCP_TOKEN / OPENCLAW_TOKEN.

Generate OpenClaw Skills

Generate a single skill from the local bridge:

generate-openclaw-skill \
  --bridge-url http://127.0.0.1:8787 \
  --out ./skill \
  --skill-name my-mcp

Split tools into multiple skill directories by tool-name prefix:

generate-openclaw-skill \
  --bridge-url http://127.0.0.1:8787 \
  --out ./skills \
  --skill-name my-mcp \
  --split-by prefix

Optional discovery auth:

generate-openclaw-skill \
  --bridge-url http://127.0.0.1:8787 \
  --out ./skill \
  --token "$MY_MCP_TOKEN"

Generated output for a single skill:

skill/
  SKILL.md
  scripts/
    invoke.js
  schema/
    tools.json

Generated output for --split-by prefix:

skills/
  schema/
    tools.json
  my-mcp-search/
    SKILL.md
    scripts/
      invoke.js
    schema/
      tools.json
  my-mcp-ticket/
    ...

The generated wrapper uses:

  • MY_MCP_TOKEN for the bearer token
  • MY_MCP_BASE_URL for the local bridge URL

If MY_MCP_BASE_URL is not set, the wrapper falls back to the bridge URL used during generation.

OpenClaw Configuration

Recommended skill configuration:

{
  "skills": {
    "entries": {
      "my-mcp": {
        "enabled": true,
        "apiKey": "your-token-here",
        "env": {
          "MY_MCP_BASE_URL": "http://127.0.0.1:8787"
        }
      }
    }
  }
}

The generated SKILL.md declares:

  • metadata.openclaw.requires.env = ["MY_MCP_TOKEN"]
  • metadata.openclaw.primaryEnv = "MY_MCP_TOKEN"

That lets OpenClaw inject skills.entries.<skill>.apiKey as MY_MCP_TOKEN.

MCP Server Mode

The original stdio MCP server is still available:

node dist/index.js

Environment variables:

VariableRequiredDescription
MY_MCP_TOKEN or OPENCLAW_TOKENYesBearer token for the upstream remote MCP
MY_MCP_UPSTREAM_URL or OPENCLAW_MCP_URLNoUpstream remote MCP endpoint URL

Examples

A checked-in generated example lives in examples/search-docs-skill/.

The bundled print skill now also follows the wrapper-based layout:

skills/xiaobai-print/
  SKILL.md
  scripts/
    invoke.js
  schema/
    tools.json

Reviews

No reviews yet

Sign in to write a review