Metadata-Version: 2.4
Name: skills-as-mcp
Version: 0.4.0
Summary: MCP server for dynamic AI agent skill management
Author: sumo
License-Expression: MIT
License-File: LICENSE
Keywords: agent-skills,ai-agent,fastmcp,mcp,skills
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Requires-Dist: fastmcp>=3.0
Requires-Dist: httpx>=0.27
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Description-Content-Type: text/markdown

# skills-as-mcp

An MCP server for dynamic AI agent skill management. Install, search, and manage
[Agent Skills](https://agentskills.io) from any MCP client — Claude Code, Cursor,
Simba, or any tool that speaks MCP.

## What Makes This Different

Every existing solution assumes skills are local files you manually place. skills-as-mcp
lets your AI agent **install skills from URLs mid-conversation**:

```
You: "install this skill https://example.com/weather/SKILL.md"
Agent: calls install_skill(url="https://example.com/weather/SKILL.md")
Agent: "Weather skill installed. You now have weather lookup capabilities."
You: "what's the weather in Tokyo?"
Agent: reads skill://weather → follows instructions → answers
```

## Install

```bash
pip install skills-as-mcp
```

## Quick Start

### With Claude Code

Add to your MCP config (`.claude/settings.json` or `~/.claude.json`):

```json
{
  "mcpServers": {
    "skills-as-mcp": {
      "command": "skills-as-mcp"
    }
  }
}
```

### With Any MCP Client

```bash
# Run via stdio (default)
skills-as-mcp

# Run as HTTP server
skills-as-mcp --transport http --port 8000
```

### Storage

Skills are stored in `~/.skills-as-mcp/` by default. Override with:

```bash
export SKILL_SHELF_DIR=/path/to/shelf
```

## MCP Tools

| Tool | Description |
|------|-------------|
| `install_skill(url?, content?)` | Install from URL or raw SKILL.md content |
| `list_skills(enabled_only?)` | List all installed skills |
| `get_skill(name)` | Read full SKILL.md instructions |
| `search_skills(query)` | Search by name/description |
| `remove_skill(name)` | Uninstall a skill |
| `enable_skill(name)` | Re-enable a disabled skill |
| `disable_skill(name)` | Disable without removing |

## MCP Resources

| URI | Description |
|-----|-------------|
| `skill://index` | Index of all enabled skills |
| `skill://{name}` | Full SKILL.md content for a skill |

## SKILL.md Format

Follows the [agentskills.io](https://agentskills.io/specification) open standard:

```yaml
---
name: my-skill
description: What this skill does and when to use it
license: MIT
compatibility: Requires internet access
metadata:
  author: your-name
  version: "1.0"
---

# My Skill

Instructions the agent reads and follows...
```

## Examples

The `examples/` directory contains sample skills you can install to test the server:

| Skill | Description |
|-------|-------------|
| `web-search` | Search the web and summarize results |
| `code-reviewer` | Review code changes for bugs and improvements |
| `daily-standup` | Prepare daily standup summaries from git activity |

Install a sample skill from the repo:

```bash
# Start the server
skills-as-mcp

# Then from any MCP client, install a sample skill:
install_skill(url="https://raw.githubusercontent.com/sumododda/skills-as-mcp/main/examples/web-search/SKILL.md")
install_skill(url="https://raw.githubusercontent.com/sumododda/skills-as-mcp/main/examples/code-reviewer/SKILL.md")
install_skill(url="https://raw.githubusercontent.com/sumododda/skills-as-mcp/main/examples/daily-standup/SKILL.md")
```

Or install from a local file:

```bash
install_skill(content=open("examples/web-search/SKILL.md").read())
```

## Development

```bash
git clone https://github.com/sumo/skills-as-mcp.git
cd skills-as-mcp
pip install -e ".[dev]"
pytest -v
```

## License

MIT
