Skip to content

docs(mcp): document MCP server distribution + auth retest in AGENTS.md - #1074

Closed
Aaron ("AJ") Steers (aaronsteers) wants to merge 3 commits into
mainfrom
devin/1784012660-agents-md-mcp-deploy-docs
Closed

docs(mcp): document MCP server distribution + auth retest in AGENTS.md#1074
Aaron ("AJ") Steers (aaronsteers) wants to merge 3 commits into
mainfrom
devin/1784012660-agents-md-mcp-deploy-docs

Conversation

@aaronsteers

@aaronsteers Aaron ("AJ") Steers (aaronsteers) commented Jul 14, 2026

Copy link
Copy Markdown
Member

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 to main deploys nothing, and retesting is local.

Adds a MCP Server: Deployment and Auth Retesting section to AGENTS.md covering:

  • the stdio (airbyte-mcp, no transport auth) and HTTP (airbyte-mcp-http, serves /mcp) entrypoints,
  • that transport auth is assembled via fastmcp_extensions.resolve_mcp_auth,
  • the local headless-bearer retest matrix (MCP_AUTH_AIRBYTE_CLOUD=true → no-token 401 / valid 200 / tampered 401).

Docs-only. No behavior change.

Test plan

Verified the documented retest against merged main locally: MCP_AUTH_AIRBYTE_CLOUD=true uv run airbyte-mcp-http → no-token 401, valid app token 200, tampered 401.

Requested by AJ Steers.

Link to Devin session: https://app.devin.ai/sessions/81e484fd25e7425a81ddb731eb038a26
Requested by: Aaron ("AJ") Steers (@aaronsteers)

Summary by CodeRabbit

  • Documentation
    • Added guidance for distributing and running the MCP server in standard (stdio) and remote (HTTP) modes.
    • Documented transport authentication behavior, including how to run auth retesting and validate /mcp authorization responses.
    • Clarified that standard input/output mode does not require transport authentication.

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-integration

Copy link
Copy Markdown
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, CI, and merge conflict monitoring

@github-actions

Copy link
Copy Markdown

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

💡 Show Tips and Tricks

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/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 Commands

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

  • /fix-pr - Fixes most formatting and linting issues
  • /uv-lock - Updates uv.lock file
  • /test-pr - Runs tests with the updated PyAirbyte
  • /prerelease - Builds and publishes a prerelease version to PyPI
📚 Show Repo Guidance

Helpful Resources

Community Support

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

📝 Edit this welcome message.

@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

AGENTS.md adds instructions for MCP server distribution, stdio and HTTP execution, PyPI-based redeployment, and retesting HTTP transport authentication using short-lived app tokens.

Changes

MCP deployment and authentication documentation

Layer / File(s) Summary
Deployment and authentication retesting guidance
AGENTS.md
Documents MCP run modes, PyPI release redeployment, authentication configuration, HTTP startup, token issuance, /mcp validation, and expected 401/200 responses.

Estimated code review effort: 1 (Trivial) | ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the documentation-only change about MCP server distribution and auth retesting in AGENTS.md.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch devin/1784012660-agents-md-mcp-deploy-docs

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
AGENTS.md (1)

29-32: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Could 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/list request. Adding concrete curl examples—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.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 8f5584c5-e074-4817-9998-49472f0c708d

📥 Commits

Reviewing files that changed from the base of the PR and between 9369864 and becaca3.

📒 Files selected for processing (1)
  • AGENTS.md

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>
Comment thread AGENTS.md
@github-code-quality

github-code-quality Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: Python

Python / code-coverage/pytest-fast

The overall coverage in the devin/1784012660-age... branch is 67%. The coverage in the main branch is 65%.

Show a code coverage summary of the most impacted files.
File main d9f652f devin/1784012660-age... e2a62fc +/-
airbyte/_util/api_util.py 36% 37% +1%
airbyte/registry.py 70% 72% +2%
airbyte/mcp/server.py 69% 78% +9%
airbyte/mcp/int...c_history_ui.py 0% 36% +36%
airbyte/mcp/int...hared_models.py 0% 81% +81%
airbyte/cloud/models.py 0% 91% +91%
airbyte/mcp/int..._registry_ui.py 0% 92% +92%
airbyte/mcp/int...nc_status_ui.py 0% 97% +97%
airbyte/mcp/int...ive/__init__.py 0% 100% +100%
airbyte/mcp/int...tive/_prefab.py 0% 100% +100%

Python / code-coverage/pytest-no-creds

The overall coverage in the devin/1784012660-age... branch is 67%. The coverage in the main branch is 65%.

Show a code coverage summary of the most impacted files.
File main d9f652f devin/1784012660-age... e2a62fc +/-
airbyte/_util/api_util.py 36% 37% +1%
airbyte/registry.py 70% 72% +2%
airbyte/mcp/server.py 69% 78% +9%
airbyte/mcp/int...c_history_ui.py 0% 36% +36%
airbyte/mcp/int...hared_models.py 0% 81% +81%
airbyte/cloud/models.py 0% 91% +91%
airbyte/mcp/int..._registry_ui.py 0% 92% +92%
airbyte/mcp/int...nc_status_ui.py 0% 97% +97%
airbyte/mcp/int...ive/__init__.py 0% 100% +100%
airbyte/mcp/int...tive/_prefab.py 0% 100% +100%

Python / code-coverage/pytest

The overall coverage in the devin/1784012660-age... branch is 72%. The coverage in the main branch is 71%.

Show a code coverage summary of the most impacted files.
File main d9f652f devin/1784012660-age... e2a62fc +/-
airbyte/_util/api_util.py 72% 72% 0%
airbyte/registry.py 70% 72% +2%
airbyte/mcp/server.py 69% 78% +9%
airbyte/mcp/int...c_history_ui.py 0% 36% +36%
airbyte/mcp/int...hared_models.py 0% 81% +81%
airbyte/mcp/int..._registry_ui.py 0% 92% +92%
airbyte/cloud/models.py 0% 93% +93%
airbyte/mcp/int...nc_status_ui.py 0% 97% +97%
airbyte/mcp/int...ive/__init__.py 0% 100% +100%
airbyte/mcp/int...tive/_prefab.py 0% 100% +100%

Updated July 14, 2026 19:51 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@aaronsteers
Aaron ("AJ") Steers (aaronsteers) marked this pull request as ready for review July 14, 2026 08:05
Copilot AI review requested due to automatic review settings July 14, 2026 08:05

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread AGENTS.md
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.

2 participants