The Dify MCP Server enables integration of Dify workflows into MCP-compatible clients by exposing them as callable tools, allowing users to invoke Dify applications through the Model Context Protocol. It provides configuration flexibility through either environment variables or a YAML config file, supporting multiple Dify App Secret Keys to manage different workflows. This solves the problem of seamlessly connecting Dify's workflow automation platform with AI applications that support the MCP standard.
A simple implementation of an MCP server for using dify. It achieves the invocation of the Dify workflow by calling the tools of MCP.
base_url and app_sks, making it more convenient to use with cloud-hosted platforms.The server can be installed via Smithery or manually.
You can configure the server using either environment variables or a config.yaml file.
Set the following environment variables:
export DIFY_BASE_URL="https://cloud.dify.ai/v1"
export DIFY_APP_SKS="app-sk1,app-sk2" # Comma-separated list of your Dify App SKs
DIFY_BASE_URL: The base URL for your Dify API.DIFY_APP_SKS: A comma-separated list of your Dify App Secret Keys (SKs). Each SK typically corresponds to a different Dify workflow you want to make available via MCP.config.yamlCreate a config.yaml file to store your Dify base URL and App SKs.
Example config.yaml:
dify_base_url: "https://cloud.dify.ai/v1"
dify_app_sks:
- "app-sk1" # SK for workflow 1
- "app-sk2" # SK for workflow 2
# Add more SKs as needed
dify_base_url: The base URL for your Dify API.dify_app_sks: A list of your Dify App Secret Keys (SKs). Each SK typically corresponds to a different Dify workflow.You can create this file quickly using the following command (adjust the path and values as needed):
# Create a directory if it doesn't exist
mkdir -p ~/.config/dify-mcp-server
# Create the config file
cat > ~/.config/dify-mcp-server/config.yaml <<EOF
dify_base_url: "https://cloud.dify.ai/v1"
dify_app_sks:
- "app-your-sk-1"
- "app-your-sk-2"
EOF
echo "Configuration file created at ~/.config/dify-mcp-server/config.yaml"
When running the server (as shown in Step 2), you will need to provide the path to this config.yaml file via the CONFIG_PATH environment variable if you choose this method.
❓ If you haven't installed uv or uvx yet, you can do it quickly with the following command:
curl -Ls https://astral.sh/uv/install.sh | sh
{
"mcpServers": {
"dify-mcp-server": {
"command": "uvx",
"args": [
"--from","git+https://github.com/YanxingLiu/dify-mcp-server","dify_mcp_server"
],
"env": {
"DIFY_BASE_URL": "https://cloud.dify.ai/v1",
"DIFY_APP_SKS": "app-sk1,app-sk2",
}
}
}
}
or
{
"mcpServers": {
"dify-mcp-server": {
"command": "uvx",
"args": [
"--from","git+https://github.com/YanxingLiu/dify-mcp-server","dify_mcp_server"
],
"env": {
"CONFIG_PATH": "/Users/lyx/Downloads/config.yaml"
}
}
}
}
You can also run the dify mcp server manually in your clients. The config of client should like the following format:
{
"mcpServers": {
"mcp-server-rag-web-browser": {
"command": "uv",
"args": [
"--directory", "${DIFY_MCP_SERVER_PATH}",
"run", "dify_mcp_server"
],
"env": {
"CONFIG_PATH": "$CONFIG_PATH"
}
}
}
}
or
{
"mcpServers": {
"mcp-server-rag-web-browser": {
"command": "uv",
"args": [
"--directory", "${DIFY_MCP_SERVER_PATH}",
"run", "dify_mcp_server"
],
"env": {
"CONFIG_PATH": "$CONFIG_PATH"
}
}
}
}
Example config:
{
"mcpServers": {
"dify-mcp-server": {
"command": "uv",
"args": [
"--directory", "/Users/lyx/Downloads/dify-mcp-server",
"run", "dify_mcp_server"
],
"env": {
"DIFY_BASE_URL": "https://cloud.dify.ai/v1",
"DIFY_APP_SKS": "app-sk1,app-sk2",
}
}
}
}
At last, you can use dify tools in any client who supports mcp.