Repository navigation
feat(mcp): show search tools to everyone, with links to enable search - #1384
Alexandre Girard (girarda) merged 5 commits into
Conversation
…e search Co-Authored-By: alexandre@airbyte.io <alexandre@airbyte.io>
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
👋 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/1792018335-search-tools-ga' pyairbyte --help
# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1792018335-search-tools-ga'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. |
Co-Authored-By: alexandre@airbyte.io <alexandre@airbyte.io>
Code coverage overviewLanguages: Python Python / code-coverage/pytest-no-creds
View coverage of the 10 most impacted files.
Python / code-coverage/pytest
View coverage of the 10 most impacted files.
Python / code-coverage/pytest-unit
Line coverage data for the release-candidate/v1 branch is not yet available. View coverage of the 10 most covered files.
ℹ️ Calculations represent line coverage. Results may change as calculations are updated. Updated |
Co-Authored-By: alexandre@airbyte.io <alexandre@airbyte.io>
|
Codex (@codex) review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 11478cc269
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "Codex (@codex) review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".
|
I'll merge this to unblock. Let me know if you have feedback Aaron ("AJ") Steers (@aaronsteers) and I'll update as a follow up |
Co-Authored-By: alexandre@airbyte.io <alexandre@airbyte.io>
Co-Authored-By: alexandre@airbyte.io <alexandre@airbyte.io>
baaf0be
into
release-candidate/v1
Summary
execute_external_search_queryandget_cloud_search_statusare no longer insiders-only, so every MCP client lists them. This includes clients like Claude that can't sendX-MCP-Insiders. When search isn't enabled, the tools now return an error result with enablement links instead of raising. Requested by AJ Steers and Alexandre Girard for a demo. The genericinsiders_onlymechanism from #1375 stays in place for other tools.Search not enabled (
AirbyteExternalAccessNotEnabledErrorraised withenablement_urlset): both tools return their usual result model with emptyhits/metadata/sourcesand a newerrorslist. The error text follows the direct-access pattern (_direct_access_disabled_result):CloudConnector.execute_search_queryandget_search_statusnow passenablement_url=self.connector_url._raise_if_feature_not_enabledalso sets the neworganization_enablement_urlfrom theorganizationIdin the enablement response it already fetched, so there's no extra API call.redact_agent_text, because result content skipsAgentErrorTextMiddleware.source_search_disabled/destination_search_disabledwhen the connector has search turned off, but the platform currently replaces that detail with a generic message. ForSEARCH_INDEXING,_raise_if_feature_not_enablednow re-checks enablement on a 409 whose message is generic: the platform default, PyAirbyte's status fallback, or no message (_GENERIC_CONFLICT_MESSAGES). A 409 carrying its own Clouddetailis re-raised unchanged.ExternalSearchResultno longer adds the "No index matched…" warning whenerrorsis set.Not in this PR
This PR can't tell "search is off for this connector" apart from "the feature isn't rolled out to your org yet (coming soon)". Sonar does say which case it is: a 403 with
"External Cloud organization access is not enabled."means the org isn't rolled out. ButSonarForwarderin airbyte-server-wrapped keepsdetailonly for 400/422 responses, so PyAirbyte only sees a generic message. Fixing that needs a platform change, tracked in PLAT-1557. Once it ships, Cloud's detail comes through as-is and the client-side translation (_search_disabled_errors) can be removed.Testing
organization_enablement_urlset or unsetAIRBYTE_MCP_INSIDERSis unset,1or0.airbyte-mcpover STDIO with no env var or header and listed its tools. Base (55917c3c) lists 42 tools and neither search tool. This branch lists 44, including both.Link to Devin session: https://app.devin.ai/sessions/e6965897bf15489380e96ea10d3ee8dd
Open in Devin Desktop: https://app.devin.ai/desktop/session/e6965897bf15489380e96ea10d3ee8dd?variant=devin
Requested by: Alexandre Girard (@girarda)