feat: add toolset presets for large MCP clients#51
Open
franktronics wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add toolset presets and exclusion filters so users can reduce the number of MCP tools exposed to clients/providers that struggle with very large tool lists.
By default, behavior stays unchanged: all Dokploy tools are loaded.
Changes
DOKPLOY_TOOL_PRESETall(default)minimalcoredeploydatabasesgitDOKPLOY_DISABLED_TAGSto exclude categories after selecting a preset or explicit tag list.DOKPLOY_ENABLED_TAGSas exact-control override.Presets
minimal:project,applicationcore:project,server,applicationdeploy:project,environment,server,application,domain,deploymentdatabases:postgres,redis,mysql,mariadb,mongo,libsqlgit:github,gitlab,bitbucket,gitea,gitProvider,registry,sshKeyWhy
The server exposes hundreds of tools when all Dokploy API categories are enabled. Some MCP clients and LLM providers can time out(e.g. GPT models) or fail when ingesting very large tool lists.
This allows us to maintain full API coverage by default while providing users with a documented way to reduce the number of tools.
Configuration precedence
DOKPLOY_ENABLED_TAGStakes precedence when set.DOKPLOY_TOOL_PRESETselects a predefined toolset.DOKPLOY_DISABLED_TAGSis applied last.DOKPLOY_TOOL_PRESET=all.Testing
npx --yes pnpm@10.24.0 test -- src/server.test.tsnpx --yes pnpm@10.24.0 type-checknpx --yes pnpm@10.24.0 lintnpx --yes pnpm@10.24.0 buildManual smoke checks:
DOKPLOY_TOOL_PRESET=minimalloads 40 toolsDOKPLOY_TOOL_PRESET=coreloads 57 toolsDOKPLOY_ENABLED_TAGS=project,application,postgresloads 56 tools