@agiflowai/openskill
v0.1.3
Published
Model Context Protocol server for OpenSkill rating system integration
Downloads
130
Maintainers
Readme
@agiflowai/openskill
Model Context Protocol (MCP) server that enables Anthropic Skills to work with any coding agent and client that supports MCP servers. Provides skill management and sandboxed execution capabilities.
Features
- Universal Compatibility: Makes Anthropic Skills work with any MCP-compatible AI coding agent (Cline, Roo Code, Continue, Zed, etc.)
- Skill Management: Read and execute skills from
.claude/skills/directory - Sandboxed Execution: Execute bash commands in isolated Docker containers for security
- Volume Mounting: Mount host directories into containers for file access
- MCP Tools:
get-skillanduse-skilltools for seamless integration - CLI Commands: Direct command-line access to all functionality
- Custom Images: Support for custom Docker images tailored to your needs
- Pre-configured Environment: Python (uv, pip, poetry, pipenv, Pillow) and Node.js tooling out of the box
MCP Tools
get-skill
Retrieves skill information from the skills directory. You can use anthopic's skills in github and put that in .claude/skills or your custom skill folder and that should work.
Input:
command(string): Name of the skill to retrieve
Example:
{
"command": "canvas-design"
}use-skill
Executes bash commands in a sandboxed Docker environment for a specific skill.
Input:
skillName(string): Name of the skill to executebash(string): Bash command to execute
Example:
{
"skillName": "canvas-design",
"bash": "python generate.py output.pdf"
}CLI Commands
mcp-serve
Start the MCP server with stdio transport.
node dist/cli.js mcp-serve [options]Options:
-t, --type <type>: Transport type (default: "stdio")--timeout <ms>: Default timeout for use-skill command (default: 30000)--workdir <path>: Default working directory in container (default: "/workspace")--mount <path>: Host path to mount into container /workspace--skills-path <path>: Path to skills directory (default: ".claude/skills")--container-name <name>: Custom Docker container name (allows reusing one container for multiple skills)--image <name>: Custom Docker image name to use instead of building default openskill-http image--disable-tools <tools>: Comma-separated list of tools to disable--no-prewarm: Disable Docker image prewarming on server startup
Example:
# Start with custom skills path
node dist/cli.js mcp-serve --skills-path ./my-skills
# Start with custom Docker image
node dist/cli.js mcp-serve --image my-custom-image:latest
# Start with custom container name (reuse same container for all skills)
node dist/cli.js mcp-serve --container-name shared-skill-containeruse-skill
Execute a skill directly from the command line.
node dist/cli.js use-skill <skill-name> <bash-command> [options]Options:
-t, --timeout <ms>: Command timeout (default: 30000)-w, --workdir <path>: Working directory (default: "/workspace")-m, --mount <path>: Host path to mount into container
Example:
# Execute Python script in canvas-design skill
node dist/cli.js use-skill canvas-design "python generate.py output.pdf" \
--mount /Users/username/projectsdoctor
Check if Docker is installed and accessible. Validates your environment for running OpenSkill.
node dist/cli.js doctorChecks:
- Docker installation and version
- Docker daemon status
Example Output:
Running OpenSkill environment checks...
Checking Docker installation...
✓ Docker is installed: Docker version 28.3.2, build 578ccf6
Checking Docker daemon...
✓ Docker daemon is running
✓ All checks passed!
Your environment is ready to use OpenSkill.http-serve
Start the HTTP server (used by Docker containers). When you create your own dockerfile, simply use npx @agiflowai/openskill http-serve as your entry point.
node dist/cli.js http-serve [options]Options:
-p, --port <port>: Port to listen on (default: 3000)-h, --host <host>: Host to bind to (default: "localhost")
Usage with MCP Clients
OpenSkill can be used with any MCP-compatible client. Below are basic configuration examples for popular tools.
Cline
{
"mcpServers": {
"openskill-mcp": {
"disabled": false,
"command": "openskill",
"args": ["mcp-serve"]
}
}
}Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"openskill-mcp": {
"command": "openskill",
"args": ["mcp-serve"]
}
}
}Windsurf
{
"mcpServers": {
"openskill-mcp": {
"command": "openskill",
"args": ["mcp-serve"]
}
}
}VS Code
"mcp": {
"servers": {
"openskill-mcp": {
"type": "stdio",
"command": "openskill",
"args": ["mcp-serve"]
}
}
}Zed
{
"context_servers": {
"openskill-mcp": {
"source": "custom",
"command": "openskill",
"args": ["mcp-serve"]
}
}
}Roo Code
{
"mcpServers": {
"openskill-mcp": {
"command": "openskill",
"args": ["mcp-serve"]
}
}
}Continue
{
"mcpServers": {
"openskill-mcp": {
"command": "openskill",
"args": ["mcp-serve"]
}
}
}Claude Code
{
"mcpServers": {
"openskill-mcp": {
"command": "openskill",
"args": ["mcp-serve", "--disable-tools", "get-skill"]
}
}
}Note: For advanced configuration options (mount paths, container names, custom Docker images, skills paths, timeouts, etc.), see the CLI Commands section above.
Docker Environment
The sandbox Docker image includes:
Node.js/JavaScript:
- Node.js v20
- npm
Python:
- Python 3.12
- pip
- uv (fast package installer)
- poetry (dependency management)
- pipenv (virtual environment manager)
- Pillow (PIL - image processing library)
System Tools:
- bash
- git
- curl, wget
- Build tools (gcc, g++, make)
Building the Docker Image
cd packages/openskill
docker build -t openskill-http .Development
# Install dependencies
pnpm install
# Build the project
pnpm build
# Run type checking
pnpm typecheck
# Run tests
pnpm test
# Development mode (watch)
pnpm devSkill Structure
Skills should be organized in the skills directory (default: .claude/skills/):
.claude/skills/
├── canvas-design/
│ ├── SKILL.md # Skill definition with frontmatter
│ ├── generate.py # Skill implementation
│ └── templates/ # Additional resources
└── another-skill/
└── SKILL.mdSKILL.md Format:
---
name: canvas-design
description: Create beautiful visual art in .png and .pdf documents
license: user
---
# Canvas Design Skill
Instructions for the AI on how to use this skill...Architecture
- src/tools/: MCP tool implementations (GetSkillTool, UseSkillTool)
- src/services/: Business logic (SkillService, SandboxService)
- src/commands/: CLI commands (mcp-serve, use-skill, http-serve)
- src/server/: MCP server setup and configuration
- src/transports/: MCP transport handlers (stdio)
- Dockerfile: Docker image with Python and Node.js tooling
License
MIT
