skills-as-mcp
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., "@skills-as-mcplist my available skills"
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.
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 rootsParses YAML frontmatter for
nameanddescriptionExposes 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 promptsSupports:
stdiofor local coding tools and desktop clientshttpfor Streamable HTTP on/mcpssefor a compatibility server that exposes/mcp,/sse, and/messages
Related MCP server: Skillz
Installation
Run it directly with npx:
npx skills-as-mcp --skills-dir /absolute/path/to/skills --type stdioOr install it into a project:
npm install skills-as-mcpQuick 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 stdio3. 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 3000Compatibility mode with legacy SSE:
npx skills-as-mcp --skills-dir /absolute/path/to/my-skills --type sse --host 0.0.0.0 --port 3000In 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 skillSupports
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 stdioLibrary 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 buildUseful 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.
This server cannot be installed
Maintenance
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
- 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/windht/skills-as-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server