Mcp Skill Server

io.github.jcc-ne由 GitHub 帳號 jcc-ne 發布v0.1.2更新於 Oct 24, 2026

An MCP server that mounts your skill directory and add deterministic entry for deployment

已驗證STDIO僅桌面開發者工具AI 與機器學習

概覽

AI 產生的概覽

掛載本機技能目錄,讓助理透過固定的進入指令列出、檢視並執行你的 Python 技能。

可以做什麼
  • 列出與檢視技能:列舉掛載目錄中的技能,並顯示每個技能的指令與參數,參數由 --help 輸出解析而來。
  • 執行技能:依 SKILL.md 中宣告的進入指令,帶參數執行技能。
  • 重新載入技能:編輯或新增技能後重新整理清單,不必重啟即可生效。
  • 建立與驗證:命令列工具可建立新的技能資料夾,並檢查 frontmatter、進入指令、腳本檔案與說明輸出是否符合部署需求。
適用情境
適合在 Claude Code、Cursor 或 Claude Desktop 中於本機開發代理技能,邊寫邊在實際工作中使用,之後再以固定進入點把同一個技能部署到正式環境。也適合希望按需探索技能、而非一次載入全部技能的情境。
執行需求
以本機程序執行,從 PyPI 安裝並以 uvx 或 uv 啟動,需傳入技能目錄路徑。技能為使用 argparse 的 Python 腳本,並附有包含 name、description 與 entry 欄位的 SKILL.md。僅限桌面編輯器;未宣告帳號或 API 金鑰。
安裝前請注意
伺服器會在你的電腦上執行技能腳本,因此只掛載可信任的技能目錄;實際執行的是 SKILL.md 中宣告的進入指令。技能可寫出輸出檔案,若啟用選用的 Google Cloud Storage 輸出處理器,產生的檔案會上傳到儲存桶。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Mcp Skill Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Most coding assistants now support skills natively, so an MCP server just for skill discovery isn't necessary. Where this package adds value is making skills' execution deterministic and deployable — with a fixed entry point and controlled execution, skills developed in your editor can run in non-sandboxed production environments. It also supports incremental loading, so agents discover skills on demand instead of loading everything upfront.


MCP Skill Server

[CI] [PyPI] [Python] [License]

Build agent skills where you work. Write a Python script, add a SKILL.md, and your agent can use it immediately. Iterate in real-time as part of your daily workflow. When it's ready, deploy the same skill to production — no rewrite needed.

Why?

Most skill development looks like this: write code → deploy → test in a staging agent → realize it's wrong → redeploy → repeat. It's slow, and you never get to actually use the skill while building it.

MCP Skill Server flips this. It runs on your machine, inside your editor — Claude Code, Cursor, or Claude Desktop. You develop a skill and use it in your real work at the same time. That tight feedback loop (edit → save → use) means you discover what's missing naturally, not through artificial test scenarios. The premise is if the skill doesn't work well with Claude Code, it's unlikely to work with a less sophisticated agent.

How skills mature to survive in the outside world

Claude skills can already have companion scripts, but there's no formalized entry point — the agent decides how to invoke them. That works for local use, but it's not deployable: a production MCP server can't reliably call a skill if the execution path isn't fixed.

MCP Skill Server enforces a declared entry field in your SKILL.md frontmatter (e.g. entry: uv run python my_script.py). This gives you a single, fixed entry point that the server controls. Commands and parameters are discovered from the script's --help output — that's the source of truth, not the LLM's interpretation of your code.

1. Claude/coding agent skill                → SKILL.md + scripts, but no fixed entry — agent decides how to run them2. Local MCP skill (+ entry)   → Fixed entry point, schema from --help, usable daily via this server3. Production                  → Same skill, same entry — deployed to your enterprise MCP server

Sharpen locally, then harden for production

Every agent that connects to the MCP server gets the same interface — list_skills, get_skill, run_skill — so the skill's description, parameter names, and help text are identical regardless of which agent calls them. That said, different agents have different strengths — a skill that works locally still needs testing with your production agent.

  1. Use it yourself — build the skill, use it daily via Claude Code or Cursor. Fix descriptions and param names when the agent misuses the skill.
  2. Test with a weaker model — try a smaller model to surface interface ambiguity.
  3. Add a deterministic entry point — declare entry in SKILL.md for reliable, secure execution. Use skill init to scaffold it, skill validate to check readiness.
  4. Test with your production agent — verify end-to-end in your target environment, then deploy.

