🚀 MCP安全安裝器 (mcp-sinstaller
)
本項目提供了一個MCP服務器安裝器,它可以自動從GitHub倉庫中安裝並將其他MCP服務器容器化。該安裝器利用模型上下文協議(MCP)採樣功能來分析倉庫,並創建合適的Docker鏡像。
點擊查看相關內容
🚀 快速開始
✨ 主要特性
- 自動從GitHub倉庫安裝並容器化MCP服務器。
- 利用MCP採樣功能分析倉庫並創建Docker鏡像。
- 使用結構化命名方案避免多服務器安裝時的命名衝突。
📦 安裝指南
🔧 要求
💡 建議在VS Code Insiders中啟用採樣功能
在VS Code設置中添加以下內容:
"chat.mcp.serverSampling": {
"Global in Code - Insiders: sampling": {
"allowedDuringChat": true
}
}
💻 使用示例
基礎用法
推薦在VS Code中運行服務器
- uvx
git clone https://github.com/semcp/mcp-sinstaller.git
- 然後,在VS Code設置中添加以下內容:
"mcp-sinstaller": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"/path/to/mcp-sinstaller",
"python",
"/path/to/mcp-sinstaller/mcp_installer.py"
]
}
高級用法
服務器命名與多服務器安裝
安裝器使用結構化命名方案:owner-repo-servername
,以避免從同一倉庫安裝多個服務器時發生衝突。
示例:
https://github.com/modelcontextprotocol/servers/tree/main/src/fetch
→ modelcontextprotocol-servers-fetch
https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem
→ modelcontextprotocol-servers-filesystem
https://github.com/github/github-mcp-server
→ github-github-mcp-server
這種命名方式允許你從modelcontextprotocol/servers
等倉庫安裝多個MCP服務器而不會出現命名衝突。
示例(GitHub MCP服務器)
提示:"install https://github.com/github/github-mcp-server"
GitHub Copilot:
我將從你指定的倉庫安裝GitHub MCP服務器。
採樣 (MCP服務器):
輸入:
{
"url": "https://github.com/github/github-mcp-server"
}
輸出:
已成功為MCP服務器 'github-mcp-server' 構建Docker鏡像!
倉庫: https://github.com/github/github-mcp-server
位置: /Users/mossaka/.mcp-installer/servers/github-mcp-server
Docker鏡像:
- 使用現有Dockerfile
- 鏡像: mcp-installer-github-mcp-server
- 大小與創建時間: REPOSITORY:TAG SIZE CREATED AT
mcp-installer-github-mcp-server:latest 59.5MB 2025-06-09 14:52:46 -0700 PDT
- 端口: {}
- 環境變量: ['GITHUB_PERSONAL_ACCESS_TOKEN', 'GITHUB_TOOLSETS', 'GITHUB_DYNAMIC_TOOLSETS', 'GITHUB_READ_ONLY', 'GITHUB_HOST']
- 所需密鑰: ['GITHUB_PERSONAL_ACCESS_TOKEN']
- 元數據: /Users/mossaka/.mcp-installer/servers/github-mcp-server/metadata.json
運行容器 (STDIO傳輸):
1. 設置所需的環境變量(如果有):
export GITHUB_PERSONAL_ACCESS_TOKEN=your_actual_github_personal_access_token_here
2. 交互式運行容器:
docker run -i --rm --name mcp-github-mcp-server-container -e GITHUB_PERSONAL_ACCESS_TOKEN=GitHub個人訪問令牌 (必需) -e GITHUB_TOOLSETS=要啟用的工具集的逗號分隔列表 (可選) -e GITHUB_DYNAMIC_TOOLSETS=設置為1以啟用動態工具發現 (可選) -e GITHUB_READ_ONLY=設置為1以啟用只讀模式 (可選) -e GITHUB_HOST=GitHub Enterprise的自定義GitHub API端點 (可選) -e GITHUB_PERSONAL_ACCESS_TOKEN=${GITHUB_PERSONAL_ACCESS_TOKEN} mcp-installer-github-mcp-server
注意: 此服務器使用STDIO傳輸(標準輸入/輸出通信)。
- 容器以交互式模式運行 (-i標誌)
- 容器退出時將自動移除 (--rm標誌)
- 由於使用標準輸入/輸出,無需進行端口映射
3. 停止容器:
在運行容器的終端中按Ctrl+C
4. 使用MCP客戶端進行後臺操作:
使用你的MCP客戶端通過子進程/標準輸入輸出進行連接
太棒了!GitHub MCP服務器已成功安裝。安裝完成並構建了Docker鏡像。
以下是已安裝的內容:
服務器名稱: github-mcp-server
倉庫: https://github.com/github/github-mcp-server
Docker鏡像: mcp-installer-github-mcp-server:latest (59.5MB)
傳輸類型: STDIO(通過標準輸入/輸出通信)
所需配置: 服務器需要一個GITHUB_PERSONAL_ACCESS_TOKEN環境變量來與GitHub的API進行身份驗證。
可選環境變量:
GITHUB_TOOLSETS: 要啟用的工具集的逗號分隔列表
GITHUB_DYNAMIC_TOOLSETS: 設置為1以啟用動態工具發現
GITHUB_READ_ONLY: 設置為1以啟用只讀模式
GITHUB_HOST: GitHub Enterprise的自定義GitHub API端點
服務器現已準備好使用。要運行它,你需要設置GitHub個人訪問令牌,然後使用STDIO傳輸運行Docker容器以與MCP客戶端進行通信。
之後,你可以在代理的MCP設置中運行docker
來運行容器。
VS Code配置:
"github": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN=<PAT>",
"mcp-installer-github-mcp-server"
]
}
示例(fetch服務器)
提示:"install https://github.com/modelcontextprotocol/servers/tree/typescript-servers-0.6.2/src/fetch"
我將從你提供的特定路徑安裝fetch MCP服務器。
採樣 (MCP服務器)
輸入:
{
"url": "https://github.com/modelcontextprotocol/servers/tree/typescript-servers-0.6.2/src/fetch"
}
輸出:
已成功為MCP服務器 'modelcontextprotocol-servers-fetch' 構建Docker鏡像!
倉庫: https://github.com/modelcontextprotocol/servers/tree/typescript-servers-0.6.2/src/fetch
位置: /Users/mossaka/.mcp-sinstaller/servers/modelcontextprotocol-servers-fetch
Docker鏡像:
- 生成新的Dockerfile
- 鏡像: mcp-sinstaller-modelcontextprotocol-servers-fetch
- 大小與創建時間: REPOSITORY:TAG SIZE CREATED AT
mcp-sinstaller-modelcontextprotocol-servers-fetch:latest 654MB 2025-06-09 16:28:35 -0700 PDT
- 端口: {}
- 環境變量: []
- 所需密鑰: []
- 元數據: /Users/mossaka/.mcp-sinstaller/servers/modelcontextprotocol-servers-fetch/metadata.json
運行容器 (STDIO傳輸):
1. 設置所需的環境變量(如果有):
無需密鑰
2. 交互式運行容器:
docker run -i --rm --name mcp-modelcontextprotocol-servers-fetch-container mcp-sinstaller-modelcontextprotocol-servers-fetch
注意: 此服務器使用STDIO傳輸(標準輸入/輸出通信)。
- 容器以交互式模式運行 (-i標誌)
- 容器退出時將自動移除 (--rm標誌)
- 由於使用標準輸入/輸出,無需進行端口映射
3. 使用你的MCP客戶端通過子進程/標準輸入輸出傳輸進行連接
✅ fetch MCP服務器已成功安裝!
服務器已構建並準備好使用。以下是關鍵詳細信息:
服務器信息:
名稱: modelcontextprotocol-servers-fetch
倉庫: https://github.com/modelcontextprotocol/servers/tree/typescript-servers-0.6.2/src/fetch
傳輸: STDIO(標準輸入/輸出)
鏡像大小: 654MB
VS Code配置:
"fetch": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp-sinstaller-modelcontextprotocol-servers-fetch"
]
}