-
Notifications
You must be signed in to change notification settings - Fork 78
feat(input): allow empty tools and actors to allow greater control of exposed tools #218
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
We’ll need to create a new PR or incorporate all the changes we discussed with Honza. |
I would be for creating a new PR and either base it from this branch or merge it into this branch where we would also refactor/simplify the whole input/parameter handling. I agree, that we should include everything in a one PR/release. |
* feat: refactor and unify input handling, remove unnecessary logic * feat: vibe new mcp input spec * fix: remove unnecessary addTool in mcp/server.ts * fix: fix stdio.only add-actor tool related circular dependency cause by import of getActorsAsTools and pass it as internal tool arg instead. * fix test suite, clean up * fix tests and logic to adhere to the new spec * refactor code * lint * rename to fetch-actor-details * improve readme * update stdio help * improve test case names * fix and improve the call-actor generic tool * more spec new spec complience tests * lint * one more test, just in case * address pr comment and refactor the process input func * fix: Delete example clients, update Readme (#239) fix: Delete clients (in examples). They are not used and outdated anyway. Also update README.md * Update tests/unit/input.test.ts Co-authored-by: Jiří Spilka <[email protected]> * Update tests/unit/input.test.ts Co-authored-by: Jiří Spilka <[email protected]> * Update README.md Co-authored-by: Jiří Spilka <[email protected]> * address review comments * clean up imports and update comments for clarity, export functions for internal repo --------- Co-authored-by: Jiří Spilka <[email protected]>
closes #214
also handles this feature request https://console.apify.com/actors/1lSvMAaRcadrM1Vgv/issues/uMIkLfBQgw1hy8M95
Currently, default tools (Actor details, search, and add Actor — unless explicitly disabled via
enableAddingActors) anddocscategory tools are always enabled and cannot be disabled. This is poor UX — some users may want access only to docs and not call Actors, or may want access to just a single Actor without any other tools.This PR addresses that. When the user does not specify any parameters (e.g.,
?actorsor?tools), the default tools are loaded as specified in the README. However, if the user specifies, for example,tools=storage, only thestoragetools category will be loaded, along with theadd-actortool and the default RAG web browser Actor — both of which can also be disabled if needed.With this change, users can disable all Actors and tools entirely by setting parameters to empty values, such as
?actors=&tools=&enableAddingActors=false. This configuration would expose no tools from the MCP server, rendering it effectively useless — but it demonstrates the fine-grained control now available.tools=storagebut still expectdocstools to be available (since they're currently loaded by default). While this is a potentially "breaking" change, we should consider it minor. Users should explicitly list the tool categories they actively use and avoid relying on implicit defaults in production workflows.