MCP服务器

一个基于TypeScript的MCP服务器,连接MCP客户端和Dify应用,动态将Dify应用暴露为可在MCP客户端中直接使用的工具。

  • by zhuzhoulin
  • JavaScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 zhuzhoulin/dify-mcp-server

使用说明

Dify MCP服务器

英语 | 中文

一个基于TypeScript的MCP(模型上下文协议)服务器,将MCP客户端连接到Dify应用程序。此服务器动态地将Dify应用程序公开为可以直接在MCP客户端中使用的工具。

概述

此服务器实现了模型上下文协议,以在MCP客户端和Dify应用程序之间架起桥梁。它从Dify API动态获取应用程序规范,并将其作为MCP工具公开。服务器允许用户通过MCP客户端内的统一界面与多个Dify应用程序进行交互。

特性

动态Dify集成

  • 使用API密钥连接到多个Dify应用程序
  • 自动获取应用程序元数据和参数
  • 根据Dify应用程序规范动态生成工具接口
  • 支持各种输入类型,包括文本、段落和选择下拉菜单

请求处理

  • 通过请求重试进行稳健的错误处理
  • 支持阻塞和流式响应模式
  • JSON BigInt处理大数值

配置

  • 通过环境变量配置的API密钥
  • 可配置的基本URL和超时设置
  • 当环境变量不可用时,回退到默认值

安装

先决条件

  • Node.js(v16或更高版本)
  • npm或纱线

设置

  1. 克隆存储库
git clone https://github.com/zhuzhoulin/dify-mcp-server.git
cd dify-mcp-server
  1. 安装依赖项
npm install
  1. 构建项目
npm run build

与Windsurf IDE集成

要与Windsurf IDE一起使用,请将服务器配置添加到MCP设置中:

{
  "mcpServers": {
    "dify-mcp-server": {
      "command": "node",
      "args": [
        "/path/to/dify-mcp-server/build/index.js"
      ],
      "env": {
        "AGENT_API_KEYS": "key1,key2,key3",
        "BASE_URL": "https://api.dify.ai",
        "TIMEOUT": "60000"
      }
    }
  }
}

环境变量

  • AGENT_API_KEYS:Dify API密钥的逗号分隔列表
  • BASE_URL:Dify API的基本URL(默认值:https://api.dify.ai)
  • TIMEOUT:请求超时(毫秒)(默认值:60000)

如何获取环境变量

API密钥(AGENT_API_KEYS): 多个以,分割

用法

配置后,Dify MCP服务器将:

  1. 使用提供的API密钥连接到指定的Dify应用程序
  2. 获取应用程序元数据和参数规范
  3. 根据Dify应用程序配置生成MCP工具接口
  4. 在Windsurf IDE中提供这些工具

每个Dify应用程序都将作为一个单独的工具公开,其名称格式为 dify_app_info_{application_name}.

发展

可用脚本

  • npm run build:构建项目
  • npm run prepare:准备项目分发
  • npm run watch:观察变化并重建
  • npm run inspector:运行MCP检查器进行调试

项目结构

  • src/index.ts:主服务器实现
  • src/request.ts:用于Dify API通信的HTTP客户端
  • src/type.ts:Dify API的TypeScript接口

故障排除

如果您遇到问题:

  1. 验证您的API密钥是否正确并具有必要的权限
  2. 检查是否可以从您的环境访问BASE_URL
  3. 查看服务器日志以了解详细的错误消息
  4. 确保Dify应用程序配置正确且可访问

许可证

此项目根据LICENSE文件中指定的条款获得许可。