CheckChinaTransit — China 24/240-Hour Visa-Free Transit Compliance Engine
Verify China 240-hour (formerly 144h) visa-free transit eligibility, ports & third-country routes.
Description from the maker (original English)
Structural graph map of any codebase so LLMs navigate by structure, not guesswork.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
REPO_GRAPH_REPOYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"repo-graph": {
"command": "uvx",
"args": [
"mcp-repo-graph"
],
"env": {
"REPO_GRAPH_REPO": "your-value"
}
}
}
}Run this in your terminal
claude mcp add repo-graph --env REPO_GRAPH_REPO=your-value -- uvx mcp-repo-graphFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"repo-graph": {
"command": "uvx",
"args": [
"mcp-repo-graph"
],
"env": {
"REPO_GRAPH_REPO": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"repo-graph": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-repo-graph"
],
"env": {
"REPO_GRAPH_REPO": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
REPO_GRAPH_REPO envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026
The registry name was verified with the GitHub account James-Chahwan, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.5.4) reached the registry 6 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: CheckChinaTransit — China 24/240-Hour Visa-Free Transit Compliance Engine, Restaurant Health Inspections, OrangeRide Gatwick transfers
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Verify China 240-hour (formerly 144h) visa-free transit eligibility, ports & third-country routes.
Restaurant health inspection grades and violations for 20 US, UK, Canadian and French locations.
Quote and request pre-booked private hire transfers to and from Gatwick Airport, UK.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Structural graph memory for AI coding assistants. Map your codebase. Navigate by structure. Read only what matters.
repo-graph gives LLMs a map of your codebase — entities, relationships, and flows — so they can navigate to the right files without reading everything first.
Instead of flooding an LLM's context window with your entire codebase (or hoping it guesses right), repo-graph builds a lightweight graph of what exists, how things connect, and where the entry points are. The LLM queries the graph, finds the minimal set of files it needs, and reads only those.
It pays off most where that's hardest to do by hand: large repos, monorepos that span several languages, and multi-service systems where a feature's path crosses files, stacks, and service boundaries. On a small single-language project a model can just read the files — see Where it fits best for the honest sweet spot.
Install in one click:
Or one command in your terminal wires up every agent you have: uvx mcp-repo-graph install (see Install).
### Upgrading to 0.5.4
Most people don't have to do anything.
uvxandpip install mcp-repo-graphpull in the new
engine (glia 0.5.7, pinned exactly). The first start in each repo reparses everything once. Same
six tools, same arguments.
You only need to act in two cases:
- You hand-wrote stanzas in `.glia/overlay.toml`. Add
origin = "human"to each[[wrapper]],
[constants]and[[route_prefix]]stanza you wrote yourself. An unmarked stanza is now treated
as model-written, and the links it creates are ranked heuristic.
- You also run glia's own CLI hooks in the same repo. Reinstall the CLI at
v0.5.7too, or the
two rebuild each other's cache on every commit.
What's better: MCP servers (Python
@mcp.tool(), the TypeScript SDK'sMcpServer) are read as
hosts, so their tool functions are entry points, not dead code. Every declared entry (host starts,
scripts,
__main__guards) now starts a flow. Rails nested resources, C#[HttpX]+[Route]
actions, Angular lazy routes and Solidity events come out right. Test-to-code pairing and Python
attributes are less noisy.
### Upgrading to 0.5.3
Most people don't have to do anything.
uvxandpip install mcp-repo-graphpull in the new
engine (glia 0.5.6, pinned exactly). The first start in each repo reparses everything once.
Three things changed that you might notice:
- `impact` answers big radiuses as an overview. A hub node used to return every row (thousands
on a large repo). It now returns the top 25, then the areas and files the rest fall in. Drill in
with
scope=, page withoffset, or passfull=truefor the old every-row answer. If a
script parses
repo-graph impactoutput and needs every row, add--full.
- The skills are renamed
repo-graph-→glia-(/repo-graph:glia-find). They
now live in glia and also show the
gliaCLI command. The plugin updates them for you.
- Absence tiers are lowercase:
No answer (no_match, fact), notFACT.
If you also run glia's own CLI hooks in the same repo, reinstall the CLI at
v0.5.6too, or
the two rebuild each other's cache on every commit.
What's better: rankings put files that historically change together first (once you've run
uvx --from glia-cli glia history sync .), far fewer phantom edges in every language, routes carry their mount prefix
(Django, Flask / FastAPI, Express / Koa / NestJS, gin groups), the graph knows what a Dockerfile,
compose service, Procfile or systemd unit starts, Lua is parsed, and the file watcher updates the
graph in place instead of rebuilding it. Every tool is also a shell command (`uvx mcp-repo-graph
find checkout`), no server needed.
### Upgrading to 0.5.2
Most people don't have to do anything.
uvxandpip install mcp-repo-graphpull in the new
engine (glia 0.5.1, pinned exactly). The cached graph in
.glia/graph/is in a new format, so the
first start in each repo rebuilds it once. After that it's back to normal.
You only need to act if you also run glia's own CLI hooks (
glia install-hooks) in the same
repo. Reinstall the CLI from the
v0.5.1tag too. If the CLI and the server are on different glia
versions, they rebuild each other's cache on every commit.
The same goes for a team that commits the cache with repo-graph's pre-commit hook: the next
commit re-adds it once in the new format, and anyone whose server still runs the glia 0.5.0 engine
rebuilds it on every load until they upgrade (
uv tool upgrade mcp-repo-graphif you installed it
as a uv tool).
What's better: a richer graph (mounted Go routes carry their prefix, frontend endpoints pair through
their base URL, many more calls resolve),
readshows the host a WebSocket / gRPC / GraphQL client
dials, and the server no longer creeps up in memory over long sessions.
### ⚠️ Upgrading to 0.5.0
The engine package was renamed `repo-graph-py` to `glia-py`. If you install with
uvxor
pip install mcp-repo-graph, you don't have to do anything. The new engine is pulled in for you.
You only need to act if you import the engine directly:
`diff
- import repo_graph_py as rg
+ import glia_py as rg
`
Three other things changed in that same release:
- The answers are Python objects, not JSON strings.
find,resolve,blast_radius,
cross_stack_traceandgoverning_docsreturn a{"results": [...], "absence": {...}}dict.
If you were doing
json.loads(...)on a result, drop it.
- `find_node` and `find_nodes_by_qname` are gone. One
find(query, top_k)replaces both.
- The graph cache moved from
.ai/repo-graph/to.glia/graph/. It's rebuilt automatically,
so you can delete the old directory. The new one ignores itself and never shows up in
git status.
The six MCP tools are unchanged (
orient,find,impact,trace,read,refresh), so
nothing in your agent config needs touching. Full detail in the
https://github.com/user-attachments/assets/a1e4171b-b225-40d4-9210-39453e14b76a
https://github.com/user-attachments/assets/fc3191e5-fc35-4bd7-8372-72af55995883
Same bug, same model, same prompt — the only difference is whether repo-graph is installed.
The task: fix a reversed comparison operator in a Go + Angular monorepo.
*(Recorded on an earlier engine, which mapped that repo to 566 nodes / 620 edges. The glia 0.5.1 engine extracts far more from the same code, 3,466 nodes and 6,869 edges (measured 2026-10-02), so the graph the model gets today is richer than the one in the video. The token and time figures are from the recorded run and are left as measured.)*
| Without repo-graph | With repo-graph | |
|---|---|---|
| Tokens used | 75,308 | 29,838 |
| Time to fix | 4m 36s | ~30s |
| Files explored | ~15 (grep, read, grep, read...) | 2 (trace lookup + handler file) |
| Outcome | Found and fixed the bug | Found and fixed the bug |
2.5x fewer tokens. ~9x faster. Same correct fix.
Both runs used identical conditions to keep the comparison fair:
/clear with no prior conversationgroup_controller.go:57 on its ownWithout repo-graph, Claude greps for keywords, reads files, greps again, reads more files, and eventually narrows down to the bug. With repo-graph, Claude calls trace("groups"), gets back the exact handler function and file, reads it, and fixes it.
Browse pre-generated examples for FastAPI, Gin, Hono, and NestJS — real graph output you can inspect without installing anything.
LLMs working on code waste most of their context on orientation:
This is expensive, slow, and gets worse as codebases grow.
repo-graph scans your codebase once and builds a graph of:
Then it exposes 6 MCP tools that let the LLM:
The LLM gets structural context in a few hundred tokens instead of reading thousands of lines.
repo-graph earns its keep when a codebase is bigger or more tangled than the model can hold in its head at once. The payoff scales with three things:
Strong fits:
--repo at the monorepo root and a single graph spans every project. *(The demo above is exactly this: Go + Angular in one repo.)*Other tools link fetch/axios to Express, Fastify and Koa routes. What differs here is reach: the same pairing runs across Go, Python, Java, C#, Rust, PHP, Ruby and the rest, in one graph, and covers gRPC, GraphQL, WebSockets, queues and events on the same footing. That breadth is not benchmarked against them, so take it as a design difference rather than a measured win.
Only the beginning is shown; read the rest in the repo