Skip to content
/

mcp2skill

mcp2skill · fenwei-dev/mcp2skill · ★ 51 · last commit 2026-01-25

Primitive shape 2 total
Commands 2
00

Summary

mcp2skill — Summary

A production-quality Go CLI tool that converts MCP server configurations into agent skill packages following the agentskills.io specification. The tool introspects live MCP servers (stdio and HTTP transports), generates SKILL.md and TOOLS.md reference files, and embeds the binary itself into the generated skill for self-contained distribution.

mcp2skill is the mature, cross-platform successor to the proof-of-concept mcp-to-skill-converter (also in this batch). It supports both stdio and HTTP MCP transports, OAuth flows for HTTP servers, project-level config cascading, skill update detection (update-skill command), and optional binary embedding. The generated skill packages target Claude Code, OpenCode, Codex, Gemini CLI, and Qwen Code.

With 51 stars and a v1.x release track (GitHub Releases), this is the most production-ready MCP-to-skill converter in the ecosystem. The go install path is github.com/fenwei-dev/mcp2skill/cmd/mcp2skill@latest. Compared to seeds: closest to taskmaster-ai (CLI tool that generates structured artifacts) but purpose is conversion/wrapping rather than task management. It represents the "MCP-to-skill conversion" pattern at production quality versus the Python prototype's proof-of-concept quality.

01

Overview

mcp2skill — Overview

Origin

Created by fenwei-dev (GitHub), published January 2026. A production CLI tool with versioned releases, CI badges, and a demo video on YouTube. The README positions it as conforming to the agentskills.io specification and targeting multiple AI coding agents.

Philosophy

The tool's philosophy: MCP servers are a great tool definition format, but the skill format is a better runtime format for context-aware AI agents. Converting at build time (when setting up a new server) rather than at runtime (on every session start) preserves the MCP ecosystem's tool richness while gaining skill's progressive disclosure benefits.

Supported Targets (from README)

Generated skills are tested/documented for:

  • Claude Code
  • OpenCode
  • Codex (OpenAI)
  • Gemini CLI
  • Qwen Code (Alibaba)

This is the broadest target coverage of any MCP-to-skill converter.

Transport Support

  • stdio: Local MCP servers (Docker, npx, uvx)
  • HTTP: Remote MCP servers with URL + headers
  • OAuth: GitHub Copilot MCP (automatic token exchange)

Config Cascading

The tool looks for ~/.mcp2skill/config.json (global) and .mcp2skill/config.json in current/parent directories (project). Project config overrides global.

Versioning

Tagged releases available on GitHub. Latest version determined from GitHub Releases page. The install script (install.sh) uses the latest release.

02

Architecture

mcp2skill — Architecture

Distribution

cli-tool — Go binary distributed via GitHub Releases, go install, or install script.

Install

# Quick install (Linux/macOS)
curl -sSL https://raw.githubusercontent.com/fenwei-dev/mcp2skill/main/install.sh | bash

# From Go module
go install github.com/fenwei-dev/mcp2skill/cmd/mcp2skill@latest

# Windows: download binary from GitHub Releases

Directory Tree (source)

mcp2skill/
├── cmd/
│   └── mcp2skill/         # Main CLI entry point
├── internal/
│   ├── cliapp/            # CLI command implementations
│   ├── config/            # Configuration management (global + project cascading)
│   ├── mcp/               # MCP client wrapper (stdio + HTTP + OAuth)
│   └── skill/             # Skill generation logic
├── go.mod
└── README.md

Generated Skill Structure (per server)

<output-dir>/
├── SKILL.md              # Main skill doc with agentskills.io frontmatter
├── references/
│   ├── TOOLS.md          # Generated tool reference
│   └── RESOURCES.md      # Generated resource reference (if applicable)
└── bin/
    └── mcp2skill         # Embedded binary (optional, for self-contained distribution)

Config File Format

