[ PROMPT_NODE_24962 ]
server-types
[ SKILL_DOCUMENTATION ]
# MCP 服务器类型:深度解析
Claude Code 插件支持的所有 MCP 服务器类型的完整参考。
## stdio (标准输入/输出)
### 概述
将本地 MCP 服务器作为子进程执行,通过 stdin/stdout 进行通信。是本地工具、自定义服务器和 NPM 包的最佳选择。
### 配置
**基础:**
{
"my-server": {
"command": "npx",
"args": ["-y", "my-mcp-server"]
}
}
**带环境变量:**
{
"my-server": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/custom-server",
"args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
"env": {
"API_KEY": "${MY_API_KEY}",
"LOG_LEVEL": "debug",
"DATABASE_URL": "${DB_URL}"
}
}
}
### 进程生命周期
1. **启动**:Claude Code 使用 `command` 和 `args` 启动进程
2. **通信**:通过 stdin/stdout 进行 JSON-RPC 消息传递
3. **生命周期**:进程在整个 Claude Code 会话期间运行
4. **关闭**:Claude Code 退出时终止进程
### 使用场景
**NPM 包:**
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"]
}
}
**自定义脚本:**
{
"custom": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/my-server.js",
"args": ["--verbose"]
}
}
**Python 服务器:**
{
"python-server": {
"command": "python",
"args": ["-m", "my_mcp_server"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
### 最佳实践
1. **使用绝对路径或 ${CLAUDE_PLUGIN_ROOT}**
2. **为 Python 服务器设置 PYTHONUNBUFFERED**
3. **通过 args 或 env 传递配置,而不是 stdin**
4. **优雅地处理服务器崩溃**
5. **记录到 stderr,而不是 stdout(stdout 用于 MCP 协议)**
### 故障排除
**服务器无法启动:**
- 检查命令是否存在且可执行
- 验证文件路径是否正确
- 检查权限
- 查看 `claude --debug` 日志
**通信失败:**
- 确保服务器正确使用 stdin/stdout
- 检查是否有杂乱的 print/console.log 语句
- 验证 JSON-RPC 格式
## SSE (服务器发送事件)
### 概述
通过 HTTP 连接到托管的 MCP 服务器,使用服务器发送事件进行流式传输。最适合云服务和 OAuth 身份验证。
### 配置
**基础:**
{
"hosted-service": {
"type": "sse",
"url": "https://mcp.example.com/sse"
}
}
**带请求头:**
{
"service": {
"type": "sse",
"url": "https://mcp.example.com/sse",
"headers": {
"