mirror of
https://github.com/Lydanne/spaceflow.git
synced 2026-03-12 04:02:45 +08:00
chore: 初始化仓库
This commit is contained in:
100
docs/guide/commands/mcp.md
Normal file
100
docs/guide/commands/mcp.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# mcp — MCP 服务
|
||||
|
||||
启动 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) 服务器,聚合所有已安装 Extension 提供的 MCP 工具。
|
||||
|
||||
## 基本用法
|
||||
|
||||
```bash
|
||||
# 启动 MCP Server
|
||||
spaceflow mcp
|
||||
|
||||
# 启动 MCP Inspector(调试模式)
|
||||
spaceflow mcp --inspector
|
||||
```
|
||||
|
||||
## 工作原理
|
||||
|
||||
1. **扫描 Extension** — 加载所有已安装的 Extension
|
||||
2. **收集工具** — 查找带有 `@McpServer` 装饰器的类,提取其 MCP 工具定义
|
||||
3. **启动服务** — 通过 stdio 传输协议启动 MCP Server
|
||||
4. **注册工具** — 将所有工具注册到 MCP Server,支持 JSON Schema 参数校验
|
||||
|
||||
## MCP Inspector
|
||||
|
||||
使用 `--inspector` 启动 MCP Inspector,提供 Web UI 调试界面:
|
||||
|
||||
```bash
|
||||
spaceflow mcp --inspector
|
||||
```
|
||||
|
||||
Inspector 会自动下载并启动 `@modelcontextprotocol/inspector`,提供:
|
||||
|
||||
- 工具列表查看
|
||||
- 工具调用测试
|
||||
- 请求/响应日志
|
||||
|
||||
## 在编辑器中配置
|
||||
|
||||
### Claude Desktop
|
||||
|
||||
在 `claude_desktop_config.json` 中添加:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"spaceflow": {
|
||||
"command": "spaceflow",
|
||||
"args": ["mcp"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cursor
|
||||
|
||||
在 `.cursor/mcp.json` 中添加:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"spaceflow": {
|
||||
"command": "spaceflow",
|
||||
"args": ["mcp"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 开发 MCP 工具
|
||||
|
||||
Extension 可以通过 `@McpServer` 和 `@McpTool` 装饰器暴露 MCP 工具:
|
||||
|
||||
```typescript
|
||||
import { McpServer, McpTool, Injectable } from "@spaceflow/core";
|
||||
|
||||
@McpServer({ name: "my-tools", description: "我的工具集" })
|
||||
@Injectable()
|
||||
export class MyMcpTools {
|
||||
@McpTool({
|
||||
name: "hello",
|
||||
description: "打招呼",
|
||||
inputSchema: {
|
||||
type: "object",
|
||||
properties: {
|
||||
name: { type: "string", description: "名字" },
|
||||
},
|
||||
required: ["name"],
|
||||
},
|
||||
})
|
||||
async hello(args: { name: string }): Promise<string> {
|
||||
return `Hello, ${args.name}!`;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 命令行选项
|
||||
|
||||
| 选项 | 简写 | 说明 |
|
||||
|------|------|------|
|
||||
| `--inspector` | `-i` | 启动 MCP Inspector 调试模式 |
|
||||
| `--verbose` | `-v` | 详细日志(`-v` 基本,`-vv` 详细,`-vvv` 调试) |
|
||||
Reference in New Issue
Block a user