Skip to content

Conversation

aaronsteers
Copy link
Contributor

@aaronsteers aaronsteers commented Aug 9, 2025

feat!: rename find_connectors_by_feature to find_connectors_by_class_name

Summary

This PR renames the find_connectors_by_feature function to find_connectors_by_class_name and significantly improves its documentation to clarify expectations. The original function name and parameter (features) were misleading, as the tool actually expects exact class names from the Airbyte declarative component system, not high-level feature descriptions.

Key Changes:

  • BREAKING: Renamed function from find_connectors_by_feature to find_connectors_by_class_name
  • BREAKING: Renamed parameter from features to class_names
  • Updated all internal variable names for consistency (feature_listclass_name_list, etc.)
  • Enhanced documentation with clear examples of valid class names
  • Added explicit clarification that it expects class names like "DynamicDeclarativeStream", not feature descriptions like "dynamic streams" or "pagination"

The function behavior is unchanged - it still searches a CSV index file and returns connectors that use ALL specified class names.

Review & Testing Checklist for Human

  • Test the renamed function works correctly by calling it with known class names (e.g., "DynamicDeclarativeStream", "HttpComponentsResolver")
  • Verify the CSV index file structure contains the class names mentioned in the documentation examples
  • Test MCP tool exposure - confirm the renamed tool appears correctly when listing MCP tools and can be invoked
  • Check for any missed references to the old function name across the entire codebase (I searched but double-check is valuable)
  • Validate documentation examples - ensure the class name examples provided are accurate and representative of what's actually available in the system

Recommended Test Plan:

  1. Start the MCP server and list tools to confirm find_connectors_by_class_name appears
  2. Test with known working class names: DynamicDeclarativeStream, HttpComponentsResolver, ConfigComponentsResolver
  3. Verify the tool returns expected connector lists (should match previous behavior)
  4. Test with invalid class names to ensure proper error handling

Diagram

%%{ init : { "theme" : "default" }}%%
graph TD
    CSV["resources/generated/<br/>connector-feature-index.csv"]:::context
    Main["_connector_builder.py"]:::major-edit
    Server["server.py"]:::context
    MCP["MCP Tool Registration"]:::minor-edit
    
    CSV --> Main
    Main --> Server
    Server --> MCP
    
    Main --> |"find_connectors_by_class_name()<br/>(renamed from find_connectors_by_feature)"| Function["Function Implementation"]:::major-edit
    Function --> |"class_names parameter<br/>(renamed from features)"| Params["Parameter Handling"]:::major-edit
    
    subgraph Legend
        L1["Major Edit"]:::major-edit
        L2["Minor Edit"]:::minor-edit
        L3["Context/No Edit"]:::context
    end

classDef major-edit fill:#90EE90
classDef minor-edit fill:#87CEEB
classDef context fill:#FFFFFF
Loading

Notes

  • This change was requested by AJ Steers (@aaronsteers) to clarify the tool's expectations
  • Session URL: https://app.devin.ai/sessions/038108fef7da4d1392c78e3fa20d7e9a
  • The function was successfully tested with class names like DynamicDeclarativeStream during development
  • All tests pass (63 passed, 2 skipped) confirming no regressions
  • Breaking changes are acceptable per user confirmation, so semantic versioning will handle the major version bump

Important

Auto-merge enabled.

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

devin-ai-integration bot and others added 2 commits August 9, 2025 03:12
…ture descriptions

- Updated docstring to explain tool searches for exact class names
- Added examples of valid class names (DynamicDeclarativeStream, HttpComponentsResolver, etc.)
- Clarified parameter description to specify class name format requirements
- Emphasized difference between class names vs feature descriptions

Co-Authored-By: AJ Steers <[email protected]>
…name

BREAKING CHANGE: Function renamed from find_connectors_by_feature to
find_connectors_by_class_name to better reflect that it expects exact
class names, not feature descriptions.

- Updated parameter name from 'features' to 'class_names'
- Improved documentation with clearer examples of valid class names
- Updated internal variable names for consistency
- Added examples: DynamicDeclarativeStream, HttpComponentsResolver, etc.
- Clarified difference between class names vs feature descriptions

Co-Authored-By: AJ Steers <[email protected]>
@Copilot Copilot AI review requested due to automatic review settings August 9, 2025 03:17
Copy link
Contributor

Original prompt from AJ Steers
@Devin - check your connector builder MCP tools (don't search local repos and don't checkout the repo). Help me test the new tool for finding connectors that use specific features. Just just your available tools and stop immediately

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 Aug 9, 2025

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Testing This Branch via MCP

To test the changes in this specific branch with an MCP client like Claude Desktop, use the following configuration:

{
  "mcpServers": {
    "connector-builder-mcp-dev": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/airbytehq/connector-builder-mcp.git@devin/1754709149-clarify-find-connectors-by-feature-tool-docs", "connector-builder-mcp"]
    }
  }
}

Testing This Branch via CLI

You can test this version of the MCP Server using the following CLI snippet:

# Run the CLI from this branch:
uvx 'git+https://github.com/airbytehq/connector-builder-mcp.git@devin/1754709149-clarify-find-connectors-by-feature-tool-docs#egg=airbyte-connector-builder-mcp' --help

PR Slash Commands

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

  • /autofix - Fixes most formatting and linting issues
  • /poe <command> - Runs any poe command in the uv virtual environment

📝 Edit this welcome message.

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR renames find_connectors_by_feature to find_connectors_by_class_name to better reflect its actual functionality and improve clarity. The function searches for connectors that use specific declarative component class names, not high-level feature descriptions.

  • Renamed function and parameter for better semantic clarity
  • Enhanced documentation with concrete examples of valid class names
  • Updated internal variable names for consistency

@github-actions github-actions bot added the enhancement New feature or request label Aug 9, 2025
Copy link

github-actions bot commented Aug 9, 2025

PyTest Results (Full)

0 tests  ±0   0 ✅ ±0   0s ⏱️ ±0s
0 suites ±0   0 💤 ±0 
0 files   ±0   0 ❌ ±0 

Results for commit 9d809e6. ± Comparison against base commit 2510724.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Aug 9, 2025

PyTest Results (Fast)

0 tests  ±0   0 ✅ ±0   0s ⏱️ ±0s
0 suites ±0   0 💤 ±0 
0 files   ±0   0 ❌ ±0 

Results for commit 9d809e6. ± Comparison against base commit 2510724.

♻️ This comment has been updated with latest results.

@aaronsteers aaronsteers enabled auto-merge (squash) August 9, 2025 03:21
@aaronsteers aaronsteers merged commit 604a482 into main Aug 9, 2025
14 checks passed
@aaronsteers aaronsteers deleted the devin/1754709149-clarify-find-connectors-by-feature-tool-docs branch August 9, 2025 03:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant