mcp2cli by knowsuchagency/mcp2cli
npx skills add https://github.com/knowsuchagency/mcp2cli --skill mcp2cli在运行时将任何 MCP 服务器、OpenAPI 规范或 GraphQL 端点转换为 CLI。无需代码生成。
# 直接运行(无需安装)
uvx mcp2cli --help
# 或安装
pip install mcp2cli
--list(或使用 --search 过滤)<command> --help# 通过 HTTP 的 MCP
mcp2cli --mcp https://mcp.example.com/sse --list
mcp2cli --mcp https://mcp.example.com/sse create-task --help
mcp2cli --mcp https://mcp.example.com/sse create-task --title "Fix bug"
# 通过 stdio 的 MCP
mcp2cli --mcp-stdio "npx @modelcontextprotocol/server-filesystem /tmp" --list
mcp2cli --mcp-stdio "npx @modelcontextprotocol/server-filesystem /tmp" read-file --path /tmp/hello.txt
# OpenAPI 规范(远程或本地,JSON 或 YAML)
mcp2cli --spec https://petstore3.swagger.io/api/v3/openapi.json --list
mcp2cli --spec ./openapi.json --base-url https://api.example.com list-pets --status available
# GraphQL 端点
mcp2cli --graphql https://api.example.com/graphql --list
mcp2cli --graphql https://api.example.com/graphql users --limit 10
mcp2cli --graphql https://api.example.com/graphql create-user --name "Alice"
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
mcp2cli [全局选项] <子命令> [命令选项]
源(互斥,必须指定一个):
--spec URL|FILE OpenAPI 规范(JSON 或 YAML,本地或远程)
--mcp URL MCP 服务器 URL(HTTP/SSE)
--mcp-stdio CMD MCP 服务器命令(stdio 传输)
--graphql URL GraphQL 端点 URL
选项:
--auth-header K:V HTTP 头(可重复,值支持 env:/file: 前缀)
--base-url URL 覆盖规范中的基础 URL
--transport TYPE MCP HTTP 传输:auto|sse|streamable(默认:auto)
--env KEY=VALUE 用于 stdio 服务器进程的环境变量(可重复)
--oauth 启用 OAuth(授权码 + PKCE 流程)
--oauth-client-id ID OAuth 客户端 ID(支持 env:/file: 前缀)
--oauth-client-secret S OAuth 客户端密钥(支持 env:/file: 前缀)
--oauth-scope SCOPE 请求的 OAuth 作用域
--cache-key KEY 自定义缓存键
--cache-ttl SECONDS 缓存 TTL(默认:3600)
--refresh 绕过缓存
--list 列出可用的子命令
--search PATTERN 按名称或描述搜索工具(隐含 --list)
--fields FIELDS 覆盖 GraphQL 选择集(例如 "id name email")
--pretty 美化打印 JSON 输出
--raw 打印原始响应体
--toon 将输出编码为 TOON(对 LLM 令牌高效)
--jq EXPR 通过 jq 表达式过滤 JSON 输出
--head N 将输出限制为前 N 条记录(数组)
--version 显示版本
烘焙模式:
bake create NAME [opts] 将连接设置保存为命名工具
bake list 列出所有烘焙的工具
bake show NAME 显示配置(密钥已屏蔽)
bake update NAME [opts] 更新烘焙的工具
bake remove NAME 删除烘焙的工具
bake install NAME 创建 ~/.local/bin 包装脚本
@NAME [args] 运行烘焙的工具(例如 mcp2cli @petstore --list)
子命令和标志根据源动态生成。
# API 密钥头(字面值)
mcp2cli --spec ./spec.json --auth-header "Authorization:Bearer tok_..." list-items
# 来自环境变量的密钥(避免在进程列表中暴露)
mcp2cli --mcp https://mcp.example.com/sse \
--auth-header "Authorization:env:API_TOKEN" \
search --query "test"
# 来自文件的密钥
mcp2cli --mcp https://mcp.example.com/sse \
--auth-header "x-api-key:file:/run/secrets/api_key" \
search --query "test"
# 授权码 + PKCE(打开浏览器)
mcp2cli --mcp https://mcp.example.com/sse --oauth --list
# 客户端凭证(机器对机器)
mcp2cli --mcp https://mcp.example.com/sse \
--oauth-client-id "my-id" --oauth-client-secret "my-secret" \
search --query "test"
# 指定作用域
mcp2cli --mcp https://mcp.example.com/sse --oauth --oauth-scope "read write" --list
令牌缓存在 ~/.cache/mcp2cli/oauth/ 中,并自动刷新。
# 默认:尝试 streamable HTTP,回退到 SSE
mcp2cli --mcp https://mcp.example.com/sse --list
# 强制使用 SSE 传输(跳过 streamable HTTP 尝试)
mcp2cli --mcp https://mcp.example.com/sse --transport sse --list
# 强制使用 streamable HTTP(无 SSE 回退)
mcp2cli --mcp https://mcp.example.com/sse --transport streamable --list
# 发现查询和变更
mcp2cli --graphql https://api.example.com/graphql --list
# 运行查询
mcp2cli --graphql https://api.example.com/graphql users --limit 10
# 运行变更
mcp2cli --graphql https://api.example.com/graphql create-user --name "Alice" --email "alice@example.com"
# 覆盖自动生成的选择集
mcp2cli --graphql https://api.example.com/graphql users --fields "id name email"
# 带身份验证
mcp2cli --graphql https://api.example.com/graphql --auth-header "Authorization:Bearer tok_..." users
# 按名称或描述过滤工具(不区分大小写)
mcp2cli --mcp https://mcp.example.com/sse --search "task"
mcp2cli --spec ./openapi.json --search "create"
mcp2cli --graphql https://api.example.com/graphql --search "user"
--search 隐含 --list —— 仅显示匹配的工具。
echo '{"name": "Fido", "tag": "dog"}' | mcp2cli --spec ./spec.json create-pet --stdin
当 OpenAPI 规范声明了带有 format: binary 字段的 multipart/form-data 时,mcp2cli 会将其公开为文件路径 CLI 参数:
# 上传文件 —— 二进制字段接受本地文件路径
mcp2cli --spec ./spec.json upload-image --file /path/to/photo.png --caption "My photo"
# 同一多部分模式中的非二进制字段成为常规标志
mcp2cli --spec ./spec.json upload-image --file ./image.jpg --title "Cover" --alt-text "A sunset"
文件参数在 --help 输出中显示 (file path)。MIME 类型根据文件扩展名自动检测。
mcp2cli --mcp-stdio "node server.js" --env API_KEY=sk-... --env DEBUG=1 search --query "test"
将连接设置保存为命名配置,以避免重复标志:
# 创建烘焙工具
mcp2cli bake create petstore --spec https://api.example.com/spec.json \
--exclude "delete-*,update-*" --methods GET,POST --cache-ttl 7200
mcp2cli bake create mygit --mcp-stdio "npx @mcp/github" \
--include "search-*,list-*" --exclude "delete-*"
# 使用 @ 前缀
mcp2cli @petstore --list
mcp2cli @petstore list-pets --limit 10
# 管理
mcp2cli bake list
mcp2cli bake show petstore
mcp2cli bake update petstore --cache-ttl 3600
mcp2cli bake remove petstore
mcp2cli bake install petstore # 创建 ~/.local/bin/petstore 包装脚本
过滤选项:--include(全局白名单),--exclude(全局黑名单),--methods(HTTP 方法,仅限 OpenAPI)。
配置存储在 ~/.config/mcp2cli/baked.json 中(可通过 MCP2CLI_CONFIG_DIR 覆盖)。
规范和 MCP 工具列表缓存在 ~/.cache/mcp2cli/ 中(1 小时 TTL)。本地文件从不缓存。
mcp2cli --spec https://api.example.com/spec.json --refresh --list # 强制刷新
mcp2cli --spec https://api.example.com/spec.json --cache-ttl 86400 --list # 24 小时 TTL
mcp2cli --mcp https://mcp.example.com/sse --toon list-tags
最适合大型统一数组 —— 比 JSON 少 40-60% 的令牌。
对于 JSON 处理,优先使用 --jq 而非 Python 脚本 —— 它使用更少的令牌并避免脚本开销。
# 提取特定字段
mcp2cli --spec ./spec.json list-pets --jq '.[].name'
# 统计结果数量
mcp2cli --mcp https://example.com/sse list-items --jq 'length'
# 复杂过滤
mcp2cli --spec ./spec.json list-pets --jq '[.[] | select(.status == "available")] | length'
# 预览大型数据集(--head 在 --jq 处理之前截断)
mcp2cli --spec ./spec.json list-records --head 3 --jq '.'
# 预览可能巨大数据集的前 3 条记录
mcp2cli --spec ./spec.json list-records --head 3 --pretty
# 结合 --jq 进行针对性检查
mcp2cli --spec ./spec.json list-records --head 1 --jq 'keys'
--head N 将 JSON 数组切片为前 N 个元素。对于包含超大字段的数据集(例如每个记录约 200KB 的 geo_shape 多边形)很有用。
当用户要求从 MCP 服务器、OpenAPI 规范或 GraphQL 端点创建技能时,请遵循以下工作流程:
发现 所有可用命令:
uvx mcp2cli --mcp https://target.example.com/sse --list
检查 每个命令以了解参数:
uvx mcp2cli --mcp https://target.example.com/sse <command> --help
测试 关键命令并探查边界情况:
uvx mcp2cli --mcp https://target.example.com/sse <command> --param value
特别测试:
* 大型响应:使用 `--head 3` 预览 —— 是否有任何字段产生超大输出(例如 geo_shape、嵌入式 blob)?
* 日期/时间字段:API 期望什么格式?(ISO 8601、Unix 时间戳、自定义语法如 `date'2022'`?)
* 分页:API 返回所有结果还是需要 `--offset`/`--limit`?
* 错误消息:无效参数会发生什么?错误信息是否具有参考价值?
* 二进制与文本响应:是否有端点返回非 JSON 数据(xlsx、parquet、图像)?
* 作用域混淆:数据是否包含超出预期的内容(例如,当你期望区域数据时却包含全国数据)?
4. 烘焙 连接设置,以便技能无需重复标志:
uvx mcp2cli bake create myapi \
--mcp https://target.example.com/sse \
--auth-header "Authorization:Bearer env:MYAPI_TOKEN" \
--exclude "delete-*" --methods GET,POST
5. 安装 包装脚本到技能的脚本目录:
uvx mcp2cli bake install myapi --dir .claude/skills/myapi/scripts/
6. 创建 SKILL.md 在 .claude/skills/myapi/ 中,教导另一个 AI 代理如何使用此 API。SKILL.md 必须超越 --help 输出 —— 专注于只能通过测试和阅读文档获得的知识。
Frontmatter:
---
name: myapi
description: 与 MyAPI 服务交互
allowed-tools: Bash(bash *)
---
核心工作流程(发现 + 执行):
# 列出可用命令
bash ${CLAUDE_SKILL_DIR}/scripts/myapi --list
# 获取命令帮助
bash ${CLAUDE_SKILL_DIR}/scripts/myapi <command> --help
# 运行命令
bash ${CLAUDE_SKILL_DIR}/scripts/myapi <command> --param value --pretty
查询前 清单 —— 包含一个决策框架:
* 我针对的是什么数据集/资源?
* 我需要分页吗(`--offset`、`--limit`)?
* 是否有产生大输出的字段我应该排除或截断(`--head`)?
* 此端点期望什么日期/过滤器格式?
反模式与陷阱 —— 记录测试期间发现的每一个意外情况:
* 日期语法怪癖(例如 `date'2022'` 与 `"2022"`)
* 产生超大输出的字段(例如 geo_shape → 使用 `--head` 或 `--jq` 排除)
* 跨端点的参数名称不一致
* 作用域/过滤混淆(例如数据集包含全国数据,而不仅仅是区域数据)
* 二进制导出损坏风险(例如不要通过文本编码管道传输二进制格式)
输出处理 —— 推荐使用 --jq 而非 Python 进行 JSON 过滤:
# 提取特定字段
bash ${CLAUDE_SKILL_DIR}/scripts/myapi list-records --jq '.[].name'
# 统计结果数量
bash ${CLAUDE_SKILL_DIR}/scripts/myapi list-records --jq 'length'
# 按条件过滤
bash ${CLAUDE_SKILL_DIR}/scripts/myapi list-records --jq '[.[] | select(.status == "active")]'
对于 JSON 处理,优先使用 --jq 而非管道传输到 Python —— 它更令牌高效,并避免了不必要的脚本复杂性。
导出格式(如果 API 支持多种输出类型):
* 列出支持的格式(JSON、CSV、xlsx、parquet 等)
* 注意哪些是文本安全的,哪些是二进制的
* 对于二进制格式:`bash ${CLAUDE_SKILL_DIR}/scripts/myapi export --format xlsx --raw > output.xlsx`
知识增量原则: 不要复制 --help 中的参数列表。相反,记录哪些参数对于常见任务实际上很重要、令人惊讶的默认行为、不起作用的组合以及速率限制或响应大小限制。
生成的技能使用 mcp2cli 作为其执行层 —— 烘焙的包装脚本处理所有连接细节,因此 SKILL.md 保持简洁和可移植。
每周安装数
506
代码仓库
GitHub 星标数
1.6K
首次出现
2026年3月9日
安全审计
已安装在
opencode499
codex497
github-copilot496
gemini-cli496
kimi-cli493
amp493
Turn any MCP server, OpenAPI spec, or GraphQL endpoint into a CLI at runtime. No codegen.
# Run directly (no install needed)
uvx mcp2cli --help
# Or install
pip install mcp2cli
--list (or filter with --search)<command> --help# MCP over HTTP
mcp2cli --mcp https://mcp.example.com/sse --list
mcp2cli --mcp https://mcp.example.com/sse create-task --help
mcp2cli --mcp https://mcp.example.com/sse create-task --title "Fix bug"
# MCP over stdio
mcp2cli --mcp-stdio "npx @modelcontextprotocol/server-filesystem /tmp" --list
mcp2cli --mcp-stdio "npx @modelcontextprotocol/server-filesystem /tmp" read-file --path /tmp/hello.txt
# OpenAPI spec (remote or local, JSON or YAML)
mcp2cli --spec https://petstore3.swagger.io/api/v3/openapi.json --list
mcp2cli --spec ./openapi.json --base-url https://api.example.com list-pets --status available
# GraphQL endpoint
mcp2cli --graphql https://api.example.com/graphql --list
mcp2cli --graphql https://api.example.com/graphql users --limit 10
mcp2cli --graphql https://api.example.com/graphql create-user --name "Alice"
mcp2cli [global options] <subcommand> [command options]
Source (mutually exclusive, one required):
--spec URL|FILE OpenAPI spec (JSON or YAML, local or remote)
--mcp URL MCP server URL (HTTP/SSE)
--mcp-stdio CMD MCP server command (stdio transport)
--graphql URL GraphQL endpoint URL
Options:
--auth-header K:V HTTP header (repeatable, value supports env:/file: prefixes)
--base-url URL Override base URL from spec
--transport TYPE MCP HTTP transport: auto|sse|streamable (default: auto)
--env KEY=VALUE Env var for stdio server process (repeatable)
--oauth Enable OAuth (authorization code + PKCE flow)
--oauth-client-id ID OAuth client ID (supports env:/file: prefixes)
--oauth-client-secret S OAuth client secret (supports env:/file: prefixes)
--oauth-scope SCOPE OAuth scope(s) to request
--cache-key KEY Custom cache key
--cache-ttl SECONDS Cache TTL (default: 3600)
--refresh Bypass cache
--list List available subcommands
--search PATTERN Search tools by name or description (implies --list)
--fields FIELDS Override GraphQL selection set (e.g. "id name email")
--pretty Pretty-print JSON output
--raw Print raw response body
--toon Encode output as TOON (token-efficient for LLMs)
--jq EXPR Filter JSON output through jq expression
--head N Limit output to first N records (arrays)
--version Show version
Bake mode:
bake create NAME [opts] Save connection settings as a named tool
bake list List all baked tools
bake show NAME Show config (secrets masked)
bake update NAME [opts] Update a baked tool
bake remove NAME Delete a baked tool
bake install NAME Create ~/.local/bin wrapper script
@NAME [args] Run a baked tool (e.g. mcp2cli @petstore --list)
Subcommands and flags are generated dynamically from the source.
# API key header (literal value)
mcp2cli --spec ./spec.json --auth-header "Authorization:Bearer tok_..." list-items
# Secret from environment variable (avoids exposing in process list)
mcp2cli --mcp https://mcp.example.com/sse \
--auth-header "Authorization:env:API_TOKEN" \
search --query "test"
# Secret from file
mcp2cli --mcp https://mcp.example.com/sse \
--auth-header "x-api-key:file:/run/secrets/api_key" \
search --query "test"
# Authorization code + PKCE (opens browser)
mcp2cli --mcp https://mcp.example.com/sse --oauth --list
# Client credentials (machine-to-machine)
mcp2cli --mcp https://mcp.example.com/sse \
--oauth-client-id "my-id" --oauth-client-secret "my-secret" \
search --query "test"
# With scopes
mcp2cli --mcp https://mcp.example.com/sse --oauth --oauth-scope "read write" --list
Tokens are cached in ~/.cache/mcp2cli/oauth/ and refreshed automatically.
# Default: tries streamable HTTP, falls back to SSE
mcp2cli --mcp https://mcp.example.com/sse --list
# Force SSE transport (skip streamable HTTP attempt)
mcp2cli --mcp https://mcp.example.com/sse --transport sse --list
# Force streamable HTTP (no SSE fallback)
mcp2cli --mcp https://mcp.example.com/sse --transport streamable --list
# Discover queries and mutations
mcp2cli --graphql https://api.example.com/graphql --list
# Run a query
mcp2cli --graphql https://api.example.com/graphql users --limit 10
# Run a mutation
mcp2cli --graphql https://api.example.com/graphql create-user --name "Alice" --email "alice@example.com"
# Override auto-generated selection set
mcp2cli --graphql https://api.example.com/graphql users --fields "id name email"
# With auth
mcp2cli --graphql https://api.example.com/graphql --auth-header "Authorization:Bearer tok_..." users
# Filter tools by name or description (case-insensitive)
mcp2cli --mcp https://mcp.example.com/sse --search "task"
mcp2cli --spec ./openapi.json --search "create"
mcp2cli --graphql https://api.example.com/graphql --search "user"
--search implies --list — shows only matching tools.
echo '{"name": "Fido", "tag": "dog"}' | mcp2cli --spec ./spec.json create-pet --stdin
When an OpenAPI spec declares multipart/form-data with format: binary fields, mcp2cli exposes them as file-path CLI arguments:
# Upload a file — binary fields accept local file paths
mcp2cli --spec ./spec.json upload-image --file /path/to/photo.png --caption "My photo"
# Non-binary fields in the same multipart schema become regular flags
mcp2cli --spec ./spec.json upload-image --file ./image.jpg --title "Cover" --alt-text "A sunset"
File parameters show (file path) in --help output. MIME types are auto-detected from the file extension.
mcp2cli --mcp-stdio "node server.js" --env API_KEY=sk-... --env DEBUG=1 search --query "test"
Save connection settings as named configurations to avoid repeating flags:
# Create a baked tool
mcp2cli bake create petstore --spec https://api.example.com/spec.json \
--exclude "delete-*,update-*" --methods GET,POST --cache-ttl 7200
mcp2cli bake create mygit --mcp-stdio "npx @mcp/github" \
--include "search-*,list-*" --exclude "delete-*"
# Use with @ prefix
mcp2cli @petstore --list
mcp2cli @petstore list-pets --limit 10
# Manage
mcp2cli bake list
mcp2cli bake show petstore
mcp2cli bake update petstore --cache-ttl 3600
mcp2cli bake remove petstore
mcp2cli bake install petstore # creates ~/.local/bin/petstore wrapper
Filter options: --include (glob whitelist), --exclude (glob blacklist), --methods (HTTP methods, OpenAPI only).
Configs stored in ~/.config/mcp2cli/baked.json (override with MCP2CLI_CONFIG_DIR).
Specs and MCP tool lists are cached in ~/.cache/mcp2cli/ (1h TTL). Local files are never cached.
mcp2cli --spec https://api.example.com/spec.json --refresh --list # Force refresh
mcp2cli --spec https://api.example.com/spec.json --cache-ttl 86400 --list # 24h TTL
mcp2cli --mcp https://mcp.example.com/sse --toon list-tags
Best for large uniform arrays — 40-60% fewer tokens than JSON.
Prefer --jq over Python scripts for JSON processing — it uses fewer tokens and avoids script overhead.
# Extract specific fields
mcp2cli --spec ./spec.json list-pets --jq '.[].name'
# Count results
mcp2cli --mcp https://example.com/sse list-items --jq 'length'
# Complex filtering
mcp2cli --spec ./spec.json list-pets --jq '[.[] | select(.status == "available")] | length'
# Preview large datasets (--head truncates before --jq processes)
mcp2cli --spec ./spec.json list-records --head 3 --jq '.'
# Preview first 3 records from a potentially huge dataset
mcp2cli --spec ./spec.json list-records --head 3 --pretty
# Combine with --jq for targeted inspection
mcp2cli --spec ./spec.json list-records --head 1 --jq 'keys'
--head N slices JSON arrays to the first N elements. Useful for datasets with oversized fields (e.g. geo_shape polygons at ~200KB per record).
When the user asks to create a skill from an MCP server, OpenAPI spec, or GraphQL endpoint, follow this workflow:
Discover all available commands:
uvx mcp2cli --mcp https://target.example.com/sse --list
Inspect each command to understand parameters:
uvx mcp2cli --mcp https://target.example.com/sse <command> --help
Test key commands and probe for edge cases:
uvx mcp2cli --mcp https://target.example.com/sse <command> --param value
Specifically test for:
* Large responses: use `--head 3` to preview — do any fields produce oversized output (e.g. geo_shape, embedded blobs)?
* Date/time fields: what format does the API expect? (ISO 8601, Unix timestamps, custom syntax like `date'2022'`?)
* Pagination: does the API return all results or require `--offset`/`--limit`?
* Error messages: what happens with invalid parameters? Are errors informative?
* Binary vs text responses: do any endpoints return non-JSON (xlsx, parquet, images)?
* Scope confusion: does the data contain more than expected (e.g. national data when you expect regional)?
4. Bake the connection settings so the skill doesn't need to repeat flags:
uvx mcp2cli bake create myapi \
--mcp https://target.example.com/sse \
--auth-header "Authorization:Bearer env:MYAPI_TOKEN" \
--exclude "delete-*" --methods GET,POST
5. Install the wrapper into the skill's scripts directory:
uvx mcp2cli bake install myapi --dir .claude/skills/myapi/scripts/
6. Create a SKILL.md in .claude/skills/myapi/ that teaches another AI agent how to use this API. The SKILL.md must go beyond --help output — focus on knowledge that can only be learned through testing and reading documentation.
Frontmatter:
---
name: myapi
description: Interact with the MyAPI service
allowed-tools: Bash(bash *)
---
Core Workflow (discovery + execution):
# List available commands
bash ${CLAUDE_SKILL_DIR}/scripts/myapi --list
# Get help for a command
bash ${CLAUDE_SKILL_DIR}/scripts/myapi <command> --help
# Run a command
bash ${CLAUDE_SKILL_DIR}/scripts/myapi <command> --param value --pretty
Before Querying checklist — include a decision framework:
* What dataset/resource am I targeting?
* Do I need pagination (`--offset`, `--limit`)?
* Are there fields that produce large output I should exclude or truncate (`--head`)?
* What date/filter format does this endpoint expect?
Anti-Patterns & Gotchas — document every surprise found during testing:
* Date syntax quirks (e.g. `date'2022'` vs `"2022"`)
* Fields that produce oversized output (e.g. geo_shape → use `--head` or `--jq` to exclude)
* Parameter name inconsistencies across endpoints
* Scope/filtering confusion (e.g. dataset contains national data, not just regional)
* Binary export corruption risks (e.g. don't pipe binary formats through text encoding)
Output Processing — recommend --jq over Python for JSON filtering:
# Extract specific fields
bash ${CLAUDE_SKILL_DIR}/scripts/myapi list-records --jq '.[].name'
# Count results
bash ${CLAUDE_SKILL_DIR}/scripts/myapi list-records --jq 'length'
# Filter by condition
bash ${CLAUDE_SKILL_DIR}/scripts/myapi list-records --jq '[.[] | select(.status == "active")]'
Prefer --jq over piping to Python for JSON processing — it is more token-efficient and avoids unnecessary script complexity.
Export Formats (if the API supports multiple output types):
* List supported formats (JSON, CSV, xlsx, parquet, etc.)
* Note which are text-safe vs binary
* For binary formats: `bash ${CLAUDE_SKILL_DIR}/scripts/myapi export --format xlsx --raw > output.xlsx`
Knowledge Delta Principle: Do not duplicate parameter listings from --help. Instead, document which parameters actually matter for common tasks, default behaviors that are surprising, combinations that don't work, and rate limits or response size limits.
The generated skill uses mcp2cli as its execution layer — the baked wrapper script handles all connection details so the SKILL.md stays clean and portable.
Weekly Installs
506
Repository
GitHub Stars
1.6K
First Seen
Mar 9, 2026
Security Audits
Gen Agent Trust HubWarnSocketWarnSnykFail
Installed on
opencode499
codex497
github-copilot496
gemini-cli496
kimi-cli493
amp493
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
136,300 周安装
FlowStudio MCP 构建部署 Power Automate 云流指南 | 自动化流程开发
530 周安装
mcp2cli:无需代码,将MCP/OpenAPI/GraphQL实时转换为命令行工具
530 周安装
交互式作品集设计指南:30秒吸引招聘者,提升作品集转化率与个人品牌
530 周安装
每日销售简报AI工具 - 自动生成优先级行动计划,整合日历、CRM和邮件数据
531 周安装
生产排程实战指南:离散制造工厂的有限产能排程、换线优化与瓶颈管理
531 周安装
Angular 21 最佳实践指南:TypeScript、Signals、组件与性能优化
531 周安装