skills-mcp-server
skills-mcp-server
一个小型 Model Context Protocol (MCP) 服务器,可向任何 MCP 客户端公开 Cursor 风格的技能包 (SKILL.md 树)。它使用官方 TypeScript SDK 并支持:
stdio — 本地子进程模式(Cursor / Claude Desktop 启动命令的典型方式)。
Streamable HTTP —
POST /mcp上的远程模式(无状态),MCP 2025-03-26+。Legacy SSE —
GET /sse+POST /messages?sessionId=...,适用于期望旧版 HTTP+SSE 传输的客户端(包括许多 Cursor 远程设置)。
此包是客户端无关的:任何支持 MCP 的程序都可以使用它。
功能 (MCP 接口)
接口 | 用途 |
Resources |
|
Tools |
|
Prompts |
|
技能 ID 是从 SKILLS_ROOT 到包含 SKILL.md 的文件夹的 POSIX 路径(根级文件使用 ID _root)。
Related MCP server: MCP Skills Server
快速入门 (本地 stdio)
npm install
npm run build默认的 skills/ 包含从本仓库 .cursor/skills 复制的包。根据需要添加更多带有 SKILL.md 的文件夹。运行:
npx skills-mcp-server
# or: node dist/main.js在 Cursor MCP 设置中,使用基于命令的配置,且不设置 MCP_TRANSPORT 或设置为 stdio:
{
"mcpServers": {
"skills": {
"command": "node",
"args": ["C:/absolute/path/to/skills-mcp-server/dist/main.js"],
"env": {
"SKILLS_ROOT": "C:/absolute/path/to/your/skills"
}
}
}
}远程 (托管 — 无本地 stdio 的 Cursor)
使用 HOSTING_AND_CURSOR.md 获取免费层级主机(Render、Railway、Fly、Koyeb 等)、环境变量以及带有 url + headers 的 Cursor mcp.json。
端点(同一主机,HTTPS):
Streamable HTTP:
https://your-host/mcpLegacy SSE (通常最适合 Cursor 远程):
https://your-host/sse(消息发送至/messages)
健康检查:GET https://your-host/health。环境变量参考:env.example。
Claude / 其他客户端
任何支持 stdio 或 Streamable HTTP 的 MCP 客户端都可以连接到同一个服务器。使用您的 HTTPS URL 和(如果已启用)Bearer 令牌配置供应商的“远程 MCP”或“HTTP MCP”条目。
文档
HOSTING_AND_CURSOR.md— 免费托管、环境变量、Cursor 远程 MCP (url/ SSE 与 streamable 对比)。DEPLOYMENT.md— Docker、Compose、反向代理、操作清单。
许可证
MIT。
Available Tools
3 toolsget_skillA
Load the full SKILL.md contents for a skill id.
| Name | Required | Description | Default |
|---|---|---|---|
| skill_id | Yes | Skill id as returned by list_skills |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Load the full SKILL.md contents' with no details on side effects, authentication needs, or what 'full contents' entails (e.g., format, size limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no wasted words. Perfectly concise for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 param, no nested objects), the description is adequate but lacks guidance on return format or constraints, which would be helpful since there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the description adds no extra meaning beyond the schema's existing explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Load the full SKILL.md contents') and the resource ('for a skill id'), distinguishing it from sibling tools like list_skills and search_skills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing the full contents of a specific skill, but no explicit guidance on when to use versus alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsA
Return a manifest of available skills (id, title, description teaser). No filesystem paths are exposed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that no filesystem paths are exposed, implying safety. However, it does not mention auth requirements, rate limits, or other behavioral aspects. For a simple read operation, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and adds a concise safety note. Every word earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's extreme simplicity (no params, no output schema), the description adequately explains the return fields and a key behavioral trait. It provides sufficient context for an agent to invoke correctly, despite not contrasting with siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. According to guidelines, zero parameters yield a baseline of 4. The description adds no parameter info as there are none, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a manifest of available skills with specific fields (id, title, description teaser). It uses a specific verb 'Return' and resource 'manifest of available skills', and implicitly distinguishes from siblings like get_skill (single) and search_skills (filtered).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives (get_skill, search_skills). The context implies it is for listing all skills, but no guidance on when to choose it over the others is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_skillsA
Filter skills by free-text query over id, title, and description.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Case-insensitive substring match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It only describes the operation as filtering without mentioning safety (read-only), pagination, error handling, or what happens with no matches. Insufficient for a tool lacking annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 9 words, front-loaded with verb and resource, no redundant information. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has only one parameter and no output schema. While the description covers input, it fails to explain return values (e.g., what fields are returned, pagination). For a straightforward search, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'query' described as 'Case-insensitive substring match.' The description adds value by specifying which fields (id, title, description) are searched, going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Filter skills by free-text query over id, title, and description.' It specifies the verb (filter), resource (skills), and scope (fields searched), distinguishing from sibling tools get_skill and list_skills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit comparison to siblings or guidance on when to use vs alternatives. However, the context signals indicate siblings exist, and the purpose implies it's for searching, not retrieving a single skill or listing all.
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.
3 tool updates
v1.0.0- First observed
get_skill - First observed
list_skills - First observed
search_skills
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: retrieving full skill content by ID, listing all skills, and searching skills by query. No overlap or ambiguity.
All tool names follow the verb_noun pattern (get_skill, list_skills, search_skills), making them predictable and easy to understand.
Three tools is well-scoped for a skills server: listing, searching, and retrieving full details. No unnecessary extras or missing essentials.
The tool set covers the expected read-only operations for a skills repository: listing all, searching, and getting full content. No apparent gaps for its purpose.
Maintenance
Related MCP Connectors
Search and discover Agent Skills from the skills.sh registry. Powered by HAPI MCP server.
Search, fetch, lint, and install Agent Skills (SKILL.md) from the SkillMD registry.
Governed AI agent skills — one library, distributed to devs and exposed to remote agents over MCP.
The governed runtime for agent skills. Search the catalog and inspect a skill before running it.
Related MCP Servers
- AlicenseAqualityCmaintenanceConverts AI Skills (following Claude Skills format) into MCP server resources, enabling LLM applications to discover, access, and utilize self-contained skill directories through the Model Context Protocol. Provides tools to list available skills, retrieve skill details and content, and read supporting files with security protections.329Apache 2.0
- AlicenseNot gradedqualityCmaintenanceDynamically loads and exposes skills from a directory with hot-reloading support, enabling users to manage and query skill content via MCP resources and tools.13MIT
- AlicenseAqualityCmaintenanceMCP server that serves agent skills (SKILL.md bundles) to any MCP client, exposing them via tools and resources for tool-oriented and resource-aware clients.34 npmISC
- AlicenseNot gradedqualityCmaintenanceServes SKILL.md-based skills as MCP resources and tools over streamable HTTP, enabling remote discovery and retrieval of skill files with full YAML frontmatter parsing.Apache 2.0