skill2mcp
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., "@skill2mcpgenerate MCP server from ./skills/readme-generator.md"
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.
skill2mcp

skill2mcp is a TypeScript CLI/library that converts SKILL.md documents into MCP-ready tool definitions and can generate a minimal deployable MCP Server package from a single file or an entire skills directory.
The generated server uses the official MCP TypeScript SDK (@modelcontextprotocol/sdk) and supports stdio, http, or both transports.
Why this project
SKILL documents are usually semi-structured markdown (frontmatter + prose + tables). MCP tools require strict contracts (name, description, inputSchema).
skill2mcp bridges that gap with a layered pipeline:
Parse markdown into a stable Intermediate Representation (IR)
Transform IR into MCP tool definitions
Generate a deployable MCP server package with handler stubs
Current status
MVP implemented and working:
Deterministic parser (
strict,tolerant)Cascading semantic mode (
semantic) for missing metadata fallbackTool transformation (
SchemaBuilder,ToolMapper,ToolValidator)inspectoutput with MCP-style tool JSONbuildoutput with deployable MCP server packageGenerated server supports
stdio+httpbuild --watchfor iterative regeneration
Installation
Requirements
Node.js 20+
npm 10+
Local install
npm installBuild CLI
npm run buildQuick start
1. Parse a single SKILL
npm run parse -- ./fixtures/skills/valid-skill.md --mode strict2. Inspect generated tool definitions
npm run inspect -- ./fixtures/skills --mode tolerant3. Generate deployable MCP server package
npm run gen -- ./fixtures/skills --out ./generated/mcp-server --transport both --mode tolerant4. Run generated server
cd ./generated/mcp-server
npm install
npm run build
npm run start:stdio
# or
npm run start:httpHTTP endpoint:
POST /mcpCLI reference
parse
Converts SKILL markdown to IR JSON.
skill2mcp parse <input> [--mode strict|tolerant|semantic]Arguments:
<input>: path to a.mdfile or directory
Options:
--mode: parser mode (tolerantdefault)--format: currentlyjson
Output:
results[]with parsedSkillDocumentdiagnostics[]per source file
inspect
Converts parsed IR into MCP-like tool definitions.
skill2mcp inspect <input> [--mode strict|tolerant|semantic]Output:
tools[]: generated tool definitions (name,description,inputSchema)results[]: tool + diagnostics per source
build
Generates a deployable MCP server package from one or many skills.
skill2mcp build <input> --out <dir> [--transport stdio|http|both] [--mode strict|tolerant|semantic] [--watch]Arguments:
<input>: path to a.mdfile or directory
Required options:
--out: output directory for generated package
Optional options:
--transport: default generated server transport (bothdefault)--mode: parsing mode (tolerantdefault)--watch: regenerate package on source changes
Output:
generated package files (
package.json,tools.json,src/server.ts, handlers)diagnostics summary in JSON
Parse modes
strict
Fails on required metadata/schema gaps
Best for CI quality gates
tolerant
Continues with warnings for missing fields
Best for batch processing mixed-quality skills
semantic
Starts from tolerant parse
Attempts semantic extraction through OpenRouter (when configured)
Applies deterministic fallback inference for unresolved fields
Keeps diagnostics trace (
SEMANTIC_*codes)
OpenRouter configuration for semantic
Environment variables:
OPENROUTER_API_KEY: enables remote semantic extractionOPENROUTER_MODEL(optional): defaults toanthropic/claude-3.5-sonnetSKILL2MCP_CACHE_DIR(optional): override cache directoryOPENROUTER_HTTP_REFERER(optional): forwarded as OpenRouter headerOPENROUTER_X_TITLE(optional): forwarded as OpenRouter header
Cache behavior:
Semantic responses are cached by content hash in
.skill2mcp-cache/semantic-openrouter-cache.jsonIf cache is present, semantic mode reuses cache and avoids extra remote calls
Canonical SKILL.md format (recommended)
---
name: docx-generator
version: 1.0.0
description: Generate Word docs from structured markdown
tags: [documents, office]
---
## Parameters
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| content | string | yes | | Markdown content |
| title | string | yes | | Document title |
## Examples
**Input:** `{ content: "# Hello", title: "Report" }`
**Output:** report.docx generated at /outputs/
## Triggers
- "generate document"
- "create report"Generated package structure
generated/mcp-server/
package.json
tsconfig.json
README.md
tools.json
src/
server.ts
generated-tools.ts
handlers/
index.ts
<tool_name>.tsDevelopment
Scripts
npm run build # compile TypeScript
npm run test # run test suite
npm run parse # parse command entry
npm run inspect # inspect command entry
npm run gen # build command entryTest suite
Current automated coverage includes:
parser behavior (
strict,tolerant,semantic)schema builder and tool mapping
inspect command output contract
end-to-end build artifact generation
Engineering conventions
Follow repository collaboration rules in
AGENTS.mdProduct/business directives are governed by
ROADMAP.mdCommit messages must use
[AI]prefix when AI-generated
Release artifacts
This repo includes:
Dual-license distribution:
MIT OR Apache-2.0CHANGELOG.mdCONTRIBUTING.mdRELEASE_CHECKLIST.md
Collaboration model
Governance and decision rules:
GOVERNANCE.mdCode of conduct:
CODE_OF_CONDUCT.mdSecurity reporting:
SECURITY.mdSupport channels:
SUPPORT.md
Known limitations
Parameter parsing currently assumes markdown table format in
## ParametersSemantic mode prioritizes missing metadata and may enrich missing parameters when extraction is available
Watch mode tracks current tree; if deeply nested folders are added later, restart watch for complete coverage
Roadmap alignment
The active implementation follows phased delivery in ROADMAP.md.
GenAI integration policy (when enabled) prioritizes OpenRouter as default provider strategy, as defined in roadmap directives.
License
Licensed under either of:
MIT License (
LICENSE-MIT)Apache License 2.0 (
LICENSE-APACHE)
at your option.
This server cannot be installed
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/agenttic-ai-dev/skill2mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server