feat: Enhance deployment capabilities with direct server deployment tools, email configuration, and comprehensive documentation
This commit is contained in:
163
MCP_CONNECTION.md
Normal file
163
MCP_CONNECTION.md
Normal file
@@ -0,0 +1,163 @@
|
||||
# MCP 服务器连接说明
|
||||
|
||||
## 重要:MCP 服务器不监听端口!
|
||||
|
||||
MCP (Model Context Protocol) 服务器使用 **stdio(标准输入输出)** 传输,**不监听任何网络端口**。
|
||||
|
||||
这意味着:
|
||||
- ❌ 没有 HTTP 端点
|
||||
- ❌ 没有 WebSocket 连接
|
||||
- ❌ 不能通过浏览器访问
|
||||
- ✅ 通过进程间通信(stdin/stdout)与客户端通信
|
||||
|
||||
## 工作原理
|
||||
|
||||
```
|
||||
Cursor/Claude Desktop (客户端)
|
||||
↓ (启动进程)
|
||||
bun run src/index.ts (MCP 服务器)
|
||||
↓ (stdio 通信)
|
||||
工具执行和响应
|
||||
```
|
||||
|
||||
## 在 Cursor 中配置
|
||||
|
||||
### 本地运行(开发)
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"cloud-mcp": {
|
||||
"command": "bun",
|
||||
"args": ["run", "/Users/zijianchen/Desktop/my-project/cloud-mcp/src/index.ts"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 服务器运行(生产)
|
||||
|
||||
如果 MCP 服务器运行在远程服务器上:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"cloud-mcp": {
|
||||
"command": "ssh",
|
||||
"args": [
|
||||
"user@your-server",
|
||||
"cd /opt/cloud-mcp && bun run src/index.ts"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
或者如果服务器上已经通过 PM2/systemd 运行,可以通过 SSH 直接连接:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"cloud-mcp": {
|
||||
"command": "ssh",
|
||||
"args": [
|
||||
"user@your-server",
|
||||
"bun run /opt/cloud-mcp/src/index.ts"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 验证连接
|
||||
|
||||
### 1. 检查进程是否运行
|
||||
|
||||
```bash
|
||||
# 在服务器上
|
||||
ps aux | grep "bun.*index.ts"
|
||||
|
||||
# 或如果使用 PM2
|
||||
pm2 list | grep cloud-mcp
|
||||
|
||||
# 或如果使用 systemd
|
||||
sudo systemctl status cloud-mcp
|
||||
```
|
||||
|
||||
### 2. 测试 MCP 服务器
|
||||
|
||||
```bash
|
||||
# 直接运行测试
|
||||
cd /opt/cloud-mcp
|
||||
bun run src/index.ts
|
||||
|
||||
# 应该看到:
|
||||
# [INFO] Registering tools...
|
||||
# [INFO] All tools registered. Starting MCP server...
|
||||
# [INFO] MCP Server started
|
||||
```
|
||||
|
||||
### 3. 在 Cursor 中测试
|
||||
|
||||
1. 配置 MCP 服务器后
|
||||
2. 重启 Cursor
|
||||
3. 尝试使用任何工具(如 `deploy_status`)
|
||||
4. 如果连接成功,工具会正常执行
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: 为什么看不到端口监听?
|
||||
|
||||
**A**: MCP 使用 stdio,不需要端口。这是 MCP 协议的设计。
|
||||
|
||||
### Q: 如何知道服务器是否在运行?
|
||||
|
||||
**A**: 检查进程:
|
||||
```bash
|
||||
ps aux | grep "bun.*index.ts"
|
||||
```
|
||||
|
||||
### Q: 可以添加 HTTP 端点吗?
|
||||
|
||||
**A**: 可以,但需要修改代码使用 SSE 传输。当前实现使用 stdio,这是 MCP 的标准方式。
|
||||
|
||||
### Q: 如何调试连接问题?
|
||||
|
||||
**A**:
|
||||
1. 检查 Cursor 的 MCP 日志
|
||||
2. 在服务器上直接运行 `bun run src/index.ts` 查看错误
|
||||
3. 检查 SSH 连接是否正常(如果使用远程服务器)
|
||||
|
||||
## 添加健康检查端点(可选)
|
||||
|
||||
如果你需要一个 HTTP 端点来检查服务状态,可以添加一个简单的 HTTP 服务器:
|
||||
|
||||
```typescript
|
||||
// 在 src/index.ts 中添加
|
||||
import { serve } from "bun";
|
||||
|
||||
// 健康检查端点(可选)
|
||||
serve({
|
||||
port: 3000,
|
||||
fetch(req) {
|
||||
if (req.url.endsWith("/health")) {
|
||||
return new Response(JSON.stringify({ status: "ok" }), {
|
||||
headers: { "Content-Type": "application/json" },
|
||||
});
|
||||
}
|
||||
return new Response("Not Found", { status: 404 });
|
||||
},
|
||||
});
|
||||
|
||||
console.log("Health check server running on http://localhost:3000/health");
|
||||
```
|
||||
|
||||
但这只是用于健康检查,**MCP 通信仍然通过 stdio**。
|
||||
|
||||
## 总结
|
||||
|
||||
- MCP 服务器**不监听端口**,使用 stdio 通信
|
||||
- 在 Cursor 中配置时,指定 `command` 和 `args` 来启动进程
|
||||
- 服务器运行时,Cursor 会自动启动进程并通过 stdio 通信
|
||||
- 这是 MCP 协议的标准工作方式
|
||||
|
||||
Reference in New Issue
Block a user