docs(mcp): document MCP server distribution + auth retest in AGENTS.md - #1074
docs(mcp): document MCP server distribution + auth retest in AGENTS.md#1074Aaron ("AJ") Steers (aaronsteers) wants to merge 3 commits into
Conversation
PyAirbyte ships its MCP server in the PyPI package with no hosted deployment, so 'redeploy' means a PyPI release and retesting is local. Document the stdio/HTTP entrypoints and the local headless bearer auth retest matrix so future agents don't ask how to deploy/retest. Co-Authored-By: AJ Steers <aj@airbyte.io>
🤖 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:
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksTesting 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/1784012660-agents-md-mcp-deploy-docs' pyairbyte --help
# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1784012660-agents-md-mcp-deploy-docs'PR Slash CommandsAirbyte Maintainers can execute the following slash commands on your PR:
📚 Show Repo GuidanceHelpful ResourcesCommunity SupportQuestions? Join the #pyairbyte channel in our Slack workspace. |
📝 WalkthroughWalkthroughAGENTS.md adds instructions for MCP server distribution, stdio and HTTP execution, PyPI-based redeployment, and retesting HTTP transport authentication using short-lived app tokens. ChangesMCP deployment and authentication documentation
Estimated code review effort: 1 (Trivial) | ~2 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
AGENTS.md (1)
29-32: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winCould we make the authentication retest copy-pasteable?
This names the token endpoint and expected statuses, but omits the token request payload/headers and an actual
tools/listrequest. Adding concretecurlexamples—or linking to the canonical request format—would make the documented retest reproducible without guesswork, wdyt?🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@AGENTS.md` around lines 29 - 32, The authentication retest instructions in AGENTS.md need concrete, copy-pasteable requests. Expand the section describing the Airbyte token endpoint with the required curl method, headers, and JSON payload using AIRBYTE_CLOUD_CLIENT_ID and AIRBYTE_CLOUD_CLIENT_SECRET, then add a curl example posting a tools/list JSON-RPC body to /mcp, including how to test missing, valid, and tampered bearer tokens with the documented 401/200 expectations.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@AGENTS.md`:
- Around line 29-32: The authentication retest instructions in AGENTS.md need
concrete, copy-pasteable requests. Expand the section describing the Airbyte
token endpoint with the required curl method, headers, and JSON payload using
AIRBYTE_CLOUD_CLIENT_ID and AIRBYTE_CLOUD_CLIENT_SECRET, then add a curl example
posting a tools/list JSON-RPC body to /mcp, including how to test missing,
valid, and tampered bearer tokens with the documented 401/200 expectations.
Address CodeRabbit nitpick on #1074: make the auth retest reproducible with concrete curl (token mint + no-token/valid/tampered tools/list requests). Verified against a locally booted server (401/200/401). Co-Authored-By: AJ Steers <aj@airbyte.io>
Code Coverage OverviewLanguages: Python Python / code-coverage/pytest-fastThe overall coverage in the Show a code coverage summary of the most impacted files.
Python / code-coverage/pytest-no-credsThe overall coverage in the Show a code coverage summary of the most impacted files.
Python / code-coverage/pytestThe overall coverage in the Show a code coverage summary of the most impacted files.
Updated |
There was a problem hiding this comment.
Pull request overview
Documents how the PyAirbyte MCP server is distributed (packaged and shipped via PyPI rather than hosted/deployed from this repo) and provides a local procedure to retest HTTP transport authentication against the /mcp endpoint.
Changes:
- Added an “MCP Server: Deployment and Auth Retesting” section describing stdio vs HTTP entrypoints and “redeploy” semantics (PyPI release).
- Documented where transport auth is assembled (
fastmcp_extensions.resolve_mcp_auth) and a local auth retest matrix (401/200/401).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
Complements the ops-mcp AGENTS.md docs PR. Agents were unsure how the PyAirbyte MCP server "deploys" and how to retest its auth. The key fact: unlike
airbyte-ops-mcp(Cloud Run), PyAirbyte ships the MCP server inside the published PyPI package — there is no hosted deployment here. So "redeploy" = cut a PyPI release (.github/workflows/pypi_publish.yml); merging tomaindeploys nothing, and retesting is local.Adds a MCP Server: Deployment and Auth Retesting section to
AGENTS.mdcovering:airbyte-mcp, no transport auth) and HTTP (airbyte-mcp-http, serves/mcp) entrypoints,fastmcp_extensions.resolve_mcp_auth,MCP_AUTH_AIRBYTE_CLOUD=true→ no-token401/ valid200/ tampered401).Docs-only. No behavior change.
Test plan
Verified the documented retest against merged
mainlocally:MCP_AUTH_AIRBYTE_CLOUD=true uv run airbyte-mcp-http→ no-token401, valid app token200, tampered401.Requested by AJ Steers.
Link to Devin session: https://app.devin.ai/sessions/81e484fd25e7425a81ddb731eb038a26
Requested by: Aaron ("AJ") Steers (@aaronsteers)
Summary by CodeRabbit
/mcpauthorization responses.