Pack local or remote codebases into AI-friendly files that LLMs and coding agents can read or search
Glasir is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
A queryable graph of a codebase: impact, callers, tests to run, history. No model, no network.
Quickstart
Install it the way its author documents:
The full guide: https://github.com/Attackwave/glasir
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Glasir as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. It has not been scanned here, so read the surface, and its source, before you approve it.
Install it the way its author documents:
The full guide: https://github.com/Attackwave/glasir
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Return the definition's own text for a symbol, from the range the parser recorded when the graph was built. Use it after query_graph or impact names something worth reading: the answer is the definition itself, so no file has to be opened and no line number has to be guessed. A…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| symbol | string | yes | Qualified path#name, or a name that resolves uniquely |
| following | integer | no | Also return the next N definitions in the file (default 0, at most 50) |
| max_lines | integer | no | Cut the source after this many lines; truncated_at_line says where it went on |
Find the subgraph relevant to a symbol or a question. Expands from matching nodes and filters by recency, provenance and distance, returning only what is worth reading. Takes a symbol name (pay, src/checkout.rs#pay), a file path (src/checkout.rs: every definition in it, in…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Symbol name, substring, or a plain-language question |
| max_nodes | integer | no | Result cap (default 40) |
| max_hops | integer | no | Expansion depth (default 3) |
The parts of this tree and the way into each one, without asking a question first. Start here when you do not yet know what a codebase calls things — the other tools need that, this one supplies it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | How many subsystems (default 12) |
| offset | integer | no | Skip this many, largest first: the next_offset of a previous answer |
| entry_points | integer | no | Entry points per subsystem (default 3) |
Shortest call path between two symbols, preferring compiler-resolved edges over guessed ones. Answers 'how does A reach B'.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | yes | — |
| to | string | yes | — |
| min_confidence | string | no | Weakest edge kind to walk (default ambiguous) |
Everything that depends on a symbol, transitively: the callers and the definitions using it by name, then their callers, and so on, grouped by distance. Answers 'what do I have to check before changing this'. Each dependent is tagged with how the edge reaching it was resolved.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| symbol | string | yes | Symbol name or qualified path#name |
| depth | integer | no | How many hops back to follow (default 3) |
| min_confidence | string | no | Weakest edge kind to follow (default ambiguous) |
| limit | integer | no | How many dependents to name (default 200) |
| offset | integer | no | Skip this many, nearest first: the next_offset of a previous answer |
Files that depend on each other in a loop, tightest first. A cycle is where a change cannot be made in one place, so these are the knots worth untying before a refactor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| max_len | integer | no | Longest cycle to report, in files (default 5) |
| limit | integer | no | How many cycles to return (default 20) |
| min_confidence | string | no | Weakest edge to trust (default extracted where the tree has compiler-resolved edges, otherwise inferred: name-matched edges invent cycles between unrelated files) |
Callers, callees, subsystem and structurally similar symbols for one node, each edge tagged with how it was resolved. structurally_similar is what the graph embeddings rank nearest; nearby holds the callers, callees and the file's other definitions with the same score.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| symbol | string | yes | — |
The direct callers of one symbol, as one list, and the definitions that use it by name without calling it — a type in a signature, a constant read — tagged ambiguous, since a name is matched by name. impact answers the wider question — everything reachable backwards within k…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| symbol | string | yes | Qualified path#name, or a name that resolves uniquely |
| min_confidence | string | no | Lowest provenance tier to count (default ambiguous) |
| limit | integer | no | How many callers to name (default 200) |
| offset | integer | no | Skip this many: the next_offset of a previous answer |
Maps a git diff to the symbols the changed files define, then to what depends on those, with a risk level and its reasons: changed code that has callers but no test reaching it, and files the git history says usually change too but this change leaves out. Reads the working tree as…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| rev | string | no | Revision to compare against HEAD; omit for uncommitted changes |
| depth | integer | no | Backwards hops (default 3, max 10) |
The tests that reach a symbol or a git diff, nearest first, with the files to run. Answers "what do I run before I commit this" without running the suite. Pass symbol for one definition, or nothing (or a rev) for the uncommitted diff. Tests are recognised by the conventions of…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| symbol | string | no | Qualified path#name; omit to use the git diff |
| rev | string | no | Revision to compare against HEAD when no symbol is given; omit for uncommitted changes |
| depth | integer | no | Backwards hops (default 12, max 30) |
| limit | integer | no | How many tests to list (default 50); count and files cover all |
| offset | integer | no | Where the list starts (default 0) |
| min_confidence | string | no | Lowest provenance tier to follow (default ambiguous) |
Files that changed in the same commits as one file, from the git history, with how often and whether the graph connects them at all. A coupled file with no edge in the graph is hidden coupling — a template, a migration, a fixture, a client in another language — that impact cannot…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| file | string | no | Path relative to the tree |
| symbol | string | no | Alternatively a symbol; its file is used |
| commits | integer | no | How many recent commits to read (default 500) |
| top | integer | no | How many coupled files to return (default 10) |
Checks the tree's architecture contract (glasir-rules.txt: deny <path> -> <path>, no-cycles) against the graph, and returns every broken rule with the edges that break it. Pass rules to test a boundary that is not written down yet. With serve --watch the graph follows the…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| rules | string | no | Rules to check instead of the tree's file, one per line |
Definitions nothing in the tree refers to: no call reaches them, no call anywhere uses the name, and the name appears in no text file of the tree more often than it is defined (a local bound by let of the same name does not count). Tests, entry points, annotated or decorated…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | no | Only definitions under this path prefix |
| limit | integer | no | How many to name (default 50) |
| offset | integer | no | Skip this many: the next_offset of a previous answer |
The commits that changed one definition, newest first, with their messages: what a caller reads to learn why the code is the way it is before changing it. A commit counts when one of its changed lines falls inside the definition as the file was at that commit, and not inside a…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| symbol | string | yes | The definition, path#name or a unique name |
| limit | integer | no | How many changes to return (default 10) |
| commits | integer | no | How many recent commits of the file to read (default 200) |
| body_lines | integer | no | Lines of each commit body to return (default 6, 0 for the subject only) |
The HTTP routes this tree declares, each with the handler that serves it, and the requests it sends, each with the definition sending it. Paths are reduced to segments, a parameter as *, which is how a request is matched to a route. Within the tree find_callers and impact…
No parameter schema on file.
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under Apache-2.0
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Glasir or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing ships as a container image. The scanner reads packages on npm and PyPI and public source; an image is neither, so there is no grade here — not a withheld one, an unmeasured one.
Release history
It installs from a container image rather than from a versioned package, so the command cannot be pinned to a release. The history below is for reading; the current release on file is 0.13.2.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Glasir can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.