Skip to main content

An MCP server that makes your AI agent learn and evolve โ€” one skill at a time.

Project description

PyPI MCP Server Python License Stars

๐Ÿ› ๏ธ SkillForge

An MCP server that makes your AI agent learn and evolve โ€” one skill at a time.

Skills are reusable instructions that get better with every conversation.

๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ๆ–‡ๆกฃ ยท ๐Ÿ“ฆ PyPI ยท ๐Ÿ› Issues


โœจ 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"]
    }
  }
}
๐Ÿ’ก Alternative: install from source
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.


Built with โค๏ธ by CatVinci Studio

Forging better AI, one skill at a time. ๐Ÿ”จ

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skillforge_mcp-0.2.0.tar.gz (75.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skillforge_mcp-0.2.0-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file skillforge_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: skillforge_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 75.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for skillforge_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3b9eb5f7aca94992f580628db72d9571d7a4cec3a494b3ba5ab2a99e6a4e0f9c
MD5 b340e4ed6b6f9b8a7ab7da33561f318f
BLAKE2b-256 64c3e4bacb76af8a8af6b7aab1261e0095127b60816172074fc5eca7f0abcfa0

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillforge_mcp-0.2.0.tar.gz:

Publisher: publish.yml on CatVinci-Studio/skillForge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file skillforge_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: skillforge_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 25.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for skillforge_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 72be72d576a8cffbeba44e1ccc39752e379dffefa723374adc434d94c2481064
MD5 961dd3306b18ee51af49b85f4c85d3cc
BLAKE2b-256 3540908df8061e5aedb7eb2a23ac95d3a54230433de62d8ddd2474a89c2fa613

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillforge_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on CatVinci-Studio/skillForge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page