任务目标:Cline调用Dify工作流,按照用户的要求生成代码,Cline作为前端展示,可以直接将代码在vscode窗口中展示并执行。

# MCP

 模型上下文协议(Model Context Protocol,简称MCP) 是一种面向大语言模型及其应用的标准化交互协议。

- Cline(VSCode 插件)通过 MCP 协议调用后端能力(比如 Dify 提供的工作流)。

- MCP 守护进程接到 Cline 的请求后,转发给具体的后端服务(如 Dify)

- 结果再通过 MCP 定义的统一格式(通常是流式 SSE)返回给前端。

# 本地部署

- 下载docker
- https://github.com/langgenius/dify 下载后解压到路径 `path to your dify`,在powershell中执行:

```Bash
cd "path to your dify"
cp .env.example .env
docker compose up -d
docker compose ps
```

在浏览器中访问`localhost`即可访问本地dify。

更详细的官方文档参见:[Docker Compose 部署 - Dify Docs](https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose)

# Cline

一个AI编程助手VSCode插件,可以选用OpenRouter的API,搜索free调用免费模型。

# 集成

这里仅做Cline+Dify的集成示例,选用了一个非常简单的工作流。

1. 创建一个chatflow/workflow并发布
简单示例:包含一个必填的输入`query`

2. 下载Dify社区插件mcp-server

3. 点击API端点右方的“+”,添加一个mcp服务

- 端点名称:随意
- App:选择刚刚发布的chatflow/workflow
- 应用类型:chatflow选择chat,workflow选择workflow
- 应用输入schema
```json
{
    "name": "mcp-demo",
    "description": "a demo",
    "inputSchema": {
        "title": "mcp-demo",
        "type": "object",
        "properties": {
            "query": {
                "title": "query",
                "description": "用户问题",
                "type": "string"
            }
        },
        "required": [
            "query"
        ]
    }
}
```

| 字段                             | 含义                                    |
| ------------------------------ | ------------------------------------- |
| `name`                         | 插件名称                                  |
| `description`                  | 插件描述                                  |
| `inputSchema.title`            | schema 的标题                            |
| `inputSchema.type`             | 输入类型是 `object`                        |
| `inputSchema.properties.query` | 定义了一个字段叫 `query`,类型为 `string`,表示用户的问题 |
| `inputSchema.required`         | 表示 `query` 是必须字段                      |
这里的properties写query是和1.中的chatflow内容对应,required同理。保存后可以看到一个服务正常的API端点。

4. 复制第一个GET的`/sse` 后缀
可以在浏览器中测试,看到以下内容说明服务正常。

5. 在cline中集成MCP server

点击`add server` ,自动保存了一个`json`文件:
```json
{

  "mcpServers": {

    "mcp-demo": {

      "url": "http://localhost/e/a7ffsgpre5qed9gy/sse",

      "disabled": false,

      "autoApprove": []

    }

  }

}
```
一段时间后点击`installed` 可以看到:

说明添加mcp服务成功。

6. 测试

在Cline窗口中输入测试prompt:使用MCP服务写一段查询两个字符串的最小公共子串的python代码,并为我返回结果。执行过程中看到:

并且在Dify工作流日志中有:

调用MCP服务成功。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