Repository navigation
List every registered tool in the MCP server card - #588
Merged
Merged
Conversation
0.7.0 advertised `tools: ['dynamic']`, so directories and monitoring that read the card would see no tools. Derive the card from the registry that createTransloaditMcpServer() fills, so the 8 core tools and the 9 Builtin shortcuts are listed with the same schemas tools/list serves. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
Why
@transloadit/mcp-server 0.7.0 changed the server card to
tools: ['dynamic']. Smithery, other directories and our monitoring read the card's tool list, so the hosted server would advertise no tools once 0.7.0 is deployed. The Builtin shortcut tools come from the staticmcpBuiltinTemplateManifest, so the card can list them alongside the core tools.What
createTransloaditMcpServer()records each tool it registers (RegisteredToolreturned byregisterTool()), exposed throughlistOwnTools(server).buildServerCard()builds a throwaway server and maps that registry to the 0.6.x card shape (name,title,description,inputSchema,annotations,securitySchemes), converting input schemas with the SDK's owntoJsonSchemaCompatoptions. The card now lists 17 tools: 8 core tools plus 9 Builtin shortcuts. Signature unchanged.inputSchemas on the card are the static onestools/listserves before an authenticated catalog narrowsfields.tool-surface.test.ts: card tool names, schemas, annotations and security schemes equal whattools/listserves for every registered tool (catalog read failing, so no shortcut is filtered), and the card is not['dynamic']. Hosted/self-hosted card tests get their 0.6.xsecuritySchemesassertions back.Checks
yarn workspace @transloadit/mcp-server test:unit(254 passed),lint:ts,test/e2e/server-card.test.ts,yarn lint:js,lint:changesets,lint:deps,knip.🤖 Claimed by kvz on
framework1/node-sdksince 2026-10-18 · resume:claude --resume 26eaa88e-b3fa-4cc1-bcce-0c7ff5b6bab7