Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

MCP server: silent wrong matches on ambiguous/near-miss names, noisy query_graph, misleading list_prs error

Đã đóng
#3,917 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@nothariharan đang làm issue này rồi.

Từ ngày 21/10/2026.

  • #4618 của @nothariharan — đang mở

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
php, python, symfony

Hướng nghiên cứu

Start by reproducing the listed calls against the explicit graph.json, then trace the MCP tool entry points get_node, query_graph, get_community, list_prs, get_pr_impact, and get_neighbors. Done means ambiguous and non-exact labels are explicit, graph results are relevance-aware, communities are labelled, repository errors explain repo=, and neighbor truncation preserves incoming edges.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Version: graphifyy 0.9.71 (installed via uv tool), graphify-mcp over stdio, started with an explicit graph.json path.
Codebase: PHP / Symfony bundle, ~11k nodes / ~33k edges, 614 communities.

1. get_node silently picks one match for an ambiguous name

  • Steps: get_node(label="edit") on a graph where several classes define edit().
  • Actual: returns a single node (Controller/VisitController.php L427) with no hint that other candidates exist.
  • Expected: a list of the candidates (path + line), or an explicit "ambiguous, N matches" error. The caller can't tell whether the answer is the right edit().

2. get_node silently resolves a non-existent name to a different node

  • Steps: get_node(label="MailController") when no MailController exists in the codebase.
  • Actual: returns EmailController as if it were an exact match.
  • Expected: "no exact match", optionally followed by fuzzy suggestions clearly labelled as such.

Side note: the path::symbol form works (Controller/VisitController.php::edit → found). get_node(node_id=...) does not find a generated-looking id for a non-existent symbol, which is correct.

3. query_graph is dominated by god nodes

  • Steps: query_graph(question="who sends the convocation emails?"), default depth 3.
  • Actual: BFS starts from 5 seeds and reaches 2,708 nodes. The output is TRUNCATED and mostly made of the highest-degree nodes (framework interfaces, core entities, enums). With token_budget=8000 it is still truncated (240 of 2,708). With context_filter=['call'] only 20 nodes remain, all unrelated test helpers.
  • Expected: rank results by relevance or distance to the seeds rather than degree, or damp hubs during traversal (similar to exclude_hubs_percentile in god_nodes).

4. get_community returns no community label

get_community(3) returns "Community 3 (205 nodes)" with no name or summary. A generated label (e.g. dominant class or directory) would make the output usable.

5. list_prs reports "gh CLI not found" when the real issue is repo detection

  • Steps: list_prs() with no repo argument, the server started on a graph.json outside any git repo.
  • Actual: Error: gh CLI not found or not authenticated. Run: gh auth login. gh is installed and authenticated. Passing repo=owner/name makes it work. get_pr_impact with the same repo works too.
  • Expected: an error such as "could not detect repository; pass repo=".

6. Minor: get_neighbors truncation hides incoming edges

With the default budget, outgoing edges are listed first, so all incoming edges (callers) are cut off on high-degree nodes. Listing incoming edges first, or balancing both directions, would help.

Ngôn ngữ chính
Python
Star
124k
Fork
11.9k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Graphify-Labs/graphify

Tất cả issue của Graphify-Labs/graphify

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.