Install

Claude Desktop (one-click)

[Install with Claude Desktop]

After installing, edit the skills path in your Claude Desktop config to point to your skills directory.

Claude Code

bash
claude mcp add skills -- uvx mcp-skill-server serve /path/to/my/skills

Cursor

Add to .cursor/mcp.json in your project (or Settings → MCP → Add Server):

json
{  "mcpServers": {    "skills": {      "command": "uvx",      "args": ["mcp-skill-server", "serve", "/path/to/my/skills"]    }  }}

Manual install

bash
# From PyPI (recommended)uv pip install mcp-skill-server
# Or from sourcegit clone https://github.com/jcc-ne/mcp-skill-servercd mcp-skill-server && uv sync
# Run the serveruvx mcp-skill-server serve /path/to/my/skills

Then add to your editor's MCP config:

json
{  "mcpServers": {    "skills": {      "command": "uvx",      "args": ["mcp-skill-server", "serve", "/path/to/my/skills"]    }  }}

Creating a Skill

Option A: Use skill init (recommended)

bash
# Create a new skilluv run mcp-skill-server init ./my_skills/hello -n "hello" -d "A friendly greeting"
# Or use the standalone commanduv run mcp-skill-init ./my_skills/hello -n "hello" -d "A friendly greeting"
# Promote an existing prompt-only Claude skill to a runnable MCP skilluv run mcp-skill-init ./existing_claude_skill

Option B: Manual setup

1. Create a folder with your script
my_skills/└── hello/    ├── SKILL.md    └── hello.py
2. Add SKILL.md with frontmatter
yaml
---name: hellodescription: A friendly greeting skillentry: uv run python hello.py---
# Hello Skill
Greets the user by name.
3. Write your script with argparse
python
# hello.pyimport argparse
parser = argparse.ArgumentParser(description="Greeting skill")parser.add_argument("--name", default="World", help="Name to greet")args = parser.parse_args()
print(f"Hello, {args.name}!")

That's it. The server auto-discovers commands and parameters from your --help output — no config needed.

Validating for Deployment

When a skill is ready to graduate to production:

bash
uv run mcp-skill-server validate ./my_skills/hello# oruv run mcp-skill-validate ./my_skills/hello

Checks:

  • Required frontmatter fields (name, description, entry)
  • Entry command uses allowed runtime
  • Script file exists
  • Commands discoverable via --help

How It Works

MCP Tools

The server exposes four tools to your agent:

ToolDescription
list_skillsList all available skills
get_skillGet details about a skill (commands, parameters)
run_skillExecute a skill with parameters
refresh_skillsReload skills after you make changes

Schema Discovery

The server automatically discovers your skill's interface by parsing --help output:

python
# Subcommands become separate commandssubparsers = parser.add_subparsers(dest='command')analyze = subparsers.add_parser('analyze', help='Run analysis')
# Arguments become parameters with inferred typesanalyze.add_argument('--year', type=int, required=True)  # int, requiredanalyze.add_argument('--file', type=str)                  # string, optional

Output Files

Files saved to output/ are automatically detected. Alternatively, print OUTPUT_FILE:/path/to/file to stdout.

Plugins

Output Handlers

Process files generated by skills (upload, copy, transform, etc.):

python
from mcp_skill_server.plugins import OutputHandler, LocalOutputHandler
# Default: tracks local file pathshandler = LocalOutputHandler()
# Optional GCS handler (requires `uv sync --extra gcs`)from mcp_skill_server.plugins import GCSOutputHandlerhandler = GCSOutputHandler(    bucket_name="my-bucket",    folder_prefix="skills/outputs/",)

Response Formatters

Customize how execution results are formatted in MCP tool responses:

python
from mcp_skill_server.plugins import ResponseFormatter
class CustomFormatter(ResponseFormatter):    def format_execution_result(self, result, skill, command):        return f"Result: {result.stdout}"
# Use with create_server()from mcp_skill_server import create_serverserver = create_server(    "/path/to/skills",    response_formatter=CustomFormatter())

Development

bash
git clone https://github.com/jcc-ne/mcp-skill-servercd mcp-skill-serveruv sync --devuv run pytestuv run mcp-skill-server serve examples/

Further Reading

  • Tool Design for LLMs — Why skills use a list/get/run pattern instead of exposing raw tools, and how it affects LLM accuracy

License

MIT

來源:README.md,提交 b9b34f8

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分