Tool
import
Import multiplies everything else. Once a source is in the graph, every tool reaches it with the same addresses and the same grammar as your own code — so a question can follow a call out of your service and into the library it depends on without changing tools or losing the thread.
You ask your agent “bring in roslyn so we can read it like our own code” — this is what it sends. The same operation is a shell command, which is the form you script against.
Your agent calls — mcp
You call — cli
What comes back — the same on both surfaces
Only 690 files, for a repository of thirty-two thousand? Roslyn was already mounted on this machine, so
the run reconciled just what had changed upstream — re-import is incremental, and pointing it at
something you already have is always cheap. Either way, once it lands, github://dotnet/roslyn/**
is an address like any other: readable, searchable, and joinable against your own code in a single query.
Pin a version with @ref — github://dotnet/roslyn@v4.9.0.
Parameters
| Parameter | What it does | |
|---|---|---|
| importUri | required | The source to import, in one of the forms below. Prefix with - to remove it. |
What you can import
| Source | What it pulls in |
|---|---|
| github://owner/repo | A GitHub repository. Add @ref to pin a tag, branch, or commit. |
| git://host/path | Any git remote. https://host/path.git@ref, ssh://git@host/path, and git@host:path.git all work too. |
| s3://bucket/prefix/ | An S3 bucket, indexed in place and read-only. Large or binary objects are kept as searchable metadata. |
| local:///absolute/path | A folder on disk — or just .. Live-watched, never cloned, never modified. |
| sarif:///path.sarif | A findings report from Roslyn, Snyk, SonarQube, or anything else that emits SARIF. |
| -github://owner/repo | Remove an import and its indexed data. Local files are never touched. |
How it behaves
- Git and bucket imports return immediately with an operation id; SARIF completes synchronously.
- Re-importing updates incrementally. A SARIF re-import replaces the previous report.
- A local git checkout is promoted to its canonical
github://orgit://identity, so the same repository has one address however you reached it. - Every current import is a row in
SELECT * FROM Filesystems. - A free host holds two imported repos at a time — unimport one to add a third. Signing in removes the limit.
This page names what exists. The depth behind every name ships inside the binary at help:///: the bounds, the failure modes, how they compose. It answers to explore and read exactly like your code does. Install it, and your agent has the manual.