MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Converts Claude Code skills to Gemini CLI extensions and vice versa.
$ npx skills add jduncan-rva/skill-porter --skill skill-porter -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jduncan-rva/skill-porter skill-porter --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "skill-porter" agent skill from https://github.com/jduncan-rva/skill-porter/tree/main into .claude/skills/skill-porter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-porter", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jduncan-rva/skill-porter --skill skill-porter -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jduncan-rva/skill-porter skill-porter --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "skill-porter" agent skill from https://github.com/jduncan-rva/skill-porter/tree/main into .agents/skills/skill-porter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-porter", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jduncan-rva/skill-porter --skill skill-porter -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jduncan-rva/skill-porter skill-porter --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "skill-porter" agent skill from https://github.com/jduncan-rva/skill-porter/tree/main into .cursor/skills/skill-porter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-porter", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jduncan-rva/skill-porter --skill skill-porter -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jduncan-rva/skill-porter skill-porter --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "skill-porter" agent skill from https://github.com/jduncan-rva/skill-porter/tree/main into .gemini/skills/skill-porter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-porter", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jduncan-rva/skill-porter skill-porterInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jduncan-rva/skill-porter --skill skill-porter -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "skill-porter" agent skill from https://github.com/jduncan-rva/skill-porter/tree/main into .github/skills/skill-porter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-porter", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jduncan-rva/skill-porter --skill skill-porter -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jduncan-rva/skill-porter skill-porter --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "skill-porter" agent skill from https://github.com/jduncan-rva/skill-porter/tree/main into .opencode/skills/skill-porter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-porter", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skill-porterConverts Claude Code skills to Gemini CLI extensions and vice versa.
Skill Porter is an agent skill from jduncan-rva/skill-porter. Converts Claude Code skills to Gemini CLI extensions and vice versa. Use when the user wants to make a skill cross-platform compatible, port a skill between platforms, or create a universal extension that works on both Claude Code and Gemini CLI.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 55 other files (for example `.claude-plugin/marketplace.json`, `CONTRIBUTING.md` and `GEMINI.md`).
It sits in Agent Workflows. It works with Model Context Protocol. The repository describes itself as: Universal tool to convert Claude Code skills to Gemini CLI extensions and vice versa. The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 7ad93ec. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditGlobGrepBashFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Skill Porter loads about 2k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 736 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Glob, Grep, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jduncan-rva/skill-porter at commit 7ad93ec, republished under its MIT licence (© jduncan-rva). 736 words, ~2,029 tokens.
.claude/skills/skill-porter/SKILL.md (or your agent's skills folder). This skill also uses 49 other files; get the full folder from GitHub.This skill automates the conversion between Claude Code skills and Gemini CLI extensions, enabling true cross-platform AI tool development.
Convert skills and extensions between platforms while preserving functionality:
Example requests:
Automatically analyzes directory structure to determine source platform:
Detection criteria:
SKILL.md with YAML frontmatter or .claude-plugin/marketplace.jsongemini-extension.json or GEMINI.md context fileExample requests:
Intelligently converts between platform-specific formats:
Conversions handled:
allowed-tools (whitelist) ↔ excludeTools (blacklist)Example requests:
Maintains Model Context Protocol server configurations across platforms:
Example requests:
Ensures converted output meets platform requirements:
Validation checks:
Example requests:
When you request a conversion, I will:
SKILL.md + .claude-plugin/marketplace.jsonGEMINI.md + gemini-extension.jsonallowed-tools (whitelist - only listed tools permitted)excludeTools (blacklist - listed patterns blocked)${extensionPath} variable substitutionUser: "I have a Claude skill at ./database-helper. Convert it to Gemini."
Claude: I'll analyze the skill and convert it to Gemini format...
- Detected Claude skill (found SKILL.md with frontmatter)
- Extracted metadata and MCP configuration
- Generated gemini-extension.json and GEMINI.md
- Transformed allowed-tools to excludeTools
- Created settings schema from environment variables
✓ Conversion complete! Ready to install with: gemini extensions install ./database-helperUser: "Port my Gemini extension to Claude Code"
Claude: I'll convert this Gemini extension to a Claude skill...
- Detected Gemini extension (found gemini-extension.json)
- Extracted manifest and context file
- Generated SKILL.md with YAML frontmatter
- Created .claude-plugin/marketplace.json
- Converted excludeTools to allowed-tools
✓ Conversion complete! Install with: cp -r ./extension ~/.claude/skills/User: "Make this skill work on both platforms"
Claude: I'll create a universal extension structure...
- Analyzing current configuration
- Generating both Claude and Gemini files
- Moving shared content to shared/ directory
- Updating MCP server paths for both platforms
✓ Universal extension created! Works with both Claude Code and Gemini CLICreate a PR to add dual-platform support to the parent repository:
Example requests:
Create a fork with both platform configurations:
Example requests:
Check compatibility without converting:
Example requests:
This skill operates directly on filesystem directories and doesn't require external configuration. It uses:
gh) for repository operationsSome aspects may require manual review:
These will be flagged in the conversion report.
Claude → Gemini (Whitelist → Blacklist):
Gemini → Claude (Blacklist → Whitelist):
When converting Claude → Gemini, environment variables in MCP config become settings:
// MCP env var
"env": { "DB_HOST": "${DB_HOST}" }
// Becomes Gemini setting
"settings": [{
"name": "DB_HOST",
"description": "Database host",
"default": "localhost"
}]Claude uses relative paths, Gemini uses variables:
// Claude
"args": ["mcp-server/index.js"]
// Gemini
"args": ["${extensionPath}/mcp-server/index.js"]For implementation details, see the repository at https://github.com/jduncan-rva/skill-porter
© jduncan-rva, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 49 other files in the repository root of jduncan-rva/skill-porter.
Open the folder on GitHubat commit 7ad93ec
Skill Porter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Skill Porter this skilljduncan-rva/skill-porter | 191 | — | ~2k | Automated safety check: Notes | MIT | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 38k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| MemPalace Memory SearchMemPalace/mempalace | 60k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Crush Configurationcharmbracelet/crush | 29k | — | ~3.7k | Automated safety check: Pass | Custom licence |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
MemPalace/mempalace
Mines project files and conversation exports into a local, searchable memory palace and recalls past work by semantic search through the mempalace CLI.
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
mksglu/context-mode
Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.
Works with
Categories
Converts Claude Code skills to Gemini CLI extensions and vice versa. Skill Porter is an agent skill from jduncan-rva/skill-porter. Converts Claude Code skills to Gemini CLI extensions and vice versa.
Skill Porter fits situations like: the user wants to make a skill cross-platform compatible; port a skill between platforms; create a universal extension that works on both Claude Code and Gemini CLI.
Run `npx skills add jduncan-rva/skill-porter --skill skill-porter -a claude-code`. Or copy the skill folder (the jduncan-rva/skill-porter repository) into .claude/skills/skill-porter in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jduncan-rva/skill-porter --skill skill-porter -a codex`. Or copy the skill folder (the jduncan-rva/skill-porter repository) into .agents/skills/skill-porter in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jduncan-rva/skill-porter --skill skill-porter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skill-porter, .gemini/skills/skill-porter, .github/skills/skill-porter and .opencode/skills/skill-porter in your project.
SKILL.md names no scripts, command-line tools or credentials: Skill Porter is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, Bash.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Skill Porter is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Skill Porter: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars) and MemPalace Memory Search (MemPalace/mempalace, 60k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jduncan-rva (a GitHub user) maintains it in jduncan-rva/skill-porter, which has 191 GitHub stars. The repository was last updated on December 2, 2025.
Source: jduncan-rva/skill-porter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.