databrickslabs / databrickslabs/ontos

bug: list_data_products MCP tool calls list_products with unsupported domain/status kwargs (pre-existing)

Open
#660 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
212
Forks
71
Avg merge
4d 10h
Merged PRs (30d)
43

Description

Found during code review of PR #597 (multi-domain #520), but pre-existing on development — not introduced by that PR.

Bug

src/backend/src/tools/data_products.py (list_data_products tool, ~line 625):

products = ctx.data_products_manager.list_products(
    skip=0, limit=limit, domain=domain, status=status
)

But DataProductsManager.list_products signature is (skip, limit, project_id, is_admin, caller_email, caller_team_ids, caller_project_ids, include_history) — it accepts neither domain nor status. Any invocation of the tool raises TypeError: list_products() got an unexpected keyword argument 'domain'.

Verified present on origin/development (same call site + same param-less signature), so this is not a #520 regression.

Suggested fix

Either add domain/status filtering to list_products (domain would go through the entity_domain_associations junction now), or drop those kwargs from the tool call and filter in the tool. Out of scope for #597 to avoid scope creep.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/backend/src/tools/data_products.py around list_data_products and compare its list_products call with the DataProductsManager.list_products signature. Reproduce the tool invocation to confirm the unsupported-keyword TypeError, then determine whether filtering belongs in the manager or tool. Done means list_data_products no longer fails because of the domain/status arguments and its filtering behavior is defined.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
64/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.