repo-knowledgeSAFE
Repo knowledge system — relational catalog with full-text search, audit evidence, and MCP access
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
日本語 | 中文 | Español | Français | हिन्दी | Italiano | Português (BR)
Local-first repo knowledge system built on SQLite and FTS5. Catalogs repositories with structured metadata, thesis notes, architecture docs, audit evidence, and inter-repo relationships — then exposes everything through a CLI and MCP server for AI-integrated workflows.
Why
Package registries and GitHub APIs tell you what a repo is. They don't tell you what it's for, how it relates to your other repos, what its architectural thesis is, or whether it passed your last security audit. repo-knowledge fills that gap: a single local database that holds thesis, architecture, audit evidence, relationships, and full-text search across all of it.
Install
npm install -g @mcptoolshop/repo-knowledge
Requirements:
- Node.js 20+ — this package's
engines.nodeis>=20. The l
99452431d686OBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add sample-test-repo --env GITHUB_TOKEN=${GITHUB_TOKEN} -- npx -y [email protected]{
"mcpServers": {
"sample-test-repo": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}Exposed tools (46)
38 read · 6 write · 2 destructive. Blast radius: 2 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
a | read | an indexable description |
add_relationship | write | Record a relationship between two repos. |
add_repo_note | write | Add a knowledge note to a repo. Use for thesis, architecture, warnings, next steps, etc. |
alpha | read | alpha service with quokka-token in the blurb |
archive_repo | read | Mark a repo archived (lifecycle_status=archived, deprecated_at=now). Preserves all notes/findings — this is the reversible alternative to delete_repo. If reason is given it is recorded as a warning note. Re-archiving is idempotent (re-confirms deprecated_at). |
audit_controls_list | read | List all canonical audit controls, optionally filtered by domain. Use this to know what control IDs to reference when submitting audit results. |
audit_detail | read | Get the full latest audit for a repo: all control results, findings, metrics, and artifacts. |
audit_failing | read | List repos whose LATEST audit has failing controls in a given domain. Returns each failing control id + title + notes per repo. |
audit_findings | read | List open audit findings across the portfolio. Filter by severity or domain. |
audit_portfolio | read | Portfolio-wide audit posture: all repos with their latest audit status, grouped by posture (critical/needs_attention/healthy/unaudited). |
audit_posture | read | Get audit posture for a repo: last audit date, status, open findings by severity, failed domains, pass rate. |
audit_submit | write | Submit audit results for a repo. This is the primary ingestion tool for Claude auditors. Accepts the full audit payload: run metadata, control results, findings, and metrics. |
audit_unaudited | read | List repos that have no audit runs yet. |
b | read | first |
beta | read | beta library |
col-title | read | documented title quux literal marker in the body |
colon-repo | read | the slug hello literal marker phrase lives here |
db_fsck | read | |
delete_repo | destructive | HARD-DELETE a repo and all related rows (notes, facts, docs, relationships, audit runs — FK cascade). IRREVERSIBLE. There is no interactive prompt over MCP, so |
find_repos | read | Filter repos by owner, status, category, language, framework, or app shape. |
get_repo | read | Get full knowledge dump for a repo. Includes tech, notes, facts, releases, relationships. |
health_doctor | read | Single-repo build-health deep dive: CI, declared/observed toolchain + drift, dep-audit (with CVE IDs) and history, workflow actions + permissions. DB-only read (no network refresh). |
health_feed | read | Build-health change feed across the whole portfolio: audit deltas, newly-unpinned actions, broken CI streaks, toolchain drift. DB-only read (no registry/network refresh) — reflects state as of the last |
health_portfolio | read | Portfolio health rollup — one row per repo with CI / dep / action-pin health grades + toolchain-drift flag and inline detail. DB-only read (no network refresh). |
knowledge_stats | read | Show database statistics: counts of repos, notes, docs, facts, releases, relationships. |
multi | read | tagged content |
old | read | desc |
ops_runs | write | List recent operational run rows: db_health_runs (fsck) and/or sync_runs. Read-only audit trail. Use kind to scope to one table. |
r | read | A test repo for FTS |
related_repos | read | Show repos related to a given repo (dependencies, companions, successors, etc). |
repo | destructive | DROP TABLE repos; -- malicious |
repo1 | read | something with ${marker} inside |
repo_diff | read | Per-repo DB-entry change history within a time window: notes added, audit runs, dep-audit severity deltas, published versions. Default window is the last 7 days. DB-only read. |
repo_summary | read | Compact one-paragraph summary of a repo: what it is, what stack, what state, what is next. |
repo_versions | read | List published versions recorded for a repo, grouped per channel (npm / pypi / github-release). READ-ONLY — unlike |
repos_by_stack | read | Find repos using a specific tech stack combination. Example: |
repos_needing_work | read | Find repos that need attention: unaudited, stale, have warnings, or need next steps. |
search_repos | read | Full-text search across all indexed content: docs, notes, repo descriptions. Use this when you remember a concept but not the repo name. |
suggest_dogfood | read | Get dogfood intelligence suggestions (findings, patterns, recommendations, doctrine) for a repo OR a product surface. Specify EXACTLY ONE of repo / surface. |
sync_dogfood | write | Sync dogfood evidence from dogfood-lab/testing-os into repo_facts. One-way read — testing-os remains write authority. |
sync_repos | write | Trigger a full sync: GitHub metadata + local repo scan + FTS reindex. |
test-repo | read | A test |
unicode-edge | read | 日本語 content here |
unicode-fr-acc | read | café au lait french press |
unicode-jp | read | 日本語のテスト |
unicode-survive | read | café tested edge case |
Trust audit
SAFEgrade B · trust 88/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (2 observation(s))
- Network
- declared (5 observation(s))
- Shell
- declared (3 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (17)
delete_repo, repo
checksum = createHash('md5').update(content).digest('hex');return createHash('md5').update(content).digest('hex');const { version: pkgVersion } = require('../../package.json') as { version: string };@modelcontextprotocol/sdk, better-sqlite3, commander, @eslint/js, @types/better-sqlite3, @types/node, @vitest/coverage-v8, eslint
@astrojs/starlight, @mcptoolshop/site-theme, @tailwindcss/vite, astro, tailwindcss
express, better-sqlite3, typescript
8. SECURITY.md stdio MCP — mcp-tool-shop-org · dated 2026-06-22 on tip · `SECURITY.md` L26–30 — MCP server runs locally over stdio with no network endpoints; GitHub sync uses `gh` auth (no credentials
5. VS Code telemetry opt-out / local-first data folder — VS Code Docs — ongoing — https://code.visualstudio.com/docs/configure/telemetry — Hold-with-limit: operator can keep the tool local with no pho
3. HOLD-WITH-LIMIT — Push protection / secret scanning gate class (GitHub Docs) — https://docs.github.com/en/code-security/concepts/secret-security/push-protection — Blocks new land of secret/identity
3. Push protection / secret scanning gate class — https://docs.github.com/en/code-security/concepts/secret-security/push-protection — Hold-with-limit: blocks new land of secret/identity class; does no
3. Push protection / secret scanning gate — GitHub Docs — https://docs.github.com/en/code-security/concepts/secret-security/push-protection — Hold-with-limit: blocks new land of identity class; does n
**Data NOT touched:** no source code is read from GitHub, no credentials are stored, no data is sent to external services.
1. README Security Model HARD — mcp-tool-shop-org · tip `ab89010` (2026-09-11) · `/workspace/studio/repo-knowledge/README.md` L39–41 — **Data touched:** local SQLite + GitHub API metadata via `gh` (re
8. Soft folklore that registry read credentials imply publish rights — Fail-transfer: read packument needs no publish token; soft folklore: 0. Did not publish.
6. Mynampaty, Josephine, Isaacs, McNutt (2026). Linting Style and Substance in READMEs. arXiv:2603.00331 / https://arxiv.org/abs/2603.00331 — LintMe can execute documented CLI/install commands as subs
7. beginners backup FAQ — PATH covered, content uncleared | org: local tip + PR heads | date: 2026-09-23 | path: `site/src/content/docs/handbook/beginners.md` · PRs #17/#19/#24 | Finding: tip FAQ stil
Gates applied: no_behavioural_pass.
99452431d686full audit observations/trust-audit/mcp-server/mcp-tool-shop-org__repo-knowledge.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 99452431d686 | SAFE | B | 88 | first audit |
Questions
What is the repo-knowledge MCP server?
Repo knowledge system — relational catalog with full-text search, audit evidence, and MCP access
What tools does repo-knowledge expose?
46 in total: 38 read-only, 6 that write, and 2 that can delete or overwrite (delete_repo, repo). Every one is listed on this page with its risk.
Is repo-knowledge safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (88/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B. Separately from the audit: 2 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does repo-knowledge need?
It reads GITHUB_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does repo-knowledge run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as sample-test-repo at 1.0.0.
How current is this page?
The grade is for one exact copy of the source (99452431d686), read on 2026-10-12. The repository is watched and re-audited when it changes.