-
Couldn't load subscription status.
- Fork 475
feat: add Klavis tools #348
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
base: main
Are you sure you want to change the base?
Conversation
|
Disclaimer: This review was made by a crew of AI Agents. Code Review Comment for Klavis Tools Integration PROverviewThe integration of Klavis MCP (Model Context Protocol) servers into the CrewAI tools is a significant enhancement. The changes introduced a new tool class in Python along with comprehensive documentation. Here's a detailed review based on the analysis of each modified file. 1. crewai_tools/tools/init.py
2. crewai_tools/tools/klavis_tool/README.mdStrengths
Suggestions
3. crewai_tools/tools/klavis_tool/klavis_tool.pyCode Quality Issues
General Recommendations
Style and Standards
Missing Features
Summary of Changes Needed
The Klavis tools integration represents a robust addition to the CrewAI ecosystem. Addressing the highlighted improvements will further enhance the quality and readiness for production use, ensuring the implementation is both resilient and user-friendly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @zihaolin96, that's an amazing feature; great work! I'd love to discuss how we can integrate it more smoothly with our official MCPServer.
Instead of adding multiple MCPServer tools, each with its own implementation and specification, I think it would be better to define a unified interface for communicating with them. This could be a huge improvement, especially now that we've already integrated the official version into the main repo.
I'm totally open to supporting multiple enterprise server tools, but I think we should give some more attention to how they're used, so we can keep things simple and consistent.
Another point of view is that MCP Enterprise servers are so unique that it might not be worth integrating them using the official MCPServer approach from CrewAI.
gentle ping @lorenzejay would love to hear your thoughts on this when you get a chance!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@zihaolin96 would you mind sharing a Loom using this Tool with a CrewAI agent?
Just noticed you already did
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok.. I have a UX question after watching your demo
Can we make the OAuth flow smoother? From what I understand, requiring the user to open a browser to authorize isn't a great experience.. especially since many of our users run Crew in Docker containers. In those cases, the current solution just isn't feasible. It could also be frustrating for open-source and Enterprise users use that. Let me know if do you have another way to do that.
Thanks @lucasgomide And within Klavis tool design, are you suggesting to have a generic tool schema for all ? (reminds me of merge.dev) would appreciate your reply and feedback! |
@lucasgomide good question! technically seems doable - e.g. "Non-interactive grants (Client-Credentials, Service-Account / JWT Bearer, Refresh-Token reuse) can be completed 100 % server-to-server." from LLM. honestly, at Klavis we did think this before, but haven’t implemented it yet, as none of our customers have needed it so far. But it’s def something we plan to look into. e.g. one of our enterprise customers wants to support fine-grained control over MCP servers for different departments / levels, which likely falls into this technical category. |
|
@zihaolin96 Got it Let's consider that these operations will be performed by Agents/automation processes, which in most cases don't have a person available to click through or authorize OAuth2 (or any other interactive authentication). That's why I suggested the API_KEY approach.. it’s much more feasible in this context. Your code looks fine to me, but I'm not sure we should allow it to be executed by a Crew, since it doesn't seem ready to be run by an Agent. |
@lucasgomide thanks for the update! we also support API_Key for sure with just one api call, and that's how our no-code platform works for MCP Server / Apps (e.g. firecrawl, resend, openrouter, etc...) that doesn't support OAuth. And in this PR I only demo the OAuth because it's more complicated from coding perspective. let me know if you have any question! Thank you! |
Add Klavis MCP Server Tools Integration
Summary
This PR adds support for integrating CrewAI agents with Tools from Klavis MCP servers, enabling agents to interact with hundreds of integration and automate complex workflows.
What's Added
Appendix
Demo
https://www.youtube.com/watch?v=hZ5oqBMk-fQ