{
  "mcp": {
    "fetch": {
      "type": "stdio",
      "command": "uvx",
      "args": ["mcp-server-fetch"],
      "env": {"API_KEY": "..."}
    },
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {"Authorization": "Bearer {github_pat}"}
    }
  }
}

Config Locations (cascade order)

  1. --config flag (explicit)
  2. .mcp2skill/config.json in current or parent directories (project)
  3. ~/.mcp2skill/config.json (global)

Required Runtime

  • Go >= 1.21 (for build from source)
  • Pre-built binary: none
03

Components

mcp2skill — Components

CLI Commands (3)

Command Description
mcp2skill generate-skill Generate a skill package from an MCP server config
mcp2skill update-skill Check for updates and optionally apply them to an existing skill
(implied) mcp2skill --help Show help

CLI Flags

Flag Description
--server <name> Which server from config to generate skill for
--output <dir> Output directory for generated skill
--config <path> Explicit config file path
--no-embed Skip embedding the mcp2skill binary in the generated skill
--confirm Apply update without prompting (for update-skill)

Generated Output Files (2-4 per server)

File Purpose
SKILL.md Main skill with agentskills.io frontmatter and tool summary
references/TOOLS.md Detailed tool reference with parameter schemas
references/RESOURCES.md Resource reference (if server exposes resources)
bin/mcp2skill Embedded binary for self-contained execution (optional)

Generated SKILL.md Frontmatter (agentskills.io standard)

---
name: my-server
description: Provides access to My MCP Server (v1.0.0) MCP server with tools: tool1, tool2.
  Use when the user requests My MCP Server functionality.
---

Skills (0 native)

The tool ships no skills of its own. It generates skills for other servers.

Hooks (0)

None.

MCP Servers (0)

mcp2skill is a converter, not a server itself.

Scripts (1)

Name Purpose
install.sh One-liner installer for Linux/macOS
05

Prompts

mcp2skill — Prompts

Generated SKILL.md (agentskills.io format)

Technique: Specification-conforming frontmatter + structured body. The generated SKILL.md follows the agentskills.io specification exactly.

Verbatim template from README:

---
name: my-server
description: Provides access to My MCP Server (v1.0.0) MCP server with tools: tool1, tool2.
  Use when the user requests My MCP Server functionality.
---

# My MCP Server

This skill provides access to the My MCP Server MCP server.

## MCP Server Info

- **MCP Server:** my-server
- **Server Version:** 1.0.0
- **Server Title:** My MCP Server Title
- **Protocol Version:** 2024-11-05

## Available Tools

This skill provides the following tools:

- **tool1**: Description of tool1
- **tool2**: Description of tool2

## Usage

This skill is automatically invoked when tools from this MCP server are required.

For detailed documentation on each tool's parameters and usage,
see [TOOLS.md](references/TOOLS.md).

Key differences from mcp-to-skill-converter's approach:

  • No explicit "Step 1/Step 2/Step 3" execution instructions
  • Delegates full parameter schema to TOOLS.md rather than inlining
  • The description field in frontmatter is the primary activation trigger
  • References TOOLS.md for details — Claude must decide when to load it

Prompting Technique Classification

  • Specification-conforming: Follows agentskills.io standard exactly
  • Deferred detail: Parameters in separate TOOLS.md, not inline
  • Implicit activation: Description triggers determine when skill fires — no explicit "when to use" guards
  • Version-aware: MCP server version captured in skill for update detection

Contrast with mcp-to-skill-converter

The Python prototype generates explicit step-by-step execution instructions and a JSON call template. mcp2skill generates a cleaner, specification-conforming document that relies on the agent's understanding of the agentskills.io execution model. This is a higher-trust, lower-verbosity approach.

09

Uniqueness

mcp2skill — Uniqueness

differs_from_seeds

