Because tool definitions are generated from each app's own parameter spec, changing an application's inputs in Dify changes the tool without a redeploy, and adding an app is one more entry in `AGENT_API_KEYS`. The flip side is that a wrong or revoked key surfaces as a missing tool rather than a clear error, so start with one key and confirm the tool appears before adding the rest. Pointing `BASE_URL` at a self-hosted Dify keeps everything inside your own network.
A bridge between an MCP client and Dify applications. Given a list of Dify API keys, it fetches each application's metadata and parameter specification and generates a matching MCP tool, so the tools an agent sees are whatever apps you pointed it at.
- One tool per Dify application, named `dify_app_info_{application_name}`
- Tool interfaces built from each app's own parameter specification, covering text, paragraph and select-dropdown inputs
- Support for both blocking and streaming response modes
- Automatic retries on failed requests, with configurable timeout
- JSON BigInt handling, so large numeric values survive the round trip
- Adding an application is adding its key — no tool definitions to write
Node.js v16 or higher and npm. Published as dify-mcp-server version 0.1.0; the documented path is clone, `npm install`, `npm run build`, then point your client at `build/index.js`. Three environment variables: `AGENT_API_KEYS` is a comma-separated list of Dify API keys, `BASE_URL` defaults to `https://api.dify.ai` and can point at a self-hosted instance, `TIMEOUT` is in milliseconds and defaults to 60000.
Build from source — clone the repository and build it, then point your client at the binary
