Jarvis
Local-first SCIP code navigation and Zoekt search over your own indexed repositories
Connector by phuongddx · GitHub account verified by the MCP Registry
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/phuongddx-jarvis
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.
About
Reviews
Write a reviewNo 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, install config and code. Checked Oct 25, 2026.
Runs code on install
Its package runs an install script (such as npm postinstall or setup.py code) as soon as you install it, before any tool is called. Read the script first.
- Tools
- 4 read · 3 write · 0 delete · 3 not yet classified
- Secrets
- None asked for
- Install scripts
- Runs code on install
- Runs as
- Python package
Tools by what they do 10
Read from the source code; the running server may list different tools.
Read 4 · Look things up without changing anything.
documentSymbolsfindReferencessearchCodesemanticSearch
Write 3 · Create, change, send or run things.
callHierarchyindexRepotypeHierarchy
Not yet classified 3 · We could not tell from the name and description.
blastRadiusgetIndexStatusgoToDefinition
Network hosts it talks to 3
api.github.com· found in codeastral.sh· found in codegithub.com· found in code
Files it touches
/opt/python/cp312-cp312/bin/python3- Your home directory (~)
- Any path the agent passes to its tools
Tools (10)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
blastRadius2-hop bounded BFS over the package dependency graph: every other indexed repo whose package directly (1 hop) or transitively through one intermediary (2 hops) depends on `symbol_or_package` as registered for `repo` (built by `jarvis index`, e.g. `"npm:@scope/name"`). The graph has no per-node timestamp, so freshness is always reported as `unknown` here — an honest limitation, not a bug.
callHierarchyUse instead of grep to find what calls a function and what it calls. Single-level incoming/outgoing call hierarchy for `symbol` within `repo`. `symbol` may be a bare name (`Greeter`), a qualified name (`Greeter.greet`), or a full SCIP symbol string. SCIP-only: requires real SCIP occurrence/enclosing-range data and rejects an opaque `syntax:` identifier with a capability error — call edges are never derived from syntax.
documentSymbolsList every symbol (with its range) defined in `path` within `repo`. Served by the file's SCIP outline when usable, otherwise by real Tree-sitter syntax declarations from the same snapshot — routing is automatic and per-file. A syntax-served response carries a `coverage` object describing that file's parse outcome.
findReferencesUse instead of grep to find every usage of a symbol, without matches in comments, docs, or look-alike names. Every occurrence of `symbol` within `repo`, definition sites included. `symbol` may be a bare name (`Greeter`), a qualified name (`Greeter.greet`), or a full SCIP symbol string. SCIP-only: requires real SCIP occurrence data and rejects an opaque `syntax:` identifier with a capability error, even when other files have SCIP coverage — it never implements lexical references or treats a syntax name match as a reference.
getIndexStatusCall once before the first symbol query in a repo: shows whether it is indexed, how fresh it is, and which tools are available. Whether `repo` has a published index, and its freshness. Pass `repo_path` (the repo's local git working directory) to compare the published commit against `git rev-parse HEAD`; omitted, freshness is reported without a staleness comparison. `searchCoverage` reflects git HEAD at last index time, not the working tree — it does not account for uncommitted or untracked changes. While an index is being built, an `indexing` block reports its state: `starting`, `running`, `…
goToDefinitionUse instead of grep to find where a symbol is defined. Resolve `symbol`'s definition location(s) within `repo`. `symbol` may be a bare name (`Greeter`), a qualified name (`Greeter.greet`), a full SCIP symbol string, or an opaque `syntax:` identifier returned by a prior call. A full SCIP identifier resolves only through SCIP; a `syntax:` identifier resolves only through its exact declaration; a bare/qualified name searches both SCIP definitions and syntax declarations from files without usable SCIP definition coverage.
indexRepoBuild an index for the git repository at `path`, so the other tools have something to read. Takes a filesystem `path` rather than a `repo` slug -- deliberately the only tool that does. Slug derivation is one-way, so the server cannot turn a slug into a path for a repo it has never indexed; `path` is exactly what the caller knows and the registry lacks. The returned `repo` is the slug every other tool accepts. Returns immediately with `state: "starting"`; the index runs in a detached child. Poll `getIndexStatus` until it reports `indexed: true` or a terminal `indexing.state` (`failed-at-start…
searchCodeLexical code search via an embedded Zoekt index (lazy-started on first call). `repo`, if given, is applied as a Zoekt `r:` query filter scoping results to that one indexed repo; omitted, results span every indexed repo. Results answer over the last published index snapshot, not the working tree — `indexedAt` says when that was. Zoekt query syntax is live: `sym:`, `file:`, `lang:`, `case:` filters, `-term` negation, quoted phrases, and `(a or b)` grouping; `sym:` needs universal-ctags installed at index time. `truncated` is true when zoekt found more matches than the returned cap.
semanticSearchNatural-language code search over `repo`: embeds `query`, retrieves top vector matches from the repo's semantic index, and fuses them with Zoekt lexical hits and SCIP symbol-definition matches (when a SCIP index exists) via reciprocal rank fusion. `sources` on each result names which signal(s) contributed; a symbol-only hit carries `content=""` (SCIP stores no source text) with `symbolName` set to the definition's dotted path. Requires the repo to have been indexed with the `semantic` extra installed.
typeHierarchyUse instead of grep to find a type's supertypes and subtypes. Single-level super/subtypes for `symbol` within `repo`. `symbol` may be a bare name (`Greeter`), a qualified name (`Greeter.greet`), or a full SCIP symbol string. SCIP-only: requires real SCIP relationship data and rejects an opaque `syntax:` identifier with a capability error — type edges are never derived from syntax. Returns an explicit capability error when the index carries no relationship data — unpatched `scip expt-convert` (upstream through v0.9.0) does not populate `global_symbols.relationships`, so an empty result would …
Signals
- Stars
- 4
- Forks
- 0
- Open issues
- 1
- Weekly downloads
- 97
- Last commit
- Oct 19, 2026 (10 days ago)
- Last release
- Oct 19, 2026 (10 days ago)
- Last package publish
- Sep 12, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.phuongddx/jarvis- Version
- 0.10.0
- Auth
- No auth
- Packages
- pypi jarvis-mcp
- License
- MIT
- Repository
- github.com/phuongddx/jarvis
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from phuongddx
Cite this page
Jarvis MCP server. Agent Mart. https://agentmart.dev/connectors/phuongddx-jarvis (last updated 2026-10-24)