No direct seed analog. The closest is taskmaster-ai (CLI tool that reads config and generates structured artifacts), but taskmaster-ai generates task management artifacts while mcp2skill generates skill package artifacts. ccmemory is the conceptual inverse (builds an MCP server that wraps skill-like functionality). Unlike all 11 seeds, mcp2skill exists specifically in the MCP-to-skill conversion space — its value is the bridge between two ecosystem conventions.

Positioning

mcp2skill is the production counterpart to the Python mcp-to-skill-converter prototype in this batch. Key improvements: real MCP introspection (not mocked), Go binary for cross-platform distribution, OAuth support, update detection, agentskills.io specification conformance, embedded binary mode for self-contained skills.

Distinctive Opinion

By targeting agentskills.io (an open specification) rather than a single agent's format, mcp2skill positions itself as ecosystem infrastructure — not tied to any particular AI vendor.

Observable Failure Modes

  1. MCP server startup failure: The converter must start the MCP server process to introspect it — if the server requires special auth or infrastructure, conversion fails
  2. Schema complexity: Very complex MCP tool schemas may generate unwieldy TOOLS.md files
  3. Version mismatch: If the MCP server updates its tools but the skill isn't updated, agents use stale documentation
  4. OAuth complexity: GitHub Copilot MCP OAuth works but requires a valid GitHub PAT in the config
  5. Embedded binary size: Adding bin/mcp2skill to every generated skill inflates skill package size

Relationship to mcp-to-skill-converter

Both frameworks implement the same concept (MCP → skill conversion). Key differences:

  • mcp-to-skill-converter (Python): proof of concept, mocked introspection
  • mcp2skill (Go): production quality, real introspection, OAuth, update detection, agentskills.io compliance, cross-platform binary

What Makes It Novel vs. the 11 Seeds

  • Only framework implementing the agentskills.io open specification
  • Only converter with real MCP server introspection (not just schema reading)
  • Only framework targeting 5+ AI coding agents in its generated output
  • Only framework with skill update detection to handle MCP server evolution
04

Workflow

mcp2skill — Workflow

Initial Setup Workflow

# 1. Install mcp2skill
curl -sSL .../install.sh | bash

# 2. Configure global MCP servers
cat > ~/.mcp2skill/config.json << 'EOF'
{
  "mcp": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {"Authorization": "Bearer ghp_..."}
    }
  }
}
EOF

# 3. Generate skill for github server
mcp2skill generate-skill --server github --output ~/.claude/skills

# 4. Skill is now available in Claude Code (auto-discovered)

Update Workflow

# Check if skill is outdated (MCP server changed tools)
mcp2skill update-skill --skill ./skills/fetch

# Review proposed changes in ./skills/fetch/update/

# Apply if satisfied
mcp2skill update-skill --skill ./skills/fetch --confirm

Phase/Artifact Table

Phase Artifact
configure ~/.mcp2skill/config.json
generate-skill SKILL.md, references/TOOLS.md, bin/mcp2skill
agent discovery Skill loaded on next session start
update detection diff in update/ subdirectory
update apply Updated SKILL.md + TOOLS.md

Approval Gates

One gate: update-skill without --confirm shows proposed changes before applying.

Supported Use Cases

  1. Stdio MCP server: Docker image, npx, uvx
  2. HTTP MCP server: GitHub Copilot MCP, REST-based servers
  3. Embedded binary mode: Generated skill is fully self-contained (no external mcp2skill needed)
  4. No-embed mode: Generated skill references the globally installed mcp2skill binary

Skill Lifecycle

Skills generated by mcp2skill conform to the agentskills.io specification and are versioned by MCP server version (captured in frontmatter). When the MCP server updates its tool list, update-skill detects the diff.

06

Memory Context

mcp2skill — Memory & Context

Context Model

The generated SKILL.md implements two-tier progressive disclosure:

Load Point Tokens Content
Session start ~200-500 SKILL.md metadata + tool summary
When needed ~1k-5k TOOL.md with full parameter schemas

The TOOLS.md reference file is separate specifically so the agent can load detailed schemas on demand, rather than front-loading all parameters at session start.

