Skip to main content
Glama
mcp-reposkein

mcp-reposkein

Official
by reposkein

npm CI release License Ko-fi Lulu MCPs

Listed on: skills.sh · Glama · mcpservers.org · ghcr.io

🔭 Live demo → — RepoSkein's own graph, rendered as an interactive 3D constellation in your browser.

Get running in one line: Claude Code: /plugin marketplace add reposkein/reposkein · elsewhere: npx @reposkein/mcp init — full walkthrough in Installation.

Introduction

RepoSkein gives your AI coding agent a map of your codebase — so it navigates structure instead of grepping and guessing.

It uses Tree-sitter to build a deterministic Code Property Graph of your repo — files, classes, functions, imports, and call edges — and serves it to any MCP-capable agent (Claude Code, Cursor, Codex, …). As the agent works, it writes short natural-language summaries onto graph nodes; those summaries are versioned in git alongside the code, so an agent's understanding becomes shared team memory that the next agent — or teammate — starts from.

Who it's for: developers using AI coding agents on real, large, or nested/polyglot codebases, who are tired of the agent burning its context window on grep; and teams who want that hard-won understanding to persist and be shared rather than re-derived every session.

  • ⚡ Zero-infra — no database, no Docker. The graph lives in plain .reposkein/*.jsonl files, rebuilt from your working tree in seconds.

  • 🔒 Deterministic — same code → byte-identical graph. No LLM in the construction path.

  • 🌐 7 languages — Python, TypeScript, JavaScript, Rust, Go, Java, C#.

  • 🧩 Local-first & git-native — the summaries your agents write are committed and travel with your code.

Your agent asks

RepoSkein answers — directly from the graph

"Who calls charge()?"

the exact callers, with one-line summaries

"What breaks if I change this?"

the impacted callers + the tests that cover them

"Where do I even start?"

ranked entry-point functions by meaning, not filename

"What usually changes with this file?"

co-change history from git

In a deterministic, no-LLM benchmark, RepoSkein surfaces the right functions with a mean ~8.4× fewer context tokens than a grep-based agent on structural queries.

The bundled reposkein-graph-rag skill drives a semantic_find → get_context_profile → impact → get_temporal_context → write_semantic_summary → reindex_file loop, so you just ask in plain language. Full workflow, an example interaction, and the tool-by-tool + CLI reference: docs/TOOLS.md.

Related MCP server: Octocode

Table of contents

For teams

Joining a repo that already has RepoSkein set up? One command, no questions asked:

git clone <repo-url> && cd <repo> && npx @reposkein/mcp init

init detects the committed .reposkein/meta.json, reuses its config, and wires up your agent's MCP config automatically. Publish a durable, shareable view of the graph with a hosted constellation (GitHub Pages via reposkein-mcp init --ci) — and because summaries are committed to git, they're shared team memory: every teammate's agent starts from what previous agents already learned, not from scratch.

Support: if RepoSkein is useful, Ko-fi support funds hosted-constellation infrastructure and indexer maintenance — supporters get an ad-free experience once sponsorship tiers ship.

Prerequisites

  • Node.js 18+ — to run npx @reposkein/mcp (the indexer binary is fetched automatically).

  • An MCP-capable agent — Claude Code, Cursor, Codex, Zed, etc.

  • A git repository to index (RepoSkein installs git hooks and reads git history for get_temporal_context).

  • Optional: Docker (only for the embeddings server or the Neo4j backend); Rust (only to build from source).

Installation

Claude Code? Two commands, zero config:

/plugin marketplace add reposkein/reposkein
/plugin install reposkein

The plugin registers the MCP server against whatever repo you have open (REPOSKEIN_REPO_PATH is wired to the project directory) and ships the navigation skills as /reposkein:reposkein-setup and /reposkein:reposkein-graph-rag — run the setup skill once per repo to build the graph. Optional embeddings (Voyage AI or any OpenAI-compatible endpoint) work by exporting the REPOSKEIN_EMBED_* env vars in your shell — the plugin's server inherits them; the default is fully local, zero-egress lexical search.

Any other agent — in the repo you want it to understand:

npx @reposkein/mcp init

This downloads the indexer for your platform, installs git hooks + the navigation skill, builds the initial code graph, and prints an MCP config block. Then:

  1. Add the printed config to your agent (e.g. Claude Code's .mcp.json):

    {
      "mcpServers": {
        "reposkein": {
          "command": "reposkein-mcp",
          "env": { "REPOSKEIN_REPO_PATH": "/path/to/your/repo" }
        }
      }
    }
  2. Verify the graph (init already built it):

    reposkein-mcp doctor .         # ✓ binary  ✓ indexed (N nodes)  ✓ ready
    git add .reposkein/meta.json .reposkein/config.toml && git commit -m "add RepoSkein config"

    nodes.jsonl and edges.jsonl are derived from your working tree and git-ignored — a clone rebuilds them on first use. Re-index after big changes with reposkein-mcp index . (or the agent's reindex_file tool).

  3. Ask your agent "what calls this function?" or "what breaks if I change X?" — it answers from the graph.

Prefer to let your agent set it up? Install the skills and tell it to run the reposkein-setup skill — it installs, indexes, and verifies everything:

npx skills add reposkein/reposkein --all

Platforms: prebuilt binaries for macOS (Apple Silicon), Linux (x64/arm64), and Windows (x64). Elsewhere, point REPOSKEIN_INDEXER_BIN at a from-source build.

Let your agent install it for you

For complex setups — multi-repo workspaces, Neo4j backend, the local embedding server, or wiring up agents besides Claude Code (OpenCode, Cursor, Codex, Continue, Cline, …) — paste this into any MCP-capable agent and it'll walk you through:

Install RepoSkein in this workspace. Read docs/INSTALL.md (or https://github.com/reposkein/reposkein/blob/main/docs/INSTALL.md), walk me through the question tree in §1, then execute §2 onward. If anything fails, troubleshoot via §9 — don't silently skip steps. Confirm with reposkein-mcp doctor . per repo and a semantic_find smoke test before claiming done.

docs/INSTALL.md is written for agents: it covers the decision tree (one repo vs workspace, JSONL vs Neo4j, lexical vs cloud vs local embeddings, which agent CLIs to wire), per-agent config schemas (.mcp.json, opencode.json, .cursor/mcp.json, Continue, Codex, Cline, …), the Apple-Silicon mps native embed-server recipe, and a troubleshooting table.

Supported languages

Python, TypeScript, JavaScript, Rust, Go, Java, C# — with an honest per-language matrix of what resolves exact vs by-name vs ambiguous. Full table + the resolution rules: docs/ARCHITECTURE.md. Adding a language is a well-trodden path — contributions welcome.

Going deeper: how the graph is built + cross-repo federation · the constellation viewer · semantic embeddings · Neo4j backend · shared remote server · building from source + repo layout.

Documentation

Full index, task-oriented: docs/README.md.

Doc

What's in it

mcp/README.md

the @reposkein/mcp package — tools, config, env vars, session usage stats

viz/README.md

the @reposkein/viz constellation viewer — architecture, dev/build

embed-server/README.md

the local embedding server — Docker/GHCR, platforms, GPU

mcp/bench/README.md

Track 1 retrieval benchmark — method + results

mcp/bench/track2/README.md

Track 2 end-task (SWE-bench) harness

CHANGELOG.md

release history (Keep a Changelog)

skills/

the two cross-agent skills

Contributing

Contributions are welcome — bug fixes, new languages, docs. See CONTRIBUTING.md for the dev setup, the determinism invariants you must preserve, and the step-by-step recipe for adding a new language (it's a well-trodden path — Go, Java, and C# were each added the same way). RepoSkein uses Conventional Commits and keeps CI green (determinism gates + clippy + tests).

Acknowledgements

Contact

License

Apache-2.0.

Available Tools

8 tools
get_context_profileGet context profileA

Resolve a function/class (by node_id, file_path+name, or name) and return its caller/callee neighborhood (hops 1-2) with inlined prose and an enrichment_needed list. Never guesses — returns candidates if a name is ambiguous. Pass federated:true to resolve and traverse across nested repos.

Inputs: hops, name, node_id, federated, +1 more.

get_temporal_contextGit temporal contextA

Git-derived signals for a file: how often/recently it changes, who owns it, and which files most often change together with it (co-change) — answers "what else should I touch?". Advisory (derived from git history, not the committed graph). Before a cross-cutting change, use this to find files that historically change together.

Inputs: path (required).

impactChange impact + covering testsA

Given a function/class, return its transitive callers (what could break if you change it) split into impacted code vs the tests that cover it (what to run). Resolves by node_id, file_path+name, or name. federated:true spans nested repos.

Inputs: name, depth, node_id, federated, +1 more.

init_cpg_skeletonBuild the code graphB

Index the repository with the native indexer and load it into the graph database. Run once on a fresh repo (or to rebuild). Returns node/edge counts.

Inputs: full, path.

read_cypherRead-only Cypher queryA

Run a read-only Cypher query against the RepoSkein graph. Writes are rejected. Filter by n.repo_id = $repo_id (or n.repo_id IN $repo_ids); pass federated: true to span this repo and its nested repos via $repo_ids. Results are capped (200 rows / 64KB).

Inputs: query (required), params, federated.

reindex_fileReindex after editingA

Refresh the graph after editing a source file (pass its path). v1 performs a full reindex.

Inputs: path (required).

semantic_findFind code by meaningA

Rank functions/classes by a lexical match over their qualified names, signatures, and agent-written summaries — the entry point to seed get_context_profile when you don't know where to start. Returns ranked node_ids. federated:true spans nested repos.

Inputs: query (required), kind, limit, federated.

write_semantic_summaryWrite semantic summaryA

Attach a 1-3 sentence plain-text business-logic summary to a node, stamped with its current content hash for staleness tracking. Plain text only (no markdown links or code fences), max 1000 chars.

Inputs: node_id (required), summary (required), model.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 8 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: code indexing, context resolution, git temporal analysis, impact analysis, querying, reindexing, semantic search, and summary writing. No overlap or ambiguity.

    Naming Consistency4/5

    Most tools follow a verb_noun pattern (e.g., get_context_profile, read_cypher). However, 'impact' is a single verb that deviates slightly, causing a minor inconsistency.

    Tool Count5/5

    8 tools is well-scoped for a code analysis server. Each tool provides a distinct function without redundancy, and the count feels neither too sparse nor too heavy.

    Completeness4/5

    The surface covers indexing, search, context, temporal analysis, impact, and annotations. Minor gaps exist, such as missing ability to update or delete summaries, but core workflows are well-supported.

    Maintenance

    ActivitySlowing
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      A
      maintenance
      Semantic code indexer with GraphRAG knowledge graph. Index your codebase, search in natural language, and expose everything via MCP so AI agents understand architecture — not just files.
      523
      Apache 2.0
    • A
      license
      A
      quality
      A
      maintenance
      Knowledge graph for token-efficient code reviews. Builds a structural map of your codebase with Tree-sitter, tracks changes incrementally, and gives AI agents precise context via MCP tools. Features fixed multi-word search, qualified call resolution, dual-mode embedding (ONNX local + LiteLLM cloud), and output pagination.
      6
      76
      Apache 2.0