Skip to content
Agentmart
Submit a tool

Myopic

Code-review MCP: review a GitLab MR or GitHub PR against the whole codebase, not just the diff.

Connector by SurajKGoyal · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/surajkgoyal-myopic

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Code-review MCP: review a GitLab MR or GitHub PR against the whole codebase, not just the diff.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
9 read · 3 write · 0 delete
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 12

Read from the source code; the running server may list different tools.

Read 9 · Look things up without changing anything.

  • code_search
  • dependency_impact
  • index_status
  • mr_changed_files
  • mr_diff_lines
  • mr_diff_sections
  • mr_review_context
  • mr_review_status
  • mr_verify_review

Write 3 · Create, change, send or run things.

  • index_repo
  • mr_post_comments
  • trace_call_chain

Files it touches

  • Any path the agent passes to its tools

Tools (12)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • code_search

    Hybrid semantic + full-text search over an indexed local repository. Embeds the query via Ollama, then runs a combined vector + FTS search with RRF reranking against the LanceDB index built by index_repo. Use this to find existing patterns, conventions, or examples in the codebase before reviewing a new implementation. Requires a running Ollama (the semantic layer is built in) and index_repo to have been run first. Args: query: Natural language or code snippet describing what to find. root: Absolute path to the repository (must have been indexed first). k: Maximum number of …

  • dependency_impact

    Find everywhere a symbol is used in a checked-out repo (the blast radius). The highest-value review signal: before you approve a change to a function, class, or constant, see who depends on it. Uses ripgrep for fast candidate finding, then classifies each usage via tree-sitter AST as call / import / definition / type_reference. Filesystem-based — point it at a LOCAL clone of the repo the MR belongs to, not the MR URL. Args: symbol: Function/class/variable name to trace. root: Absolute path to the local repository clone. file_glob: Optional glob to narrow the search …

  • index_repo

    Build or incrementally refresh a semantic search index for a local repository. Walks the repo, chunks every supported-language file by AST boundaries, embeds the chunks via a local Ollama server, and stores them in a per-repo LanceDB table. After the first build this is INCREMENTAL: only files whose content changed since the last run are re-embedded, so refreshing is cheap — run it freely (e.g. when index_status reports "stale"). A changed embedding model or force=True does a full rebuild. Requires a running Ollama (the semantic layer is built in; run `myopic doctor` to set it up) at MYOPIC_O…

  • index_status

    Report whether a repo's semantic index is fresh, stale, or absent. Freshness is keyed to the git commit the index was built from — if HEAD has moved on, the index is "stale" and reports how many commits behind. Check this before leaning on semantic results (code_search / mr_review_context): if state is "stale" or "model_mismatch", offer to index_repo(root) first. Args: root: Absolute path to the repository. Returns: {state: absent|fresh|stale|model_mismatch|unknown, root, chunks?, indexed_at?, indexed_sha?, current_sha?, commits_behind?, reason?} or {"error": "..."} if the …

  • mr_changed_files

    List the files changed in a merge request with stats — no diff content. The cheap entry point for large reviews: the payload has no diff content, so it stays small even on a very large MR. Each file reports additions/deletions, new/deleted/renamed flags, and a reviewability flag (lockfiles, generated code, binary assets, and enormous single-file changes are marked reviewable=false with a skip_reason). Files are ordered reviewable-first then largest-change-first, so you can batch the highest-value files straight into mr_diff_lines(url, files_filter=[...]). Args: url: Full GitLab merge req…

  • mr_diff_lines

    Fetch a merge request's diff as structured, line-numbered hunks. Pure data, no LLM. Returns exact file paths, old/new line numbers, and diff content — everything needed to read a change precisely and to compute the diff positions required for inline comments. Token-safe by construction: on a large MR it returns a bounded page of files and lists the rest under "omitted_files" with "truncated": true (never an oversized payload). Noise files (lockfiles, generated, binary) are listed under "skipped_files", not expanded. For unknown-size MRs, call mr_changed_files first, then batch files_filter h…

  • mr_diff_sections

    Fetch a merge request's diff grouped by enclosing function/class, not raw hunks. AST-aware for new files (full tree-sitter chunking) and hunk-context-aware for modified files (declaration pattern + hunk-header hint). All changed lines (add/del) are always included — nothing dropped, only the framing changes. Prefer this over mr_diff_lines on a large MR (many files or a big diff) since grouping by symbol keeps the payload small without truncating mid-function. Token-safe by construction, same guarantees as mr_diff_lines: on a large MR it returns a bounded page of files and lists the rest unde…

  • mr_post_comments

    Post inline review comments to a merge/pull request. WRITE — this mutates the review. The only mutating tool in myopic. Posts each comment one at a time from a queue, immediately visible (no drafts, no bulk-publish), retrying transient failures (HTTP 429/5xx) with exponential backoff — so partial progress survives a failure and self-hosted rate limits are respected. Works on GitLab and GitHub; the backend translates positions. Only call this on the user's explicit request to post — never speculatively. Get exact line numbers first from mr_diff_lines (its lines_filter maps a source line to th…

  • mr_review_context

    Graph-first review context: dependency impact per changed symbol, plus optional semantic enrichment. Extracts the top-N most-frequent identifiers from the MR diff, then for each: 1. Runs dependency_impact(symbol, root) — always, no optional extras needed. 2. If the repo has been indexed via index_repo(root), enriches each symbol with related_patterns from a hybrid semantic search against the codebase. The semantic layer is purely additive: a result with semantic_available=false is complete and actionable — dependency impact already covers the blast radius. Use this as a single-call alt…

  • mr_review_status

    Get a merge request's review status: metadata + discussions + resolution. Pure data, no LLM. Collapses several platform API calls into one snapshot of where the review stands — every discussion thread, what's resolved vs open, general comments, and a lightweight file-change summary. Start here to orient before diving into the diff. Args: url: Full GitLab merge request URL. Returns: {mr_number, title, author, branches, state, merge_status, commits, general_comments, discussions[...], summary{resolved, unresolved, ...}, files_changed[...], stats}

  • mr_verify_review

    Check whether each review thread was addressed by nearby diff changes. Joins the review's discussions with its current diff: for every inline comment thread, surfaces the add/del lines within +/-window of the commented line. A thread with no nearby changes is a candidate for "not yet addressed"; one with changes shows exactly what moved near it — a fast re-review pass without re-reading the whole diff. Read-only. Works on GitLab and GitHub (note: GitHub doesn't expose thread resolution via REST, so rely on has_changes there, not the resolved flag). Args: url: Full merge/pull request U…

  • trace_call_chain

    Trace a function's callers and callees across a checked-out repo (AST). Complements dependency_impact: where dependency_impact lists every reference, this builds the directed call graph — where the symbol is defined, what it calls, and what calls it — so you can reason about a change's ripple effects. Tree-sitter-based; point it at a LOCAL clone of the repo. Args: symbol: Function or class name to trace. root: Absolute path to the local repository clone. language: Restrict to one language; auto-detects if omitted. max_depth: Levels of callers/callees to follow (defau…

Signals

Stars
0
Forks
0
Open issues
4
Weekly downloads
53
Last commit
Sep 5, 2026 (1 month ago)
Last release
Sep 5, 2026 (1 month ago)
Last package publish
Sep 5, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.SurajKGoyal/myopic
Version
0.1.11
Auth
No auth
Packages
pypi myopic
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from SurajKGoyal

Cite this page

Myopic MCP server. Agent Mart. https://agentmart.dev/connectors/surajkgoyal-myopic (last updated 2026-10-24)