MCPServerLauncher PowerShell模块
描述
MCPServerLauncher -这是一个PowerShell模块,用于自动启动和管理MCP(模型上下文协议)服务器。该模块支持多种服务器类型:
- stdio服务器 -通过标准I/O线程执行PowerShell脚本
- HTTPS 服务器 提供REST API
- WordPress CLI 服务器 -通过命令行管理WordPress
要求
- PowerShell 7.0或更高版本
- Windows、Linux或macOS
- 启动后台进程的权限
安装
选项1:手动安装
- 将模块文件复制到PowerShell模块目录之一:
# Узнать доступные пути для модулей
$env:PSModulePath -split [IO.Path]::PathSeparator
# Рекомендуемая директория для пользовательских модулей
$modulePath = "$HOME\Documents\PowerShell\Modules\MCPServerLauncher"- 创建目录并复制文件:
New-Item -Path $modulePath -ItemType Directory -Force
Copy-Item *.psd1, *.psm1 -Destination $modulePath- 导入模块:
Import-Module MCPServerLauncher选项2:从本地存储库安装
# Из директории проекта
Install-Module -Name .\MCPServerLauncher -Scope CurrentUser快速启动
导入模块
Import-Module MCPServerLauncher启动所有服务器
# Запуск с ожиданием (блокирующий режим)
Start-MCPServerLauncher
# Запуск без ожидания (фоновый режим)
Start-MCPServerLauncher -NoWait
# Краткая форма
Start-MCP检查服务器状态
# Полная форма
Get-MCPServerStatus
# Краткая форма
Get-MCPStatus停止所有服务器
# Полная форма
Stop-MCPServers
# Краткая форма
Stop-MCP重新启动服务器
# Полная форма
Restart-MCPServers
# Краткая форма
Restart-MCP可用的命令
启动MCPServerLauncher
启动所有可用的MCP服务器。
参数:
-ConfigPath-具有配置的目录路径(默认情况下:src\config)-NoWait-服务器启动后不要等待
实例:
# Запуск с параметрами по умолчанию
Start-MCPServerLauncher
# Запуск с пользовательским путем к конфигурациям
Start-MCPServerLauncher -ConfigPath 'C:\MyProject\config'
# Запуск в фоновом режиме
Start-MCPServerLauncher -NoWait停止MCP服务器
停止所有运行的MCP服务器。
实例:
Stop-MCPServers获取MCPServer状态
显示所有注册MCP服务器的状态。
实例:
Get-MCPServerStatus输出示例:
=== СТАТУС MCP СЕРВЕРОВ ===
✓ powershell-stdio (PID: 12345)
✓ powershell-https (PID: 12346)
✗ wordpress-cli (остановлен)
Запущено серверов: 2 / 3重新启动MCP服务器
重新启动所有MCP服务器(停止并重新启动)。
参数:
-ConfigPath-具有配置的目录路径
实例:
Restart-MCPServers测试MCPServer运行
检查指定的服务器是否已运行。
参数:
-ServerName-要验证的服务器名称
返回: $true 如果服务器启动,否则 $false
实例:
if (Test-MCPServerRunning -ServerName 'powershell-stdio') {
Write-Host 'STDIO сервер запущен'
}获取MCPServerLog
显示MCP Launcher日志。
参数:
-Tail-要显示的最后一行数(默认为50行)-Follow-实时跟踪日志文件的更新
实例:
# Показать последние 50 строк
Get-MCPServerLog
# Показать последние 100 строк
Get-MCPServerLog -Tail 100
# Следить за логами в реальном времени
Get-MCPServerLog -Follow
# Комбинация параметров
Get-MCPServerLog -Tail 20 -Follow别名
为了方便使用,提供了短别名:
全队别名 |----------------|-----------| | Start-MCPServerLauncher | Start-MCP | | Stop-MCPServers | Stop-MCP | | Get-MCPServerStatus | Get-MCPStatus | | Restart-MCPServers | Restart-MCP |
项目结构
模块在以下位置搜索服务器脚本(按优先级排序):
- `
\src\servers\`
- `
\servers\`
- `
\`
哪里 -这是模块所在的目录。
记录
模块在用户临时目录中创建日志文件:
# Путь к лог-файлу
$env:TEMP\mcp-launcher.log使用以下命令查看日志:
Get-MCPServerLog -Follow服务器
该模块支持以下服务器:
1.PowerShell stdio服务器
脚本 : Start-McpStdioServer.ps1
描述: 通过标准I/O线程执行PowerShell脚本的服务器
日志文件: $env:TEMP\mcp-server.log
2.PowerShell https服务器
脚本 : Start-McpHTTPSServer.ps1
描述: HTTPS服务器提供REST API
3. WordPress的CLI服务器
脚本 : Start-McpWPCLIServer.ps1
描述: 通过命令行管理WordPress的服务器
使用示例
例1:基本启动
# Импорт модуля
Import-Module MCPServerLauncher
# Запуск всех серверов
Start-MCP
# Проверка статуса
Get-MCPStatus
# Остановка всех серверов
Stop-MCP例2:系统启动时自动启动
添加PowerShell配置文件($PROFILE):
# Автоматический импорт и запуск MCP серверов
Import-Module MCPServerLauncher
Start-MCPServerLauncher -NoWait例3:服务器监控
# Запуск серверов в фоне
Start-MCP -NoWait
# Мониторинг статуса каждые 10 секунд
while ($true) {
Clear-Host
Get-MCPStatus
Start-Sleep -Seconds 10
}例4:检查并重新启动停止的服务器
if (-not (Test-MCPServerRunning -ServerName 'powershell-stdio')) {
Write-Host 'STDIO сервер остановлен, перезапуск...'
Restart-MCP
}故障排除
服务器无法启动
- 检查服务器脚本是否位于正确的目录中。
- 检查脚本执行权限:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser- 检查日志:
Get-MCPServerLog -Tail 100服务器启动,但立即停止
- 检查服务器日志
- 确保已安装所有依赖项
- 检查服务器配置文件
模块不导入
- 检查模块是否位于目录中。
$env:PSModulePath - 查看PowerShell版本:
$PSVersionTable.PSVersion需要PowerShell 7.0或更高版本。
配置
环境变量
模块支持以下服务器环境变量:
POWERSHELL_EXECUTION_POLICY-服务器进程运行策略(默认情况下:RemoteSigned)
工作目录
所有服务器都使用安装在项目根目录中的工作目录运行,以确保相对路径正常工作。
许可证
MIT许可证
版权所有(c)2025 hypo69
特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:
上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。
软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。
作者
hypo69
- github:
支持
有关错误报告和建议,请使用GitHub Issues。
变化历史
版本1.0.1
- 自动启动MCP服务器
- 服务器生命周期管理
- 支持STDIO、HTTPS和WordPress CLI服务器
- 详细日志
- 监视服务器状态
- 命令别名方便
- 完整的文档和示例
📦 MCP服务器-最终文件包
🎯 概述
为MCP Servers Collection项目提供完整的修复、增强和集成文件包。
创建日期: 2025-01-24\ 版本: 1.0.0\ 状态: ✅ 准备使用
______________________________________________________________________
📥 下载文件
🆕 新的/修正的文件(8)
1. python_client.py (17 KB)
描述: MCP服务器的完整Python客户端
- 支持HTTPS和STDIO协议
- 上下文管理器
- 完全类型化
- 9公共方法
______________________________________________________________________
2. McpWpCli服务器 (20 KB)
描述: WordPress CLI MCP服务器(从空文件修复)
- STDIO协议
- JSON自动输出
- 2工具:
run-wp-cli,check-wp-cli - 检查WP-CLI可用性
______________________________________________________________________
3. env_loder.py (8.5 KB)
描述: 环境变量加载工具
- 阶级
EnvLoader与.env一起工作 - 阶级
EnvConfig典型配置 - 自动搜索.env文件
- 强制变量验证
- 全球功能
load_env(),get_env(),get_config()
用途:
from env_loader import load_env, get_env, get_config
# Загрузка .env
load_env()
# Получение переменной
api_key = get_env('GEMINI_API_KEY')
# Получение полной конфигурации
config = get_config()
print(config.wordpress_url)______________________________________________________________________
4. .env.示例 (3.2 KB)
描述: 环境变量文件示例(没有真正的秘密)
- 所有必要变量
- 俄语评论
- 链接到哪里获取API密钥
- 安全placeholder值
用途:
# Копировать как .env
cp .env.example .env
# Отредактировать своими значениями
nano .env______________________________________________________________________
5. 微笑。 (1.8 KB)
描述: 保护秘密不落入Git
- 阻止.env文件
- 封锁所有机密文件
- 阻止日志,缓存,临时文件
- env.example的例外
重要的是: 添加到项目根!
______________________________________________________________________
6. 要求_mcp.txt (1.2 KB)
描述: Python依赖于Python-Dotenv
- ✅ python dotenv>=1.0.0 -使用.env
- psutil、请求、urllib3
- mcp,hugginface中心
- pytest,黑色,pylint,mypy
安装:
pip install -r requirements_mcp.txt______________________________________________________________________
7. README_MCP.md (16kb)
描述: 整个系列的主要自述
- 描述所有6个服务器
- 4客户描述
- 安装说明
- 使用示例
- 安全
______________________________________________________________________
8. 集成_指南.md (14 KB)
描述: Hypotez集成指南
- 项目目标结构
- 6整合步骤
- 创建代码 __初始化__南美国家巴拉圭的缩写(Paraguay)
- 创建Header.py的代码
- claude desktop下载
______________________________________________________________________
📋 索引和参考文件(2)
9. FILE_INDEX.md (17 KB)
描述: 所有项目文件的完整索引
- 每个文件的详细描述
- 分类统计
- 准备状态检查表
______________________________________________________________________
10. 最终包装.md (此文件)
描述: 包含所有链接的最终包清单
______________________________________________________________________
📚 OS Tools文档(7个文件)
11. mcp_server.py (32 KB)
描述: 操作系统MCP服务器
- 与env_loader集成
- 指令和路径验证
- 11工具
______________________________________________________________________
12. mcp_os_tools.py (30kb)
描述: 操作系统工具
______________________________________________________________________
13. mcp_client_example.py (16kb)
描述: 客户使用示例
______________________________________________________________________
14. install.py (12 KB)
描述: 自动安装工
______________________________________________________________________
15. mcp_server_configure.json (5.9 KB)
描述: OS Tools服务器配置
______________________________________________________________________
16-21. 文件 (README.md、QUICKSTART.md、CONFIG_GUIDE.md、идр。)
- README.md (11kb)
- QUICKSTART.md (7.1 KB)
- CONFIG_GUIDE.md (15 KB)
- JSON_RPC_EXAMPLES.md (11kb)
- 总结.md (11kb)
- UPDATE_NOTES.md (15 KB)
______________________________________________________________________
📊 数据包统计
分类档案大小状态 |-----------|--------|--------|--------| | Python代码 |5|~95kb|✅ | | powershell下载 |1|20kb|✅ | | 配置 |4|~11kb|✅ | | 文件 |11|~120kb|✅ | | 总共 | 21 | ~246 KB | ✅ |
______________________________________________________________________
🔑 关键改进
✅ 安全
- .env 文件 所有的秘密都在环境的变化。
- .env.example 文件 -安全模板没有秘密
- .gitignore 文件 -防止意外泄露机密
- env_loder.py -安全加载变量
✅ 修正的文件
- python_client.py -从零创建(为空)
- McpWpCli服务器 -创建正确(PS1为空)
- 要求_mcp.txt -添加Python-Dotenv
✅ 新功能
- 从.env下载 Envloader类
- 类型配置 -数据类EnvConfig
- 自动搜索.env -在几个标准地点
- 变量验证 -验证强制密钥
______________________________________________________________________
🚀 快速启动
步骤1:下载文件
从上面的链接下载所有文件。
步骤2:创建.env文件
# Скопируйте пример
cp .env.example .env
# Отредактируйте своими значениями
nano .env步骤3:建立依赖关系
pip install -r requirements_mcp.txt步骤4:使用环境变量
from env_loader import load_env, get_env, get_config
# Автоматическая загрузка при импорте
# load_env() уже вызвана
# Получение переменной
api_key = get_env('GEMINI_API_KEY')
# Получение конфигурации
config = get_config()
print(f"WordPress URL: {config.wordpress_url}")
print(f"Server timeout: {config.mcp_server_timeout}")______________________________________________________________________
📁 集成结构
hypotez/src/mcp/
├── .env # ❌ НЕ коммитить! (создать из .env.example)
├── .env.example # ✅ Скачать
├── .gitignore # ✅ Скачать
├── requirements_mcp.txt # ✅ Скачать
│
├── utils/
│ └── env_loader.py # ✅ Скачать (новый)
│
├── clients/
│ └── python_client.py # ✅ Скачать (исправлен)
│
├── servers/
│ ├── McpWpCliServer.ps1 # ✅ Скачать (исправлен)
│ └── mcp_server.py # ✅ Скачать
│
├── tools/
│ └── mcp_os_tools.py # ✅ Скачать
│
├── config/
│ └── mcp_server_config.json # ✅ Скачать
│
├── examples/
│ └── mcp_client_example.py # ✅ Скачать
│
├── docs/
│ ├── README.md # ✅ Скачать
│ ├── QUICKSTART.md # ✅ Скачать
│ ├── CONFIG_GUIDE.md # ✅ Скачать
│ ├── JSON_RPC_EXAMPLES.md # ✅ Скачать
│ ├── SUMMARY.md # ✅ Скачать
│ └── UPDATE_NOTES.md # ✅ Скачать
│
├── README_MCP.md # ✅ Скачать
├── INTEGRATION_GUIDE.md # ✅ Скачать
├── FILE_INDEX.md # ✅ Скачать
└── install.py # ✅ Скачать______________________________________________________________________
🔒 秘密安全
⚠️ 批判性重要!
- 从来 不要提交文件
.env在Git - 总是 使用
.env.example模板 - 检查 什么
.gitignore原地 - 使用 不同的
.envdev/staging/prod
✅ 正确处理秘密:
# 1. Создать .env из примера
cp .env.example .env
# 2. Отредактировать ТОЛЬКО .env (не .env.example!)
nano .env
# 3. Добавить реальные секреты в .env
GEMINI_API_KEY=AIzaSy... # ваш реальный ключ
WORDPRESS_PASSWORD=... # ваш реальный пароль
# 4. Проверить что .env в .gitignore
cat .gitignore | grep ".env"
# 5. Убедиться что .env не отслеживается Git
git status # .env не должен быть в списке
# 6. Коммитить ТОЛЬКО .env.example
git add .env.example .gitignore
git commit -m "Add .env.example and .gitignore"______________________________________________________________________
🔧 使用env_loader
例1:简单使用
from env_loader import get_env
# Получение переменной
api_key = get_env('GEMINI_API_KEY')
# С значением по умолчанию
port = get_env('MCP_HTTPS_PORT', '8443')例2:使用配置
from env_loader import get_config
config = get_config()
print(f"WordPress URL: {config.wordpress_url}")
print(f"WordPress Username: {config.wordpress_username}")
print(f"Server Timeout: {config.mcp_server_timeout}")
print(f"Block Dangerous Commands: {config.block_dangerous_commands}")例3:显式下载
from env_loader import load_env, get_env
# Загрузка из конкретного файла
load_env('/path/to/custom/.env')
# Теперь переменные доступны
api_key = get_env('GEMINI_API_KEY')例4:在MCP服务器上
import header
from header import __root__
from src import gs
from src.logger.logger import logger
# Загрузка переменных окружения
from env_loader import get_config
class MCPServer:
def __init__(self):
# Загрузка конфигурации из .env
self.env_config = get_config()
# Использование переменных
self.timeout = self.env_config.mcp_server_timeout
self.port = self.env_config.mcp_https_port
logger.info(f'Server timeout: {self.timeout}s')
logger.info(f'Server port: {self.port}')______________________________________________________________________
📝 示例.env文件(具有安全值)
# AI API Keys
GEMINI_API_KEY=your_key_here
HUGGINGFACE_TOKEN=hf_your_token_here
# GitHub
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here
# WordPress
WORDPRESS_URL=https://your-site.com
WORDPRESS_USERNAME=your_username
WORDPRESS_PASSWORD=your_password
WORDPRESS_API_KEY=xxxx xxxx xxxx xxxx xxxx xxxx
WORDPRESS_PATH=/var/www/html/wordpress
# MCP Server
MCP_SERVER_TIMEOUT=300
MCP_HTTPS_PORT=8443
MCP_HTTPS_HOST=localhost
MCP_AUTH_TOKEN=your_secure_token
# Logging
PYDOLL_LOG_LEVEL=INFO
PYDOLL_DEBUG=false
# Security
BLOCK_DANGEROUS_COMMANDS=true
MAX_OUTPUT_SIZE=100000______________________________________________________________________
✅ 检查清单
开始工作前:
- \[\]全部21个文件下载
- \[\]由.env.example创建的.env
- \[\]在.env中添加了真实的秘密
- \[\]已建立依赖关系:
pip install -r requirements_mcp.txt - \[\]gitignore(
.env应该在名单上) - \[\].ENV未添加到Git中
与Hypotez集成:
- \[\]创建目录结构
- \[\]已复制所有文件
- \[\]创建 __初始化__.py文件(Integrationu Guide.md中的代码)
- \[\]由Header.py创建(Integrationu Guide.md中的代码)
- \[\]测试开始:
python clients/python_client.py
______________________________________________________________________
🎉 准备好了!
所有文件都可以使用。按照上面的说明进行集成。
重要的是: 永远记住秘密的安全!
______________________________________________________________________
📞 补充文件
- README_MCP.md -所有服务器的完整描述
- 集成_指南.md -逐步集成
- FILE_INDEX.md -索引所有文件
- CONFIG_GUIDE.md -配置手册
______________________________________________________________________
🎊 包装已准备好使用!
日期: 2025-01-24\ 版本: 1.0.0\ 文件: 21\ 尺寸: ~246 KB
