Skip to main content
Glama

日本語

An MCP server that exposes the Agent Skill creation guide (9 phases) as MCP resources. AI agents retrieve only the phases they need on demand and follow the process to build SKILL.md files.

Quick Start

Claude Code:

claude mcp add skill-forge-mcp -- npx skill-forge-mcp

Gemini CLI:

gemini mcp add skill-forge-mcp -- npx skill-forge-mcp

VS Code (GitHub Copilot).vscode/mcp.json:

{
  "servers": {
    "skill-forge-mcp": {
      "command": "npx",
      "args": ["skill-forge-mcp"]
    }
  }
}

Cursor:

{
  "skill-forge-mcp": {
    "command": "npx",
    "args": ["skill-forge-mcp"]
  }
}
{
  "mcpServers": {
    "skill-forge-mcp": {
      "command": "npx",
      "args": ["skill-forge-mcp"]
    }
  }
}

Related MCP server: AutoLearn MCP Server

Usage

Ask your agent:

"I want to create a skill for React component design. Follow the SkillForge MCP process."

The agent will automatically:

  1. Fetch the process structure from process://manifest

  2. Read Phase 1 (process://phase/1) for scoping, run baseline measurements

  3. Record progress with mark_progress as it advances through each phase

  4. Generate the final SKILL.md following Phase 6 guidelines

Use search_process for keyword lookups across phases.

The 9 Phases

Phase

Name

Purpose

0

Skill Specification

SKILL.md structure and frontmatter

1

Scoping & Baseline

Measure failure patterns; define research scope

2

Domain Research

Establish quality criteria and theoretical foundations

3

Gap Analysis

Verify whether research alone enables the agent to act

4

Deep Implementation Research

Fill gaps with code examples, anti-patterns, validation

5

Structuring & Completeness

Confirm coverage across all categories

6

Distillation into SKILL.md

Condense into ≤500 lines; maximize token efficiency

7

Deploy & Validate

Place, verify spec compliance, security review

8

Evaluate & Iterate

Compare against baseline, improve iteratively

Features

  • Staged access — retrieve content at phase or section granularity

  • Cross-phase search — keyword search across all 9 phases

  • Progress tracking — record and query per-phase completion status

  • Prompt templatescreate_skill and resume_skill prompts for guided workflows

  • Structured outputoutputSchema + structuredContent on all tools for programmatic consumption

  • State persistence — optionally retain progress across sessions

  • Low overhead — ~1,500 token fixed cost to the context window

API

Resources

URI

Description

process://manifest

Full index (JSON)

process://phase/0process://phase/8

Phase 0–8 content

Resource Templates

Template

Description

process://phase/{phaseId}/section/{sectionName}

Retrieve a single section

process://phases/{+phaseIds}

Batch retrieval (e.g. 1,2,3)

Tools

Tool

Description

Input

search_process

Keyword search across all phases

{ "query": "frontmatter", "maxResults": 5 }

mark_progress

Record phase progress

{ "phaseId": 1, "status": "in-progress" }

get_status

Progress summary for all phases

{}

status: "not-started" · "in-progress" · "completed"

Prompts

Prompt

Description

create_skill

Full guided workflow (Phase 0→8). Accepts a topic argument.

resume_skill

Resume from current progress. Checks get_status and continues.

Configuration

Set SKILL_FORGE_PERSIST=true to persist progress to ~/.skill-forge-mcp/state.json:

{
  "mcpServers": {
    "skill-forge-mcp": {
      "command": "npx",
      "args": ["skill-forge-mcp"],
      "env": { "SKILL_FORGE_PERSIST": "true" }
    }
  }
}

Development

git clone https://github.com/popyson1648/skill-forge-mcp.git
cd skill-forge-mcp
npm install
npm run build
npm test          # 52 tests
src/
├── index.ts        # Entry point
├── content.ts      # Content loading & section extraction
├── search.ts       # Cross-phase search
├── state.ts        # State management & persistence
├── status.ts       # Status table formatter
├── content/        # English content (served)
└── content-ja/     # Japanese translations (developer reference only)
tests/
├── content.test.ts
├── search.test.ts
├── state.test.ts
├── resources.test.ts
└── tools.test.ts

Requirements: Node.js >= 18

Contributing

Contributions are welcome! Feel free to open an Issue or submit a Pull Request.

License

MIT

Available Tools

3 tools
get_statusGet StatusA
Read-onlyIdempotent

Return a summary of all phase progress (not-started/in-progress/completed) and access counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
phasesYesStatus of each phase

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the read-only nature is well established. The description adds useful context about what is summarized, but does not disclose additional behaviors such as caching, freshness, or access-count semantics beyond the annotation layer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It conveys the exact capability and even enumerates the status values, making efficient use of space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters), the presence of an output schema, and annotations covering safety/idempotency, the description is complete for an agent to understand what will happen. The only missing aspect is usage differentiation, which is already penalized in the usage_guidelines dimension.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter ambiguity to resolve. Schema description coverage is effectively 100% for an empty properties object, and the description correctly adds no irrelevant parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Return') and a specific resource ('a summary of all phase progress... and access counts'), which clearly distinguishes it from sibling tools like search_process and mark_progress. The inclusion of the status categories (not-started/in-progress/completed) adds concrete meaning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but gives no explicit guidance on when to use it versus alternatives such as search_process or mark_progress. There are no statements like 'use this for an overview' or 'use search_process for detailed filtering', leaving usage to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mark_progressMark ProgressB
Idempotent

