Skip to content

Conversation

aaronsteers
Copy link
Contributor

@aaronsteers aaronsteers commented Oct 1, 2025

docs: recommend uvx with airbyte@latest and --python flag for MCP setup

Summary

Updates PyAirbyte MCP documentation to recommend using uvx with version pinning (airbyte@latest) and explicit Python version specification (--python=3.11). This ensures users always get the latest stable release and can use a compatible Python version even if their system Python differs.

Key changes:

  • Primary MCP config example now uses uvx --python=3.11 --from=airbyte@latest airbyte-mcp
  • Added explanatory text about version pinning for latest stable releases
  • Reworded pre-install alternative to emphasize uvx is recommended for automatic updates
  • Fixed line length compliance issues

Review & Testing Checklist for Human

  • Test uvx command syntax - Verify uvx --python=3.11 --from=airbyte@latest airbyte-mcp actually works and starts the MCP server correctly
  • Validate Python version choice - Confirm Python 3.11 is appropriate (PyAirbyte supports 3.10-3.12, I chose 3.11 as middle ground)
  • Test MCP client integration - Ensure the updated configuration works with actual MCP clients (Claude Desktop, etc.)

Notes

  • This change only affects documentation, no code changes
  • Existing users with pre-installed setups should continue working unchanged
  • The @latest syntax ensures users get updates automatically vs being pinned to old versions

Link to Devin run: https://app.devin.ai/sessions/10d9f92c120641dcb5f5cdb281484a6a
Requested by: @aaronsteers

Summary by CodeRabbit

  • Documentation
    • Recommend running the MCP server with uvx using Python 3.11 and airbyte@latest for uv-managed Python and automatic MCP updates.
    • Updated example invocation and clarified version-pinning and automatic-update behavior.
    • Replaced prior separate uv/pipx pre-install guidance with streamlined uvx-based setup instructions.

Important

Auto-merge enabled.

This PR is set to merge automatically when all requirements are met.

Note

Auto-merge may have been disabled. Please check the PR status to confirm.

Copy link
Contributor

Original prompt from AJ Steers
@Devin - in the pyairbyte mcp docs, let's recommend always using `uvx` with `airbyte@latest`. And let's use the `--python` option to force a compatible uv-managed Python version.
Thread URL: https://airbytehq-team.slack.com/archives/D089P0UPVT4/p1759344586637989?thread_ts=1759344586.637989

Copy link
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Copy link

github-actions bot commented Oct 1, 2025

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Testing This PyAirbyte Version

You 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/1759345139-update-mcp-docs-uvx-latest' pyairbyte --help

# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1759345139-update-mcp-docs-uvx-latest'

Helpful Resources

PR Slash Commands

Airbyte Maintainers can execute the following slash commands on your PR:

  • /fix-pr - Fixes most formatting and linting issues
  • /poetry-lock - Updates poetry.lock file
  • /test-pr - Runs tests with the updated PyAirbyte

Community Support

Questions? Join the #pyairbyte channel in our Slack workspace.

📝 Edit this welcome message.

Copy link
Contributor

coderabbitai bot commented Oct 1, 2025

📝 Walkthrough

Walkthrough

Rewrote the MCP server configuration example in airbyte/mcp/__init__.py to recommend running the MCP server with uvx, pin Python (--python=3.11), and fetch the latest Airbyte MCP release (--from=airbyte@latest). Removed the prior separate pre-install guidance and updated surrounding explanatory text.

Changes

Cohort / File(s) Summary
Docs: MCP server config example
airbyte/mcp/__init__.py
Replaced example args ["--from=airbyte", "airbyte-mcp"] with ["--python=3.11", "--from=airbyte@latest", "airbyte-mcp"]; reworded guidance to recommend running via uvx with automatic Python management and updates; removed the earlier pre-installation instruction block (old uv install / pipx install phrasing).

Sequence Diagram(s)

No sequence diagrams — documentation-only change, no control-flow modifications.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title concisely captures the primary documentation update by specifying the recommendation to use uvx with the airbyte@latest release and an explicit --python flag for MCP setup, which aligns directly with the PR’s objectives and avoids extraneous details. It is clear, specific, and uses conventional commit style to signal a docs change, making the main change obvious to anyone scanning the history.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch devin/1759345139-update-mcp-docs-uvx-latest

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
airbyte/mcp/__init__.py (2)

70-71: Consider clarifying "version pinning" terminology.

The phrase "with version pinning to ensure you always get the latest stable release" might be a bit confusing, since "version pinning" traditionally means locking to a specific version (e.g., airbyte==1.2.3), whereas @latest does the opposite—it ensures you get the newest version. Would it be clearer to say something like "using @latest to ensure you always get the latest stable release" instead? wdyt?