Version Tracking

The generated SKILL.md captures the MCP server version at generation time:

**Server Version:** 1.0.0
**Protocol Version:** 2024-11-05

This enables update-skill to detect when the server's tool list has changed.

Config Persistence

Global config at ~/.mcp2skill/config.json persists server configurations across invocations. Project config at .mcp2skill/config.json overrides global for project-specific setups.

No Runtime State

The converter writes files and exits. No daemon, no database, no index.

Embedded Binary Mode

When --no-embed is NOT specified, the bin/mcp2skill binary is copied into the generated skill. This means the skill package is self-contained — no globally-installed mcp2skill needed for the agent to use the skill's tools. However, it increases the skill package size.

07

Orchestration

mcp2skill — Orchestration

Multi-Agent Pattern

None. mcp2skill is a build-time converter, not a runtime orchestrator.

Execution Mode

one-shot per CLI invocation (generate-skill or update-skill).

MCP Transport Support

The internal MCP client supports:

  • stdio: Spawns local processes (npx, uvx, docker, etc.)
  • HTTP: Connects to remote MCP endpoints
  • OAuth: Handles GitHub Copilot's OAuth token exchange for api.githubcopilot.com/mcp/

Conversion Lossiness

The MCP-to-skill conversion in mcp2skill is less lossy than the Python prototype:

MCP Capability In Generated Skill Lossiness
Tool list Listed in SKILL.md None
Tool schemas Full schemas in TOOLS.md Low (deferred, not lost)
Server version Captured in frontmatter None
OAuth flows Handled by embedded binary Low
Persistent connections New connection per agent session Medium
Resources Listed in RESOURCES.md Low

Multi-Model

Not applicable. The converter is model-agnostic.

Isolation

None. Generated skills execute the embedded mcp2skill binary as a subprocess when the agent invokes a tool.

08

Ui Cli Surface

mcp2skill — UI & CLI Surface

Dedicated CLI Binary

Yes. Binary name: mcp2skill

Attribute Value
Name mcp2skill
Language Go
Is thin wrapper No — owns MCP introspection and skill generation
Commands generate-skill, update-skill

Local UI / Dashboard

None.

Multi-Platform Distribution

Platform Install Method
Linux/macOS curl .../install.sh | bash~/.local/bin/mcp2skill
Windows Binary download from GitHub Releases
Any (Go) go install github.com/fenwei-dev/mcp2skill/cmd/mcp2skill@latest

CI/CD

GitHub Actions CI badge shown in README. Automated releases (GitHub Releases).

Demo Video

YouTube demo linked in README: https://youtu.be/OTx5USiRqJE

Cross-Tool Portability

High — generated skills target Claude Code, OpenCode, Codex, Gemini CLI, and Qwen Code. The agentskills.io specification is designed for cross-agent portability.

IDE Integration

None (build-time tool). Generated skills are placed in each agent's skill discovery directory.

Related frameworks

same archetype · same primary tool · same memory type

claude-mem (thedotmack) ★ 78k

Background worker service captures every tool call as an observation, AI-compresses sessions, and auto-injects relevant past…

pi (badlogic/earendil) ★ 55k

A minimal, hackable, multi-provider terminal coding agent that adapts to your workflows via npm-installable TypeScript Extensions…

Agent Skills (Addy Osmani) ★ 46k

Encodes senior-engineer software development lifecycle as 23 auto-routed skills and 7 slash commands for any AI coding agent.

wshobson/agents Plugin Marketplace ★ 36k

Single Markdown source for 83 domain-specialized plugins that auto-generates idiomatic artifacts for five AI coding harnesses.

TabbyML/Tabby ★ 34k

Self-hosted AI coding assistant server (alternative to GitHub Copilot) with admin dashboard, RAG-based completions, and multi-IDE…

Compound Engineering ★ 17k

Make each unit of engineering work compound into easier future work via brainstorm→plan→execute→review→learn cycles.