🚢 All Your Agent Skills in One Place - Manage once, serve anywhere ⚓
Agent Skills → Cursor · Copilot · Codex & more - via CLI or MCP
Claude Agent Skills are great - but they only work in Claude. What about Cursor, Copilot, Codex? With dozens of skills loaded upfront, there's less context and agent performance suffers.
Context Engineering for Expert Knowledge - SkillPort brings expertise into context-only when needed.
| When you... | SkillPort helps by... | |
|---|---|---|
| Switching to Cursor with 20+ Agent skills | Add one line to config - all skills work instantly | MCP Server → |
| Team using Cursor, Copilot, and Codex | Share one folder, filter by category per tool | Organize → |
| 50+ skills, "which one was for PR reviews?" | Search by keyword - finds it in milliseconds | Scale → |
| Long debugging session, context running low | Skills load on-demand - not all upfront | Scale → |
| Found an awesome skill on GitHub | skillport add <url> - ready to use in seconds |
CLI → |
| Don't want to set up MCP | CLI works standalone - init, add, doc to AGENTS.md |
CLI Mode → |
🔄 Compatible with Claude Agent Skills - Write skills once, use everywhere. Skills that work with Claude Code work with SkillPort, and vice versa.
Choose your setup:
| Mode | Best for | Per-project setup |
|---|---|---|
| MCP Mode | Multi-project, per-client filtering | Not required |
| CLI Mode | Quick Setup, single project | Required (skillport init) |
Tip: Start with MCP Mode for the full experience. CLI Mode is simpler but requires setup in each project.
Skip this step if you only want to serve an existing skills directory via MCP.
Install to manage skills and use them without MCP:
uv tool install skillport
# or: pip install skillport
# Update to latest version
uv tool upgrade skillportEnables add, update, remove, validate, search, show, and doc (generate AGENTS.md for non-MCP agents).
Skip this step if you already have skills (e.g., in
.claude/skills/). Just pointSKILLPORT_SKILLS_DIRto it in step 3.
# Add a sample skill
skillport add hello-world
# Or add from GitHub
skillport add https://github.com/anthropics/skills/tree/main/skills
# Or add from GitHub with custom skills directory (Claude Code, Codex)
skillport --skills-dir .claude/skills add https://github.com/anthropics/skills/tree/main/skills
skillport --skills-dir ~/.codex/skills add https://github.com/anthropics/skills/tree/main/skills/frontend-designTo customize environment variables, use manual configuration below instead of one-click install.
Cursor (one-click)
VS Code / GitHub Copilot (one-click)
Kiro (one-click)
CLI Agents
# Codex
codex mcp add skillport -- uvx skillport
# With custom skills in the project directory
codex mcp add skillport --env SKILLPORT_SKILLS_DIR=./.agent/skills -- uvx skillport
# Claude Code
claude mcp add skillport -- uvx skillport
# With custom skills directory
claude mcp add skillport --env SKILLPORT_SKILLS_DIR=~/.claude/skills -- uvx skillportOther MCP Clients (Windsurf, Cline, Roo Code, Antigravity, etc.)
Add to your client's MCP config file:
{
"mcpServers": {
"skillport": {
"command": "uvx",
"args": ["skillport"],
"env": { "SKILLPORT_SKILLS_DIR": "~/.skillport/skills" }
}
}
}| Client | Config file |
|---|---|
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Cline | VS Code settings or .cline/mcp_settings.json |
| Roo Code | .roo/mcp.json (project) or VS Code settings |
Claude Desktop (Not Recommended, Use the official Agent Skills)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"skillport": {
"command": "uvx",
"args": ["skillport"],
"env": { "SKILLPORT_SKILLS_DIR": "~/.skillport/skills" }
}
}
}Ask your AI: "Search for hello-world and run it"
The agent will:
search_skills("hello-world")- find matching skillsload_skill("hello-world")- get instructions + path- Follow the instructions using its tools
For: Coding agents with shell commands (Cursor, Windsurf, Cline, Copilot, Codex, etc.)
Skills are documented in AGENTS.md and load via skillport show. No MCP configuration needed.
# 1. Install
uv tool install skillport
# 2. Initialize your project (in your project directory)
skillport init
# → Select skills directory and instruction files interactively
# → Creates .skillportrc, generates skills to AGENTS.md
# 3. Add skills (uses skills_dir from .skillportrc)
skillport add hello-world
skillport add https://github.com/anthropics/skills/tree/main/skills
skillport add https://github.com/anthropics/skills/tree/main/skills/frontend-designHow it works: Your agent reads the skills table in AGENTS.md, then runs skillport show <id> to load full instructions.
Note: CLI mode requires
skillport initin each project. Skills are added to the directory configured in.skillportrc. For multi-project use, consider MCP Mode.
Tools for progressive skill loading:
| Tool | Transport | Purpose |
|---|---|---|
search_skills(query) |
stdio, HTTP | Find skills by task description |
load_skill(skill_id) |
stdio, HTTP | Get full instructions and filesystem path |
read_skill_file(skill_id, file_path) |
HTTP only | Read files (experimental) |
stdio (default): The
pathfromload_skillis accessible in the agent's execution environment-agents can read files and run scripts directly.Streamable HTTP (experimental): For remote agents without filesystem access. Adds
read_skill_filebut is not fully tested yet.
Project Setup:
skillport init # Initialize project (.skillportrc, AGENTS.md)
skillport doc # Update AGENTS.md when skills change
skillport doc --all # Update all instruction files in .skillportrcSkill Management:
skillport add <source> # GitHub URL, local path, zip file, or built-in name
skillport update [id] # Update skills from original sources
skillport list # See installed skills
skillport remove <id> # Uninstall a skill
skillport validate [target] # Validate skills (ID, path, or directory)
# Override paths per run (CLI > env > default)
skillport --skills-dir ./skills add hello-world
# Place global flags before the subcommand (e.g., skillport --skills-dir ... add ...)Search & Load:
skillport search <query> # Find skills by description
skillport show <id> # View skill details and instructionsInstall from GitHub:
One command to install skills from any GitHub URL-no cloning required. Supports branches and subdirectories:
# Anthropic official skills
skillport add https://github.com/anthropics/skills/tree/main/skills
# Specific path in a repo
skillport add https://github.com/wshobson/agents/tree/main/plugins/developer-essentials/skillsDiscover more:
| Skills | Features | Target | URL |
|---|---|---|---|
| Anthropic Official | Document skills (docx, pdf, pptx, xlsx), design, MCP builder | All users | GitHub |
| Awesome Claude Skills | Curated community collection, 2.5k+ stars | Discovery | GitHub |
| Hugging Face Skills | Dataset creation, model evaluation, LLM training, paper publishing | ML/AI engineers | GitHub |
| Claude Scientific Skills | 128+ scientific skills (bio, chem, ML), 26+ databases | Researchers | GitHub |
| ClaudeKit Skills | 30+ skills, auth, multimodal, problem-solving frameworks | Full-stack devs | GitHub |
| Superpowers | TDD, debugging, parallel agents, code review workflows | Quality-focused devs | GitHub |
| Kubernetes Operations | K8s deployment, monitoring, troubleshooting | DevOps/SRE | GitHub |
| Notion Skills | Meeting notes, research docs, knowledge capture | Notion users | GitHub |
Use metadata.skillport to:
- Search -
categoryandtagsimprove discoverability - Filtering - Control which skills each client sees
- Core Skills -
alwaysApply: truefor always-available skills
# SKILL.md frontmatter
metadata:
skillport:
category: development
tags: [testing, quality]
alwaysApply: true # Core Skills - always availableClient-Based Skill Filtering:
Expose different skills to different AI agents:
{
"mcpServers": {
"skillport-development": {
"command": "uvx",
"args": ["skillport"],
"env": { "SKILLPORT_ENABLED_CATEGORIES": "development,testing" }
}
}
}{
"mcpServers": {
"writing-skills": {
"command": "uvx",
"args": ["skillport"],
"env": { "SKILLPORT_ENABLED_CATEGORIES": "writing,research" }
}
}
}Filter options:
SKILLPORT_ENABLED_SKILLS- Specific skill IDsSKILLPORT_ENABLED_CATEGORIES- By categorySKILLPORT_ENABLED_NAMESPACES- By directory prefixSKILLPORT_CORE_SKILLS_MODE- Skills visible to agent without searching (auto/explicit/none)
The Problem:
System Prompt (every conversation):
├── Company guidelines (2,000 tokens)
├── Coding standards (3,000 tokens)
├── Review checklist (1,500 tokens)
├── 50 more instructions...
└── Total: 30,000+ tokens before you say "hello"
The Solution: Skills load progressively - metadata first, full instructions on demand:
| Stage | Tokens | When |
|---|---|---|
| Metadata | ~100/skill | Always (searchable) |
| Instructions | ~5,000 | On load_skill() |
100 skills = ~15K tokens (vs 300K+ if all loaded upfront)
SkillPort enhances this with:
- BM25 search - Find the right skill without loading all metadata
- Per-client filtering - Expose only relevant skills to each agent
- Fallback chain - FTS → substring (always returns results)
SkillPort provides knowledge, not a runtime. Instead of executing code, it returns filesystem paths:
# load_skill returns:
{
"instructions": "How to extract text from PDFs...",
"path": "/Users/me/.skillport/skills/pdf-extractor"
}The agent executes scripts directly:
python {path}/scripts/extract.py input.pdf -o result.txtContext Engineering: Executing code doesn't require reading code.
| Approach | Context Cost |
|---|---|
| Read script → execute | ~2,000 tokens |
| Execute via path | ~20 tokens |
This keeps SkillPort simple and secure-it's a harbor, not a runtime.
| Variable | Description | Default |
|---|---|---|
SKILLPORT_SKILLS_DIR |
Skills directory | ~/.skillport/skills |
SKILLPORT_ENABLED_CATEGORIES |
Filter by category (comma-separated) | all |
SKILLPORT_ENABLED_SKILLS |
Filter by skill ID (comma-separated) | all |
SKILLPORT_ENABLED_NAMESPACES |
Filter by namespace (comma-separated) | all |
SKILLPORT_CORE_SKILLS_MODE |
Core Skills behavior (auto/explicit/none) |
auto |
SKILLPORT_CORE_SKILLS |
Core Skill IDs for explicit mode (comma-separated) |
none |
Create a SKILL.md file with YAML frontmatter. name and description are required:
---
name: my-skill
description: What this skill does
metadata:
skillport:
category: development
tags: [example]
---
# My Skill
Instructions for the AI agent.- Configuration Guide - Filtering, search options, multi-client setup
- Creating Skills - SKILL.md format and best practices
- CLI Reference - Full command documentation
- Design Philosophy - Why skills work this way
git clone https://github.com/gotalab/skillport.git
cd skillport
uv sync
SKILLPORT_SKILLS_DIR=.agent/skills uv run skillport serveMIT