Skip to main content
Glama
Livus-AI
by Livus-AI
README.md
# Skills MCP Server

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A Model Context Protocol (MCP) server that enables AI agents to discover, load, and execute **Agent Skills** - organized folders of instructions, scripts, and resources that give agents additional capabilities.

Based on the [Agent Skills specification](https://agentskills.io/specification).

## What are Skills?

Skills are folders containing:
- **SKILL.md** - Instructions and metadata (name, description)
- **scripts/** - Executable Python scripts
- **references/** - Additional documentation (loaded on demand)
- **assets/** - Static resources (templates, data files)

Skills use **progressive disclosure** to efficiently manage context:
1. **Level 1**: Name + description always visible in the `skill` tool description
2. **Level 2**: Full SKILL.md loaded when `skill(name)` is called
3. **Level 3**: Scripts/references loaded when `execute_skill_script()` or `get_skill_resource()` is called

## Features

- **Dynamic Skill Discovery**: All skill names and descriptions are embedded in the `skill` tool description
- **Progressive Loading**: Load skill instructions on demand
- **Script Execution**: Run pre-built Python scripts from skills
- **Resource Access**: Load reference docs and assets as needed
- **Agent Skills Compatible**: Follows the open Agent Skills specification

## Getting Started

### Prerequisites

- Python 3.10+
- An MCP-compatible client (e.g., Manus, Claude Code, Cursor)

### Installation

1. **Clone the repository:**

    ```bash
    git clone https://github.com/Livus-AI/Skills-MCP.git
    cd Skills-MCP
    ```

2. **Install dependencies:**

    ```bash
    pip install -e .
    ```

3. **Run the server:**

    ```bash
    skills-mcp
    ```

### Configuration

- **Skills Directory**: By default, skills are stored in the `skills/` directory. You can change this by setting the `SKILLS_DIR` environment variable.

## MCP Tools

The server exposes **3 tools**:

| Tool | Description |
| :--- | :--- |
| `skill(name)` | Load a skill's full instructions. **The tool description dynamically includes ALL skill names and descriptions.** |
| `execute_skill_script(skill_name, script_name, params)` | Execute a Python script from a skill's `scripts/` directory. |
| `get_skill_resource(skill_name, resource_path)` | Load a specific resource file (reference docs, assets). |

### How It Works

The `skill` tool description is **dynamically generated** to always include the name and description of every available skill. This means:

1. **Agents see all skills immediately** - No need to call a "list" function
2. **One call to load** - `skill("name")` loads full instructions
3. **Execute when ready** - `execute_skill_script()` runs scripts

### Example Workflow

```
# Agent reads skill tool description and sees:
# - hello-world: A simple example skill...
# - slack-message: Post messages to Slack...

# Step 1: Load the skill
skill("slack-message")
# Returns: full instructions, available scripts, resources

# Step 2: Execute a script
execute_skill_script("slack-message", "post.py", {"channel": "#general", "message": "Hello!"})
# Returns: script output
```

## Creating a Skill

See [SKILL_CREATION.md](SKILL_CREATION.md) for the complete guide.

### Quick Start

1. **Create the directory structure:**

```
skills/
└── my-skill/
    ├── SKILL.md              # Required: Instructions + metadata
    ├── scripts/              # Optional: Executable scripts
    │   └── main.py
    ├── references/           # Optional: Additional docs
    │   └── api.md
    └── assets/               # Optional: Static resources
        └── template.json
```

2. **Create SKILL.md with frontmatter:**

```yaml
---
name: my-skill
description: What this skill does and when to use it. Include keywords that help agents identify relevant tasks.
license: MIT
metadata:
  author: your-name
  version: "1.0"
---

# My Skill

## Overview
Brief description of what this skill helps accomplish.

## Available Scripts
- `scripts/main.py` - Primary functionality

## How to Use
Step-by-step instructions...
```

3. **Create scripts with the standard format:**

```python
import sys
import json

def run(params: dict = None) -> dict:
    params = params or {}
    # Your logic here
    return {"status": "success", "result": "..."}

if __name__ == "__main__":
    params = {}
    if len(sys.argv) > 1:
        params = json.loads(sys.argv[1])
    result = run(params)
    print(json.dumps(result))
```

## Example Skills

This repository includes example skills in the `skills/` directory:

1. **hello-world** - A simple example demonstrating the skill format
2. **slack-message** - Post messages to Slack via webhook

## Roadmap

- [ ] `create_skill` tool - Create new skills programmatically
- [ ] `execute_code` tool - Execute arbitrary Python code with e2b sandboxing
- [ ] Skill validation and linting
- [ ] Skill versioning and updates

## Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Related

- [Agent Skills Specification](https://agentskills.io/specification)
- [Anthropic Skills Repository](https://github.com/anthropics/skills)
- [Model Context Protocol](https://modelcontextprotocol.io)

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: create, delete, execute, list, read, and update workflows. The actions are mutually exclusive and target the same resource (workflows) with specific operations, making misselection unlikely.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with 'workflow' as the noun (e.g., create_workflow, delete_workflow). The naming is uniform and predictable, using snake_case throughout without any deviations.

Tool Count5/5

With 6 tools, the server is well-scoped for managing workflows, covering essential CRUD operations (create, read, update, delete) plus listing and execution. Each tool earns its place without being excessive or insufficient for the domain.

Completeness5/5

The tool set provides complete lifecycle coverage for workflows: creation, reading, updating, deletion, listing, and execution. There are no obvious gaps, and agents can perform all expected operations without dead ends in this domain.

Maintenance

ActivityInactive
ResponsivenessNo issues