暂存
This commit is contained in:
123
MCP/test_config.py
Normal file
123
MCP/test_config.py
Normal file
@@ -0,0 +1,123 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
验证MCP服务器配置和环境
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
import json
|
||||
|
||||
def test_mcp_configuration():
|
||||
"""测试MCP配置是否正确"""
|
||||
print("🔍 MCP配置验证工具")
|
||||
print("=" * 50)
|
||||
|
||||
# 1. 检查Python环境
|
||||
print(f"✓ Python解释器: {sys.executable}")
|
||||
print(f"✓ Python版本: {sys.version}")
|
||||
|
||||
# 2. 检查工作目录
|
||||
mcp_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
print(f"✓ MCP目录: {mcp_dir}")
|
||||
|
||||
# 3. 检查MCP SDK
|
||||
sdk_path = os.path.join(mcp_dir, 'python-sdk', 'src')
|
||||
print(f"✓ SDK路径: {sdk_path}")
|
||||
print(f"✓ SDK存在: {os.path.exists(sdk_path)}")
|
||||
|
||||
# 4. 检查必要文件
|
||||
server_script = os.path.join(mcp_dir, 'mcpserver_stdio.py')
|
||||
env_file = os.path.join(mcp_dir, '.env')
|
||||
print(f"✓ 服务器脚本: {os.path.exists(server_script)}")
|
||||
print(f"✓ 环境文件: {os.path.exists(env_file)}")
|
||||
|
||||
# 5. 检查依赖包
|
||||
try:
|
||||
import mcp
|
||||
print("✓ MCP SDK: 已安装")
|
||||
except ImportError as e:
|
||||
print(f"❌ MCP SDK: 未安装 - {e}")
|
||||
|
||||
try:
|
||||
import dashscope
|
||||
print("✓ DashScope: 已安装")
|
||||
except ImportError as e:
|
||||
print(f"❌ DashScope: 未安装 - {e}")
|
||||
|
||||
try:
|
||||
import openai
|
||||
print("✓ OpenAI: 已安装")
|
||||
except ImportError as e:
|
||||
print(f"❌ OpenAI: 未安装 - {e}")
|
||||
|
||||
# 6. 生成正确的配置
|
||||
python_exe = sys.executable.replace("\\", "\\\\")
|
||||
mcp_dir_escaped = mcp_dir.replace("\\", "\\\\")
|
||||
sdk_path_escaped = sdk_path.replace("\\", "\\\\")
|
||||
|
||||
config = {
|
||||
"mcpServers": {
|
||||
"rimworld-knowledge-base": {
|
||||
"command": python_exe,
|
||||
"args": ["mcpserver_stdio.py"],
|
||||
"cwd": mcp_dir_escaped,
|
||||
"disabled": False,
|
||||
"alwaysAllow": [],
|
||||
"env": {
|
||||
"PYTHONPATH": sdk_path_escaped
|
||||
}
|
||||
}
|
||||
},
|
||||
"tools": {
|
||||
"rimworld-knowledge-base": {
|
||||
"description": "从RimWorld本地知识库(包括C#源码和XML)中检索上下文。",
|
||||
"server_name": "rimworld-knowledge-base",
|
||||
"tool_name": "get_context",
|
||||
"input_schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"question": {
|
||||
"type": "string",
|
||||
"description": "关于RimWorld开发的问题,应包含代码或XML中的关键词。"
|
||||
}
|
||||
},
|
||||
"required": ["question"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print("\\n📋 建议的MCP配置:")
|
||||
print("=" * 50)
|
||||
print(json.dumps(config, indent=2, ensure_ascii=False))
|
||||
|
||||
# 7. 测试服务器启动
|
||||
print("\\n🚀 测试服务器启动:")
|
||||
print("=" * 50)
|
||||
try:
|
||||
result = subprocess.run(
|
||||
[sys.executable, server_script],
|
||||
cwd=mcp_dir,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
timeout=10
|
||||
)
|
||||
if result.returncode == 0:
|
||||
print("✓ 服务器可以正常启动")
|
||||
else:
|
||||
print(f"❌ 服务器启动失败: {result.stderr}")
|
||||
except subprocess.TimeoutExpired:
|
||||
print("✓ 服务器启动正常(超时保护触发)")
|
||||
except Exception as e:
|
||||
print(f"❌ 服务器测试失败: {e}")
|
||||
|
||||
print("\\n🎯 配置建议:")
|
||||
print("=" * 50)
|
||||
print("1. 复制上面的配置到 Qoder IDE 的 MCP 设置中")
|
||||
print("2. 确保所有依赖包都已安装")
|
||||
print("3. 检查 .env 文件中的 API Key 配置")
|
||||
print("4. 重启 Qoder IDE 并重新连接 MCP 服务器")
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_mcp_configuration()
|
||||
Reference in New Issue
Block a user