-
Notifications
You must be signed in to change notification settings - Fork 69
feat: Add airbyte-mcp-cli tool for direct MCP tool invocation #860
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
- Add new CLI entry point 'airbyte-mcp-cli' for calling MCP tools directly - Support JSON input, named arguments, and mixed input styles - Extract and apply Pydantic Field defaults for optional parameters - Add --list-tools and --help-tool options for tool discovery - Enable usage with uvx for one-off invocations without installation Co-Authored-By: AJ Steers <[email protected]>
Original prompt from AJ Steers |
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
Warning Rate limit exceeded@devin-ai-integration[bot] has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 4 minutes and 29 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. Testing This PyAirbyte VersionYou can test this version of PyAirbyte using the following: # Run PyAirbyte CLI from this branch:
uvx --from 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1762906405-add-mcp-cli-tool' pyairbyte --help
# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1762906405-add-mcp-cli-tool'Helpful ResourcesPR Slash CommandsAirbyte Maintainers can execute the following slash commands on your PR:
Community SupportQuestions? Join the #pyairbyte channel in our Slack workspace. |
Co-Authored-By: AJ Steers <[email protected]>
feat: Add airbyte-mcp-cli tool for direct MCP tool invocation
Summary
This PR adds a new CLI tool
airbyte-mcp-clithat allows direct invocation of MCP (Model Context Protocol) tools without running the full MCP server. The tool is designed to work withuvxfor one-off invocations and supports multiple input styles:uvx --from=airbyte airbyte-mcp-cli list_connectors '{"keyword_filter": "faker"}'uvx --from=airbyte airbyte-mcp-cli list_connectors --keyword_filter=fakeruvx --from=airbyte airbyte-mcp-cli list_connectors '{"keyword_filter": "s3"}' --connector_type_filter=sourceThe CLI also provides tool discovery via
--list-toolsand per-tool help via--help-tool.Key implementation details:
Review & Testing Checklist for Human
Risk Level: Yellow - Core functionality works but has some complexity around Pydantic metadata extraction
uvx --from=airbyte airbyte-mcp-cli --list-toolsworks without pre-installationlist_connectors) to ensure defaults are correctly applied when args are omittedSuggested Test Plan:
Notes
poetry.lockchanges are just greenlet hash additions for musllinux platforms - likely Poetry updating its lock file format__metadata__attributes. This works with current Pydantic but could be fragile if Pydantic internals change.Requested by: AJ Steers (@aaronsteers)
Devin Session: https://app.devin.ai/sessions/665558f023ae4c55af447753dfb3509f