# Skill Library MCP Server
An MCP server that manages a GitHub-backed shared skill library for Claude Code. Skills are markdown files (`SKILL.md`) organized in folders. The server handles sync, discovery, and sharing.
This instance serves a bundle of cache design, implementation, and operations skills.
Written in Rust, shipped as a single static binary.
## Install
```bash
cargo install --path .
# or build a release binary
cargo build --release
```
The resulting binary lives at `target/release/creamtop`.
## Configuration
Set these environment variables:
| `SKILL_REPO_OWNER` | Yes | GitHub repo owner |
| `SKILL_REPO_NAME` | Yes | GitHub repo name |
| `GITHUB_TOKEN` | For publish | GitHub PAT with repo access |
| `SKILL_CACHE_DIR` | No | Cache path (default: platform cache dir + `skill-library/`) |
| `RUST_LOG` | No | Log filter for `tracing` (e.g. `info`, `debug`) |
## Claude Code Integration
Add to your Claude Code MCP settings:
```json
{
"mcpServers": {
"skill-library": {
"command": "/path/to/creamtop",
"env": {
"SKILL_REPO_OWNER": "your-org",
"SKILL_REPO_NAME": "skill-library",
"GITHUB_TOKEN": "ghp_..."
}
}
}
}
```
## Tools
| `list_skills` | List all cached skills |
| `load_skill(name)` | Load a skill's content (fetches from GitHub if not cached) |
| `sync_skills` | Pull latest skills from GitHub into the local cache |
| `publish_skill(name, content)` | Push a skill to the shared GitHub repo |
| `search_skills(query)` | Search skills by name, description, or tags |
## Skill Format
Each skill lives in a directory with a `SKILL.md` file. Frontmatter is optional:
```markdown
---
description: A useful skill for code review
tags: [review, quality]
---
# Code Review
Your skill content here...
```
Without frontmatter, the skill name comes from the directory and the description from the first paragraph.
## Development
```bash
cargo build # debug build
cargo test # run unit tests
cargo run # run the server on stdio (needs env vars set)
cargo clippy # lints
```