skills-as-mcp
Turns Claude-style skill folders into MCP tools, resources, and prompts for discovering and using skills.
README
skills-as-mcp
skills-as-mcp is a TypeScript MCP server that turns Claude-style skill folders
into MCP tools, resources, and prompts.
It is inspired by the Python project
biocontext-ai/skill-to-mcp,
but built for the TypeScript ecosystem and aligned with the official
Model Context Protocol server guidance.
What it does
- Recursively discovers
SKILL.mdfiles from one or many skill roots - Parses YAML frontmatter for
nameanddescription - Exposes three core MCP tools:
get_available_skillsget_skill_detailsget_skill_related_file
- Exposes MCP resources for the catalog and each discovered skill
- Exposes a
use_skillprompt for clients that support prompts - Supports:
stdiofor local coding tools and desktop clientshttpfor Streamable HTTP on/mcpssefor a compatibility server that exposes/mcp,/sse, and/messages
Installation
Run it directly with npx:
npx skills-as-mcp --skills-dir /absolute/path/to/skills --type stdio
Or install it into a project:
npm install skills-as-mcp
Quick Start
1. Create a skill directory
Your skills can live anywhere. Each skill needs its own directory and a
SKILL.md file with frontmatter:
my-skills/
└── release-helper/
├── SKILL.md
├── references/
└── scripts/
---
name: release-helper
description: Helps prepare package releases and changelogs.
---
# Release Helper
Instructions go here...
2. Run as a local MCP server
npx skills-as-mcp --skills-dir /absolute/path/to/my-skills --type stdio
3. Run as a remote server
Streamable HTTP only:
npx skills-as-mcp --skills-dir /absolute/path/to/my-skills --type http --host 0.0.0.0 --port 3000
Compatibility mode with legacy SSE:
npx skills-as-mcp --skills-dir /absolute/path/to/my-skills --type sse --host 0.0.0.0 --port 3000
In sse mode the server exposes:
/mcpfor Streamable HTTP clients/ssefor legacy SSE clients/messagesfor legacy POST requests
CLI Reference
npx skills-as-mcp --skills-dir <path> [--skills-dir <path> ...] --type <stdio|http|sse>
Options
--skills-dir <path>: Add a skill root. Repeat the flag to load multiple roots.--type <stdio|http|sse>: Select the transport mode.--host <host>: Host interface for HTTP modes. Default:127.0.0.1.--port <port>: Port for HTTP modes. Default:3000.
Environment variables
SKILLS_DIR: Single skill rootSKILLS_DIRS: Multiple skill roots joined by your OS path delimiterSKILLS_AS_MCP_TYPE: Same values as--typeSKILLS_AS_MCP_HOST: Same as--hostSKILLS_AS_MCP_PORT: Same as--port
SKILLS_DIRS uses : on macOS/Linux and ; on Windows.
MCP Surface Area
Tools
get_available_skills
- Returns every discovered skill with
name,description, andpath
get_skill_details
- Returns the
SKILL.mdcontent and the recursive file listing for a skill - Supports
return_typevalues ofcontent,file_path, andboth
get_skill_related_file
- Reads a specific file inside a skill directory
- Blocks directory traversal outside the skill root
- Supports
return_typevalues ofcontent,file_path, andboth
Resources
skills://catalogskills://<skill-name>
Prompts
use_skill
Example MCP Client Config
For clients that spawn local MCP servers over stdio, the shape is typically:
{
"mcpServers": {
"skills-as-mcp": {
"command": "npx",
"args": [
"skills-as-mcp",
"--skills-dir",
"/absolute/path/to/my-skills",
"--type",
"stdio"
]
}
}
}
For multiple skill roots:
{
"mcpServers": {
"skills-as-mcp": {
"command": "npx",
"args": [
"skills-as-mcp",
"--skills-dir",
"/absolute/path/to/team-skills",
"--skills-dir",
"/absolute/path/to/project-skills",
"--type",
"stdio"
]
}
}
}
Included Example
An example skill is included at
examples/skills/example-skill/SKILL.md
so you can try the package immediately:
npx skills-as-mcp --skills-dir ./examples/skills --type stdio
Library Usage
You can also import the core pieces directly:
import { SkillRegistry, createSkillsMcpServer } from "skills-as-mcp";
const registry = await SkillRegistry.fromSkillRoots(["./examples/skills"]);
const server = createSkillsMcpServer({ registry });
Development
npm install
npm run lint
npm test
npm run build
Useful commands:
npm run dev -- --skills-dir ./examples/skills --type stdionpm run dev -- --skills-dir ./examples/skills --type http --port 3000npm run dev -- --skills-dir ./examples/skills --type sse --port 3000
Notes
- Invalid skills are skipped with warnings instead of crashing the whole server.
- Duplicate skill names across roots are treated as a startup error.
- In
stdiomode all human-readable logs go tostderrso MCP traffic onstdoutstays clean.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.