Repository navigation
feat(mcp): add get_github_issue_creation_link tool - #1353
Aaron ("AJ") Steers (aaronsteers) wants to merge 3 commits into
Conversation
Co-Authored-By: AJ Steers <aj@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/1791573431-github-issue-link-tool' pyairbyte --help
# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1791573431-github-issue-link-tool'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. |
There was a problem hiding this comment.
🟡 Changes recommended
Valid inputs can generate URLs far beyond the intended size limit after percent encoding.
1 open finding
What changed in this PR
Adds an MCP tool that creates pre-filled GitHub issue links for Cloud MCP feedback.
Changes:
- Adds issue categories and URL generation.
- Adds tracing metadata and tool annotations.
- Tests URL encoding, registration, and annotations.
| File | Description |
|---|---|
airbyte/mcp/guidance.py |
Implements the issue-link tool. |
tests/unit_tests/test_mcp_guidance.py |
Tests generated links and registration. |
tests/unit_tests/test_mcp_tool_annotations.py |
Verifies read-only/idempotent annotations. |
tests/unit_tests/fixtures/arg_trace_plan.json |
Defines argument tracing behavior. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Code Coverage OverviewLanguages: Python Python / code-coverage/pytest-no-credsThe overall line coverage in commit 14dc1cb in the Show a line coverage summary of the most impacted files.
Python / code-coverage/pytestThe overall line coverage in commit 14dc1cb in the Show a line coverage summary of the most impacted files.
Python / code-coverage/pytest-unitThe overall line coverage in commit 14dc1cb in the Show a line coverage summary of the most covered files.
Updated |
Co-Authored-By: AJ Steers <aj@airbyte.io>
Co-Authored-By: AJ Steers <aj@airbyte.io>

Overview
👉 TL;DR: Adds an MCP tool that turns an agent's proposed bug report or feature request into a link the user clicks to open a pre-filled GitHub issue, which they review and submit under their own GitHub account.
Specifically, this adds
get_github_issue_creation_link(category, title, description) -> GitHubIssueCreationLink(url, warning)toairbyte/mcp/guidance.py, withcategoryaGitHubIssueCategoryStrEnum ofcloud-mcp-bug-report/cloud-mcp-feature-request.Depends on #1352 (the issue forms the links point at must be on
main):Changes
GitHubIssueCategoryStrEnum: each value is the file name of an issue form in.github/ISSUE_TEMPLATE/.get_github_issue_creation_link(read-only, idempotent, no network): returnshttps://github.com/airbytehq/PyAirbyte/issues/new?template=<slug>.yml&title=<title>&description=<description>, percent-encoded withquote.titleis capped at 200 chars anddescriptionhas no max length. If the encoded URL is longer thanMAX_GITHUB_ISSUE_URL_LENGTH = 8000, the tool still returns it and setswarning, which tells the agent to share the link anyway and to shorten the description if the link fails to open.categorytraced by value,title/descriptionfingerprinted (arg_trace_plan.jsonupdated).Review Spotlight
Reviewers with limited time, please review first:
guidance.pytool: tool description the agent sees, and URL construction.Risks
main; merge it first.Test plan
uv run pytest tests/unit_tests/test_mcp_guidance.py tests/unit_tests/test_mcp_arg_trace_parity.py tests/unit_tests/test_mcp_tool_annotations.py tests/docs_tests: 25 passed, 1 skipped (the hidden search tool).ruff check,ruff format --check,pyrefly check airbyte/mcp/guidance.py: clean.Link to Devin session: https://app.devin.ai/sessions/ce03f4da05384dc79e6ae007f55a0048
Open in Devin Desktop: https://app.devin.ai/desktop/session/ce03f4da05384dc79e6ae007f55a0048?variant=devin
Requested by: Aaron ("AJ") Steers (@aaronsteers)