Skip to main content
Glama

โœจ What is SkillForge?

SkillForge is a Model Context Protocol (MCP) server that gives your AI agent a persistent, evolving skill library. Instead of repeating the same corrections and preferences every session, SkillForge captures them as skills โ€” structured instructions that the agent loads and follows automatically.

๐Ÿ’ก Think of it as muscle memory for your AI โ€” it learns your conventions once and applies them forever.

๐Ÿ”„ The Feedback Loop

  ๐Ÿ‘ค User gives feedback
        โ”‚
        โ–ผ
  ๐Ÿ” Agent detects improvement signal
        โ”‚
        โ–ผ
  ๐Ÿ”€ Triage: reuse / improve / create?
        โ”‚
        โ–ผ
  โœ๏ธ Draft skill following guide + plan
        โ”‚
        โ–ผ
  ๐Ÿ›ก๏ธ Validation gate (reject or pass)
        โ”‚
        โ–ผ
  ๐Ÿ’พ Skill saved (auto-backed up)
        โ”‚
        โ–ผ
  โœ… Next task uses improved skill

๐Ÿš€ Quick Start

๐Ÿ“ฆ Installation

# Install from PyPI (recommended)
pip install skillforge-mcp

# Or with uv
uv pip install skillforge-mcp

โšก Run the Server

# Run directly
skillforge

# Or run without installing via uvx
uvx skillforge-mcp

๐Ÿ”Œ Connect to Claude Code

Add to your MCP config:

{
  "mcpServers": {
    "skillforge": {
      "command": "uvx",
      "args": ["skillforge-mcp"]
    }
  }
}
git clone https://github.com/CatVinci-Studio/skillForge.git
cd skillForge
pip install -e .

๐Ÿงฉ Architecture

src/skillforge/
โ”œโ”€โ”€ ๐Ÿ  server.py              # MCP server definition & prompts
โ”œโ”€โ”€ ๐Ÿ“จ response.py            # Response formatting & feedback monitor
โ”œโ”€โ”€ ๐Ÿ›ก๏ธ validator.py           # Hard validation gates for skill quality
โ”œโ”€โ”€ ๐Ÿ“ skill_manager.py       # Core CRUD, backup, restore logic
โ”œโ”€โ”€ ๐Ÿ”ง tools/
โ”‚   โ”œโ”€โ”€ ๐Ÿ” discovery.py       # list_skills, get_skill
โ”‚   โ”œโ”€โ”€ โœ๏ธ  crud.py            # save_skill (with validation), delete_skill
โ”‚   โ”œโ”€โ”€ ๐Ÿ’พ backup.py          # list_backups, restore_skill
โ”‚   โ”œโ”€โ”€ ๐Ÿ”€ triage.py          # triage_skill_request
โ”‚   โ””โ”€โ”€ ๐Ÿง  optimization.py    # get_skill_guide, request_skill_optimization
โ””โ”€โ”€ ๐Ÿ“– guide/
    โ””โ”€โ”€ skill_writing_guide.md # Best practices for skill authoring

๐Ÿ“‚ Runtime Data

SkillForge stores its data in ~/.skillforge/:

Directory

Purpose

~/.skillforge/skills/

๐Ÿ“š Active skill library

~/.skillforge/backups/

๐Ÿ—„๏ธ Automatic version history

๐Ÿ”’ Override with SKILLFORGE_SKILLS_DIR and SKILLFORGE_BACKUP_DIR environment variables.


๐Ÿ”ง Available Tools

Tool

Description

๐Ÿ” list_skills

List all skills โ€” mandatory first call before any task

๐Ÿ“– get_skill

Load full skill instructions by name

๐Ÿ”€ triage_skill_request

Check existing skills before creating/improving โ€” prevents duplication

๐Ÿง  request_skill_optimization

Get a structured plan for skill improvement

๐Ÿ“– get_skill_guide

Load the skill writing best practices guide

โœ๏ธ save_skill

Create or update a skill โ€” validates and rejects if quality is insufficient

๐Ÿ—‘๏ธ delete_skill

Remove a skill (two-step confirmation, auto-backup)

๐Ÿ“‹ list_backups

View version history for a skill

โช restore_skill

Roll back to a previous version

๐Ÿ“Š get_optimization_history

View the feedback log that drove skill changes


