Shopify / Shopify/rubydex

MCP server follow-up improvements

Open
#608 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
355
Forks
24
Avg merge
2d 6h
Merged PRs (30d)
17

Description

From PR #586 review — deferred suggestions and ideas for future iterations.

New tools

  • resolve_at_position — Given file + line + column, return the declaration being referenced. The most powerful navigation primitive for LLM debugging workflows. (Morriar)
  • find_method_references — Expose graph.method_references() as a name-based search for method call sites (e.g., "find all calls to validate"). Not fully resolved, but very useful. (Morriar)
  • get_diagnostics — Expose graph.all_diagnostics() to return parse/type errors. Lets an LLM understand what's broken before editing. (Morriar)

Tool enhancements

  • Include method parameters in get_declarationMethodDefinition#parameters() data exists but isn't serialized. LLMs need signatures without reading source. (Morriar)
  • Reverse index for find_constant_referencesBuild declaration_id → Vec<const_ref_offset> at startup for O(k) lookups instead of O(n) scans. Addressed by using declaration.references() which already tracks resolved references per declaration. (Morriar, vinistock)
  • Audit codebase_stats tool usefulness — Is aggregate codebase info useful to agents, or only to tool developers? (vinistock)
  • Type-safe Location to prevent double to_presentation — Follow up similar to PR #607 to make it impossible to call to_presentation() multiple times and accidentally bump line/col values. (vinistock)

Code organization

  • Split server.rs into separate files per tool handler — Prevents the file from growing too large and enables unit testing each handler independently. (vinistock)
  • Add unit tests alongside integration tests — Current tests all spawn the server and do real IO. Add unit tests for tool logic, keep a few integration tests. (vinistock)

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

This is a backlog of MCP server tools, enhancements, and test or code-organization work rather than one scoped change. Read PR #586 and the follow-up PR #607, then inspect server.rs and the existing integration tests to choose and scope one item; done should include the selected change and appropriate tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.