Sandbox
@gotalab/skillport

CLI and MCP server for Agent Skills

SkillPort manages Agent Skills so agents can find, load, and use them without manual copying. It works in two modes: a CLI for shell-capable agents and an MCP server for clients that support tool connections.

409 stars30 forksPythonUpdated 2mo ago
Who it's for

Builders who want one skill library to work across Claude Code, Codex, Cursor, Copilot, Windsurf, and other MCP clients.

What it delivers

You can keep skills validated, organized, and available to different agents without redoing setup for each tool.

What it does

Validate skills

Checks skills against the Agent Skills specification, including missing fields, naming issues, and spec violations.

Manage skill lifecycle

Adds skills from GitHub, local paths, or zip files, then lists, updates, and removes them.

Edit metadata from the CLI

Lets you get, set, and unset skill metadata without opening the files.

Serve skills on demand

Exposes `search_skills(query)` and `load_skill(skill_id)` through MCP so clients can search first and load only what they need.

Generate project docs

Creates an `AGENTS.md` skill table for CLI-based agents to discover what is available.

Filter skills per client

Uses config and environment variables to expose different skills, categories, or namespaces to different agents.

How to get it

  1. 1Run
    uv tool install skillport
    # or: pip install skillport
  2. 2Run
    # Add from GitHub
    skillport add anthropics/skills skills
    
    # Or use a custom skills directory
    skillport --skills-dir .claude/skills add anthropics/skills skills
  3. 3Run
    skillport validate
    # ✓ All 5 skill(s) pass validation

README

⚓ SkillPort

The SkillOps Toolkit for Agent Skills

SkillOps = Validate, manage, and deliver skills at scale.

Python MCP License


Why SkillPort?

When you...SkillPort...
Use a coding agent without native skill supportServes via MCP or CLI
Build your own AI agentProvides MCP server, CLI, and Python library
Have 50+ skills and need the right one fastSearch-first loading (Tool Search Tool pattern)
Check skills before deploymentValidates against the spec in CI
Manage skill metadata programmaticallyProvides meta commands
Find a skill on GitHubInstalls with add <url>

Fully compatible with the Agent Skills specification.


Features

Validate

Check skills against the Agent Skills specification.

skillport validate                    # Validate all skills
skillport validate ./skills           # Validate specific directory
skillport validate --json             # CI-friendly JSON output

Catches missing fields, naming issues, and spec violations before they cause problems.

Manage

Full lifecycle management from any source.

# Add from GitHub (shorthand)
skillport add anthropics/skills skills

# Add from GitHub (full URL)
skillport add https://github.com/anthropics/skills/tree/main/skills

# Add from local path or zip
skillport add ./my-skills
skillport add skills.zip

# Update, list, remove
skillport update                      # Update all from original sources
skillport list                        # See installed skills
skillport remove <skill-id>           # Uninstall

Metadata

Update skill metadata without editing files manually. Useful for automation and keeping skills consistent across a team.

skillport meta get <skill> <key>      # Get metadata value
skillport meta set <skill> <key> <val> # Set metadata value
skillport meta unset <skill> <key>    # Remove metadata key

Serve

MCP server for clients that don't natively support Agent Skills.

Inspired by Anthropic's Tool Search Tool pattern — search first, load on demand:

ToolPurpose
search_skills(query)Find skills by description (full-text search)
load_skill(skill_id)Get full instructions + path

Why search matters: With 50+ skills, loading all upfront consumes context and hurts accuracy. SkillPort loads metadata only (~100 tokens/skill), then full instructions on demand.

Works with Cursor, Copilot, Windsurf, Cline, Codex, and any MCP-compatible client.


Quick Start

Install

uv tool install skillport
# or: pip install skillport

Add Skills

# Add from GitHub
skillport add anthropics/skills skills

# Or use a custom skills directory
skillport --skills-dir .claude/skills add anthropics/skills skills

Validate

skillport validate
# ✓ All 5 skill(s) pass validation

Connect to Agents

Choose how to deliver skills to your AI agents:

ModeBest forSetup
CLI ModeAgents with shell access (Cursor, Windsurf, Codex, etc.)Per-project
MCP ModeMCP-compatible clients, multi-projectOne-time