๐Ÿ›ก๏ธ Quality Gates (v0.2.0)

Unlike prompt-based quality control that depends on LLM compliance, SkillForge enforces quality through hard validation gates in save_skill:

Check

Type

Rule

๐Ÿ“ Description length

โŒ Error

Must be โ‰ฅ 50 characters

๐Ÿ“ Body length

โŒ Error

Must be 3โ€“500 lines

๐Ÿ”„ Description โ‰  name

โŒ Error

Description must explain, not repeat the name

๐ŸŽฏ Trigger conditions

โš ๏ธ Warning

Should include "when/whenever/use this skill..."

๐Ÿ—ฃ๏ธ Rigid language

โš ๏ธ Warning

Prefer reasoning over "YOU MUST ALWAYS" imperatives

๐Ÿ“ Description too long

โš ๏ธ Warning

Keep under 1000 chars, move details to body

๐Ÿ”ด Errors block the save โ€” fix them and retry. ๐ŸŸก Warnings allow the save but flag areas for improvement.

๐Ÿ”€ Skill Triage

Before creating a new skill, triage_skill_request returns all existing skills so the LLM can decide:

Decision

Condition

Action

REUSE

Existing skill covers the need

Load it with get_skill

IMPROVE

Existing skill partially covers it

Optimize with request_skill_optimization

CREATE

No relevant skill exists

Create via request_skill_optimization


๐Ÿ“ Skill Format

Each skill lives in its own directory as a SKILL.md file with YAML frontmatter:

---
name: my-skill
description: >
  What this skill does and when to trigger it.
  Use this skill whenever the user asks for...
  Also activate when...
---

# Skill Instructions

Your markdown instructions here...

๐Ÿท๏ธ Frontmatter Fields

Field

Required

Description

name

โœ…

Identifier (lowercase-with-hyphens, max 64 chars)

description

โœ…

Trigger conditions โ€” WHAT it does + WHEN to use it (โ‰ฅ 50 chars)

disable-model-invocation

โŒ

true = only user can invoke

user-invocable

โŒ

false = only LLM can invoke

allowed-tools

โŒ

Tools allowed without per-use approval

context

โŒ

fork = run in isolated sub-agent


๐Ÿง  How Optimization Works

SkillForge continuously monitors conversations for improvement signals:

Signal

Example

Action

๐Ÿ”ด Correction

"No, don't mock the database"

Update relevant skill

๐ŸŸก Preference

"Always use snake_case"

Create or update skill

๐Ÿ”ต Pattern

Same structure used 3+ times

Bundle into new skill

๐ŸŸข Explicit

"Add this to the review skill"

Direct skill edit

๐Ÿ”’ Safety Guarantees

  • โœ… Auto-backup before every save and delete

  • โœ… One-click restore from any backup timestamp

  • โœ… Path traversal protection on all file operations

  • โœ… Atomic writes with file locking for optimization logs

  • โœ… Hard validation gates โ€” quality enforced at the tool boundary, not by prompt


๐ŸŒŸ Why SkillForge?

Without SkillForge

With SkillForge

๐Ÿ˜ค Repeat the same corrections every session

๐Ÿง  Agent remembers and applies automatically

๐Ÿ“‹ Conventions scattered across docs

๐Ÿ“ฆ Single source of truth per topic

๐ŸŽฒ Inconsistent agent behavior

โœ… Deterministic, skill-guided responses

๐Ÿ”„ No learning from feedback

๐Ÿ“ˆ Skills evolve with every interaction

๐Ÿคž Hope the LLM follows quality guidelines

๐Ÿ›ก๏ธ Hard validation rejects low-quality skills


๐Ÿ›ฃ๏ธ Roadmap

  • ๐Ÿ›ก๏ธ Hard validation gates for skill quality

  • ๐Ÿ”€ Skill triage to prevent duplication

  • ๐ŸŒ Skill sharing & import from remote repositories

  • ๐Ÿ“Š Analytics dashboard for skill usage & effectiveness

  • ๐Ÿ”— Cross-skill dependency management

  • ๐Ÿงช Skill testing framework with evaluation harness

  • ๐Ÿช Community skill marketplace


๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


๐Ÿ“„ License

This project is licensed under the MIT License โ€” see the LICENSE file for details.


Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
0dRelease cycle
2Releases (12mo)

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CatVinci-Studio/skillForge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server