Skip to content

crypto-deploy/dify-mcp-server

 
 

Repository files navigation

dify-mcp-server

GitHub Release License: MIT 52 Tools

MCP server for Dify Console API — manage apps, workflows, knowledge bases, models, plugins, and MCP servers programmatically from Claude Code or any MCP client.

Works with self-hosted Dify v1.6+ instances (v1.10+ recommended for plugins and MCP tools).

What can you do?

  • Create and configure Dify apps from Claude Code
  • Import/export apps as YAML DSL templates
  • Build knowledge bases with datasets, documents, and segments
  • Manage model providers and set default models
  • Install, upgrade, and remove plugins
  • Connect MCP servers to Dify programmatically
  • Organize apps with tags
  • Browse conversation and message history

Quick Start

Option A: Homebrew (macOS / Linux):

brew tap overpod/tap
brew install dify-mcp-server

Option B: Download binary (no dependencies needed):

# macOS (Apple Silicon)
curl -L https://github.com/overpod/dify-mcp-server/releases/latest/download/dify-mcp-server-darwin-arm64 -o dify-mcp-server
chmod +x dify-mcp-server

# macOS (Intel)
curl -L https://github.com/overpod/dify-mcp-server/releases/latest/download/dify-mcp-server-darwin-x64 -o dify-mcp-server
chmod +x dify-mcp-server

# Linux (x64)
curl -L https://github.com/overpod/dify-mcp-server/releases/latest/download/dify-mcp-server-linux-x64 -o dify-mcp-server
chmod +x dify-mcp-server

Windows:

Invoke-WebRequest -Uri "https://github.com/overpod/dify-mcp-server/releases/latest/download/dify-mcp-server-windows-x64.exe" -OutFile "dify-mcp-server.exe"

Add to your .mcp.json:

{
  "mcpServers": {
    "dify": {
      "command": "./dify-mcp-server",
      "env": {
        "DIFY_BASE_URL": "https://your-dify-instance.com",
        "DIFY_EMAIL": "admin@example.com",
        "DIFY_PASSWORD": "your-password"
      }
    }
  }
}

Use from Claude Code:

"List all my Dify apps" "Create a new chat app called Customer Support" "Export the Customer Support app as YAML" "Connect an MCP server at https://mcp.example.com/sse to Dify" "What models are configured in my Dify instance?"

Alternative: From source

git clone https://github.com/overpod/dify-mcp-server
cd dify-mcp-server
bun install && bun run build
bun dist/index.js

Use Case Examples

Create an agent from template

1. export_app → get YAML DSL of an existing app
2. Edit the YAML (change prompt, model, tools)
3. import_dsl → import as a new app
4. publish_workflow → make it live
5. enable_api + create_api_key → get API access

Build a knowledge base

1. create_dataset → new knowledge base
2. create_document_by_text → add documents
3. Attach dataset to an app workflow

Connect MCP servers to Dify

1. create_mcp_server → add by URL (auto-discovers tools)
2. list_mcp_servers → verify connection
3. get_mcp_server_tools → see available tools
4. refresh_mcp_server_tools → update after changes

Manage model configuration

1. list_model_providers → see configured providers
2. list_models → check available models
3. set_default_model → set workspace default LLM

Development

git clone https://github.com/overpod/dify-mcp-server
cd dify-mcp-server
bun install
# Hot reload
DIFY_BASE_URL=https://your-dify.com DIFY_EMAIL=admin@example.com DIFY_PASSWORD=secret bun run dev

# Type check and lint
bun run check    # biome check
bun run build    # tsc

# Run tests
bun run test

# Test with MCP Inspector
npx @modelcontextprotocol/inspector bun dist/index.js

Requirements

  • Bun 1.3+
  • Self-hosted Dify v1.6+ instance
  • Dify admin account (email/password)

Contributing

  1. Fork the repo and create a branch from main
  2. Run bun run check — code must pass Biome linting
  3. Run bun run build — code must compile without errors
  4. Run bun run test — tests must pass
  5. Update CHANGELOG.md under ## [Unreleased]
  6. Keep PRs focused — one feature or fix per PR

Adding a new tool

  1. Add the API method to src/dify-client.ts
  2. Register the MCP tool in src/index.ts with Zod schema
  3. Add an entry to CHANGELOG.md

Code style

  • Formatter/linter: Biome (tabs, 100 line width)
  • Language: TypeScript strict mode
  • Run bun run fix to auto-format

Releases

Releases are automated. Tag and push:

git tag v0.7.0
git push --tags

GitHub Actions builds binaries for all platforms and creates a release with notes from CHANGELOG.

Auth Notes

  • Uses Dify's undocumented Console API (/console/api/)
  • Password is Base64-encoded (Dify's @decrypt_password_field)
  • Auth via HttpOnly cookies with CSRF token (Dify 1.9.2+)
  • Auto-login on first request, auto-retry on 401
  • Console API is internal — may change between Dify versions

License

MIT

About

MCP server for Dify Console API — programmatic agent creation, knowledge base management, DSL import/export, workflow control. Works with self-hosted Dify v1.6+.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 52.0%
  • JavaScript 48.0%