Record progress status for a phase. status: 'not-started' | 'in-progress' | 'completed'.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoOptional note (e.g., '2 gaps from Phase 3 to address in Phase 4')
statusYesPhase status
phaseIdYesPhase ID (0-8)

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesNew status value
phaseIdYesPhase ID that was updated
updatedAtYesISO 8601 timestamp of the update

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only, idempotent, non-destructive write operation, but the description adds little beyond that. It restates the status enum from the schema and does not explain whether an existing status or note is overwritten, appended, or constrained by status transitions. There is no contradiction with the annotations, but also no meaningful additional behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that names the action, the object, and the allowed status values. It contains no filler, unnecessary clauses, or vague abstractions. The minor redundancy of the enum is acceptable given the brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter write tool with full schema coverage, an output schema, and idempotency annotations, the definition is largely sufficient for an agent to call it correctly. The main gap is the lack of explicit guidance for choosing this tool over the read/search siblings, plus no detail about status transition behavior, but neither is critical for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter already has a description and constraints. The tool description adds no new parameter semantics beyond repeating the status enum, which is redundant with the schema. The schema fully documents phaseId, status, and the optional note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action and target: 'Record progress status for a phase' and explicitly lists the three accepted status values. The verb 'record' contrasts naturally with the read/search nature suggested by sibling names get_status and search_process, making the tool easy to distinguish.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance about when to use this tool versus get_status or search_process. It does not mention that reading status should use get_status or that search_process is for broader process lookup. No exclusions, prerequisites, or alternative routing is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_processSearch ProcessA
Read-onlyIdempotent

Search all phases of the skill creation process by keyword. Case-insensitive partial match. Returns matching phase IDs, section names, and matched lines.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch keyword (case-insensitive partial match)
maxResultsNoMaximum number of results to return

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesTotal number of matches found
resultsYesArray of matching results with location info

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool readOnly and idempotent. The description augments them with concrete behavioral details: case-insensitive partial matching, the scope ('all phases'), and the exact return contents (phase IDs, section names, matched lines). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences that each carry distinct information: scope, matching rule, and return items. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only search with 2 parameters and an output schema, the description supplies all the behavioral context an agent needs to invoke it correctly: scope, match semantics, and return shape. Sibling differentiation is implicit but sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters completely, including query's matching semantics and maxResults' bounds/default, so baseline 3 applies. The description doesn't introduce parameter-level semantics beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Search'), a precise resource ('all phases of the skill creation process'), and the matching modality ('by keyword'). It clearly distinguishes from siblings get_status and mark_progress, which are status/update operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the search use case clear: find matches within skill creation phases by keyword. It does not explicitly name sibling alternatives or give exclusion criteria (e.g., when to use get_status instead), but the intent is unambiguous for a read-only search tool. Lacks an explicit when/when-not statement, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.1.0
    • First observedget_status
    • First observedmark_progress
    • First observedsearch_process

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct role: get_status reads overall progress, search_process searches content across phases, and mark_progress updates a phase status. There is no meaningful overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent imperative verb_noun pattern: get_status, search_process, mark_progress. The naming style is uniform, clear, and predictable.

Tool Count4/5

Three tools is on the smaller end for a full server, but it is a reasonable scope for a focused progress-tracking workflow. Each tool serves a necessary function without redundancy.

Completeness4/5

The core workflow is covered: check progress, search phase content, and update status. A minor gap is the lack of a direct full-phase retrieval tool, but the available tools cover the main use case without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI agents to dynamically create and reuse executable skills (Python functions) from natural language descriptions, with automatic skill crystallization and real-time MCP spec updates.
    43
    MIT