SkillForge
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SkillForgesave a skill: always use f-strings in Python"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
✨ 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 skillRelated MCP server: mcp_coordinator
🚀 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 |
| 📚 Active skill library |
| 🗄️ Automatic version history |
🔒 Override with
SKILLFORGE_SKILLS_DIRandSKILLFORGE_BACKUP_DIRenvironment variables.
🔧 Available Tools
Tool | Description |
🔍 | List all skills — mandatory first call before any task |
📖 | Load full skill instructions by name |
🔀 | Check existing skills before creating/improving — prevents duplication |
🧠 | Get a structured plan for skill improvement |
📖 | Load the skill writing best practices guide |
✏️ | Create or update a skill — validates and rejects if quality is insufficient |
🗑️ | Remove a skill (two-step confirmation, auto-backup) |
📋 | View version history for a skill |
⏪ | Roll back to a previous version |
📊 | 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 |
IMPROVE | Existing skill partially covers it | Optimize with |
CREATE | No relevant skill exists | Create via |
📝 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 |
| ✅ | Identifier ( |
| ✅ | Trigger conditions — WHAT it does + WHEN to use it (≥ 50 chars) |
| ❌ |
|
| ❌ |
|
| ❌ | Tools allowed without per-use approval |
| ❌ |
|
🧠 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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityBmaintenanceAn MCP server that provides AI agents with persistent, multi-layered memory inspired by the human brain, including consolidation, self-reflection, and generative replay.Last updated1MIT
- Alicense-qualityBmaintenanceA self-improving coding agent MCP server that enables code execution, semantic memory, and reusable skills via sub-agents, turning your AI client into a meta-operating system.Last updated2AGPL 3.0
- Alicense-qualityDmaintenanceA production-ready MCP server that equips AI agents with dynamic, persistent, and executable skills. It enables secure script execution and progressive disclosure to reduce context window usage.Last updated6MIT
- Alicense-qualityDmaintenanceA local MCP server that gives AI coding agents persistent memory and context across sessions.Last updated11MIT
Related MCP Connectors
Cloud-hosted MCP server for durable AI memory
An MCP server that integrates with Discord to provide AI-powered features.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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