CLI Mode

For agents that can run shell commands. No MCP configuration required.

skillport init                        # Initialize project
skillport doc                         # Generate AGENTS.md with skill table
skillport show <id>                   # Load full instructions for a skill

How it works:

  1. skillport doc generates a skill table in AGENTS.md
  2. The agent reads AGENTS.md to discover available skills
  3. When needed, the agent runs skillport show <id> to load full instructions

MCP Mode

For MCP-compatible clients. Install the server:

uv tool install skillport-mcp

Add to your client's config:

{
  "mcpServers": {
    "skillport": {
      "command": "uvx",
      "args": ["skillport-mcp"],
      "env": { "SKILLPORT_SKILLS_DIR": "~/.skillport/skills" }
    }
  }
}
One-click install for popular clients

Cursor

Install MCP Server

VS Code / GitHub Copilot

Install in VS Code

Kiro

Add to Kiro

CLI Agents

# Codex
codex mcp add skillport -- uvx skillport-mcp

# Claude Code
claude mcp add skillport -- uvx skillport-mcp

Organization

Organize skills with categories and tags. Works with both CLI and MCP modes.

Categories & Tags

Use metadata to organize and filter skills:

# SKILL.md frontmatter
metadata:
  skillport:
    category: development
    tags: [testing, quality]
    alwaysApply: true  # Always available (Core Skills)

Per-Client Filtering

Expose different skills to different agents:

{
  "mcpServers": {
    "skillport-dev": {
      "command": "uvx",
      "args": ["skillport-mcp"],
      "env": { "SKILLPORT_ENABLED_CATEGORIES": "development,testing" }
    },
    "skillport-writing": {
      "command": "uvx",
      "args": ["skillport-mcp"],
      "env": { "SKILLPORT_ENABLED_CATEGORIES": "writing,research" }
    }
  }
}

Configuration

VariableDescriptionDefault
SKILLPORT_SKILLS_DIRSkills directory~/.skillport/skills
SKILLPORT_ENABLED_CATEGORIESFilter by categoryall
SKILLPORT_ENABLED_SKILLSFilter by skill IDall
SKILLPORT_ENABLED_NAMESPACESFilter by namespaceall
SKILLPORT_CORE_SKILLS_MODECore Skills behavior (auto/explicit/none)auto

Creating Skills

Create a SKILL.md with YAML frontmatter:

---
name: my-skill
description: What this skill does
metadata:
  skillport:
    category: development
    tags: [example]
---
# My Skill

Instructions for the AI agent.

See Creating Skills Guide for best practices.


Skill Sources

SourceFeaturesTargetURL
Anthropic OfficialDocument skills (docx, pdf, pptx, xlsx), design, MCP builderAll usersGitHub
Awesome Claude SkillsCurated community collection, 2.5k+ starsDiscoveryGitHub
Hugging Face SkillsDataset creation, model evaluation, LLM training, paper publishingML/AI engineersGitHub
Claude Scientific Skills128+ scientific skills (bio, chem, ML), 26+ databasesResearchersGitHub
ClaudeKit Skills30+ skills, auth, multimodal, problem-solving frameworksFull-stack devsGitHub
SuperpowersTDD, debugging, parallel agents, code review workflowsQuality-focused devsGitHub
Kubernetes OperationsK8s deployment, monitoring, troubleshootingDevOps/SREGitHub

Learn More


Development

Status: Work in progress. APIs may change.

git clone https://github.com/gotalab/skillport.git
cd skillport
uv sync

# Run MCP server
SKILLPORT_SKILLS_DIR=.skills uv run skillport-mcp

# Run CLI
uv run skillport --help

# Run tests
uv run pytest

License

MIT

Files in the repo

Repository payload19 top-level entries
  • .github
  • .skills
  • guide
  • packages
  • src
  • tests
  • .env.example
  • .gitignore
  • .release-please-manifest.json
  • .skillportrc
  • AGENTS.md
  • CHANGELOG.md
  • CLAUDE.md
  • LICENSE
  • pyproject.toml
  • README.md
  • release-please-config.json
  • uv.lock
  • verify_server.py

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k