</invoke_comment_end -->


78-78: LGTM! Consider adding a note about @latest implications.

The uvx command syntax looks good with the explicit Python version and @latest package specification. The choice of Python 3.11 as a middle ground between 3.10-3.12 makes sense.

One thought: since @latest means users will automatically get new releases (including potentially breaking changes), would it be helpful to add a brief note in the documentation about this trade-off? Something acknowledging that while @latest provides automatic updates, users who need stability might prefer pinning to a specific version? wdyt?

</invoke_comment_end -->

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3617a93 and bac4684.

📒 Files selected for processing (1)
  • airbyte/mcp/__init__.py (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: Pytest (All, Python 3.11, Ubuntu)
  • GitHub Check: Pytest (All, Python 3.11, Windows)
  • GitHub Check: Pytest (All, Python 3.10, Windows)
  • GitHub Check: Pytest (All, Python 3.10, Ubuntu)
  • GitHub Check: Pytest (No Creds)
  • GitHub Check: Pytest (Fast)
🔇 Additional comments (1)
airbyte/mcp/__init__.py (1)

87-89: LGTM! Clear recommendation hierarchy.

The revised wording effectively emphasizes that uvx with @latest is the recommended approach while still documenting the pre-installation alternative. The text flows well and sets clear expectations for users.

</invoke_comment_end -->

Copy link

github-actions bot commented Oct 1, 2025

PyTest Results (Fast Tests Only, No Creds)

304 tests  ±0   304 ✅ ±0   4m 22s ⏱️ -4s
  1 suites ±0     0 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit e0a1e08. ± Comparison against base commit 3617a93.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Oct 1, 2025

PyTest Results (Full)

367 tests  ±0   351 ✅ ±0   20m 8s ⏱️ + 1m 15s
  1 suites ±0    16 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit e0a1e08. ± Comparison against base commit 3617a93.

♻️ This comment has been updated with latest results.

@aaronsteers aaronsteers enabled auto-merge (squash) October 1, 2025 19:42
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
airbyte/mcp/__init__.py (1)

95-97: Consider clarifying trade-offs of pre-installation approach.

The recommendation for uvx with airbyte@latest is clear, and the parenthetical note about "automatic updates" helps explain why it's preferred. Nice!

However, when users choose the pre-install alternative, they lose both auto-updates and automatic Python version management. Should we briefly mention this trade-off or suggest they can still pin versions with uv tool install airbyte@latest or pipx install airbyte==<version>? This might help users make an informed choice, wdyt?

Something like:

-Alternatively, if you prefer to pre-install (though `uvx` with `airbyte@latest` is
-recommended for automatic updates), first run `uv tool install airbyte` or
-`pipx install airbyte`, and then create the configuration file as follows:
+Alternatively, if you prefer to pre-install (though `uvx` with `airbyte@latest` is
+recommended for automatic updates and Python version management), first run 
+`uv tool install airbyte` or `pipx install airbyte`, and then create the 
+configuration file as follows:
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8b3cdf8 and e0a1e08.

📒 Files selected for processing (1)
  • airbyte/mcp/__init__.py (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Pytest (All, Python 3.11, Ubuntu)
  • GitHub Check: Pytest (All, Python 3.10, Ubuntu)
  • GitHub Check: Pytest (Fast)
  • GitHub Check: Pytest (No Creds)
🔇 Additional comments (2)
airbyte/mcp/__init__.py (2)

70-75: Clear and helpful guidance on uvx setup!

The explanation about automatic Python installation and auto-updates is accurate and useful for users. The mention of alternative pinning options adds good flexibility.

One tiny wording suggestion: "If a matching version Python" could be "If a matching Python version" for slightly smoother reading, wdyt?


82-86: Verify packaging metadata for Python version requirements.

I couldn’t find any python_requires or Programming Language :: Python :: 3.x entries in the packaging metadata (pyproject.toml, setup.py, or setup.cfg). Could you confirm the package declares support for Python 3.10–3.12? If not, consider adding python_requires=">=3.10,<3.13" or mentioning the supported range in the docs so users know they can adjust --python as needed. wdyt?

@aaronsteers aaronsteers disabled auto-merge October 1, 2025 20:50
@aaronsteers aaronsteers merged commit b02b0ed into main Oct 1, 2025
22 of 23 checks passed
@aaronsteers aaronsteers deleted the devin/1759345139-update-mcp-docs-uvx-latest branch October 1, 2025 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant