# io.github.batook22/project-knowledge-mcp (npm · project-knowledge-mcp)

Cross-project knowledge graph for MCP — map features across mobile, backend, and admin codebases.

- Trust score: 69/100 (medium)
- Change this week: +45
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `project-knowledge-mcp`: 69/100 (this document), [markdown](https://verifymcp.io/servers/batook22-project-knowledge-mcp/project-knowledge-mcp.md), [page](https://verifymcp.io/servers/batook22-project-knowledge-mcp/project-knowledge-mcp)

## Channel facts

- Registry: `npm`
- Package: `project-knowledge-mcp`
- Version: `1.0.6`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (98 of 102), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (98 of 102), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 86 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1880 tokens (~117/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add batook22-project-knowledge-mcp -- npx -y project-knowledge-mcp
```

### Codex

```bash
codex mcp add batook22-project-knowledge-mcp -- npx -y project-knowledge-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "batook22-project-knowledge-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "project-knowledge-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add batook22-project-knowledge-mcp --command npx --arg -y --arg project-knowledge-mcp
```

### Hermes

```yaml
mcp_servers:
  batook22-project-knowledge-mcp:
    command: "npx"
    args: ["-y", "project-knowledge-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "batook22-project-knowledge-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "project-knowledge-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 68, +33)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: MIT

### 2026-07-31 (score 35, −26)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 61, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-29 (score 79, +53)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [functional regression] Security disclosure: unverified → fail
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100
- [functional] Licence: MIT

### 2026-07-28 (score 26, +2)

- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Dependency health: unverified → partial

### 2026-07-27 (score 24)

First indexed and scored.

## MCP tools (16)

### `register_project` (~117 tokens)

Register a project (mobile, backend, admin) so the MCP knows its path and framework. Framework can be 'nestjs', 'nextjs', 'react-native', or 'auto' for auto-detection.

Input parameters:

- `description` (string): Optional description of the project
- `framework` (string): 'nestjs', 'nextjs', 'react-native', or 'auto'
- `name` (string, required): Short name (e.g., 'backend', 'mobile', 'admin')
- `path` (string, required): Absolute path to the project directory

### `remove_project` (~30 tokens)

Remove a registered project from the knowledge base.

Input parameters:

- `name` (string, required): Name of the project to remove

### `scan_project` (~54 tokens)

Auto-discover endpoints (backend), screens (mobile), or pages (admin) from a registered project. Returns discovered items for you to link to features.

Input parameters:

- `projectName` (string, required): Name of the registered project to scan

### `register_feature` (~170 tokens)

Define or update a feature with its multi-project workflow steps. Each step maps what happens in mobile, backend, and admin. Steps are ordered — the AI will use this order to understand user flows. Use overwrite=true to replace an existing feature.

Input parameters:

- `description` (string, required): What this feature does end-to-end
- `name` (string, required): Feature name (e.g., 'report', 'stations', 'auth')
- `overwrite` (boolean): If true, overwrite an existing feature with the same name. If false (default), error if feature already exists.
- `test_scenarios` (array): List of test scenarios for this feature
- `workflow` (array, required): Ordered list of workflow steps. Each step describes what happens in mobile, backend, and/or admin at that point in the flow.

### `remove_feature` (~27 tokens)

Remove a feature from the knowledge base.

Input parameters:

- `name` (string, required): Feature name to remove

### `get_feature` (~123 tokens)

Get full details of a feature — all workflow steps with cross-project mappings. Use this to understand how a feature works end-to-end before testing or coding. Set includeHealth=true to also run a health check on the feature. Set verbose=true for full workflow step details (default: compact summary).

Input parameters:

- `includeHealth` (boolean): If true, also run a health check and append results to the output.
- `name` (string, required): Feature name
- `verbose` (boolean): If true, return full workflow step details. If false (default), return a compact summary.

### `search` (~87 tokens)

Search across features, endpoints, files, and screens by keyword. Searches both the in-memory knowledge graph (features, workflow steps, type mappings) AND project file contents on disk. Returns all matches with their context (feature name, step, project, or file path + snippet).

Input parameters:

- `query` (string, required): Search keyword (e.g., 'report', 'station', 'auth', 'controller')

### `reverse_lookup` (~122 tokens)

Given a file path, find all cross-project references to it — both from the Knowledge Graph and by scanning import/require/type-usage in file contents across all registered projects. Use this before editing a file to understand its full blast radius, even when the graph is incomplete. Returns two labeled buckets: graph-registered (formally tracked) and scan-discovered (found ad hoc). Also shows which features and workflow steps reference this file.

Input parameters:

- `filePath` (string, required): Relative path to the file within its project (e.g., 'src/auth/auth.controller.ts')

### `get_context` (~155 tokens)

Get rich cross-project context for a feature at a specific workflow step. Returns all relevant endpoints, screens, pages, and files across all projects. Use this before testing or implementing a feature step. Set analyzeImpact=true to also check for breaking changes across projects. Set verbose=true for full per-step breakdown (default: compact summary).

Input parameters:

- `analyzeImpact` (boolean): If true, also run a breaking change analysis on files referenced in the context.
- `featureName` (string, required): Feature name
- `stepNumber` (number): Workflow step number (optional — returns all steps if omitted)
- `verbose` (boolean): If true, return full per-step breakdown with endpoints/screens/pages. If false (default), return a compact summary.

### `register_type_mappings` (~116 tokens)

Register one or more type mappings between projects. Accepts either a single mapping object OR an array of mappings. For example, if 'StationCreateDto' in the backend corresponds to 'StationFormSchema' in mobile, register that mapping here. Then when you change one, you can check what else needs updating. When registering multiple mappings, this reduces 50+ tool calls to 1, providing massive token savings.

Input parameters:

- `mappings` (array, required): Array of type mapping objects to register (or pass a single mapping object directly)

### `check_type_mapping` (~96 tokens)

Given a type name, find all files across all projects that define or reference it. Use this BEFORE changing a type to know exactly which files in which projects need updating. For example: check_type_mapping('stationId') returns all files in backend, mobile, and admin that use stationId.

Input parameters:

- `typeName` (string, required): Type name to search for (e.g., 'stationId', 'StationCreateDto', 'User')

### `get_architecture` (~189 tokens)

Explore a registered project's directory structure as a formatted tree view. Use this to understand the project layout, find relevant files, or navigate the codebase. Supports optional filtering by path keyword, and optional content highlighting to find files containing a specific keyword (marked with ★). When using highlight, set showAll=true to see the full tree with matches marked, or omit showAll (default false) to show only matching files.

Input parameters:

- `filter` (string): Optional keyword — only show files/folders whose path contains this keyword (case-insensitive)
- `highlight` (string): Optional keyword — scan file contents and mark files containing this keyword with ★
- `projectName` (string, required): Name of the registered project to explore
- `showAll` (boolean): When used with highlight: if true, show the full tree but mark matching files with ★. If false (default), only show matching files.

### `export_knowledge` (~69 tokens)

Save the current knowledge base to the configured JSON file. Note: the knowledge base is auto-persisted after every mutation, so this call is not required to save your work. Use it as an explicit confirmation — it returns the file path so you know where the file lives before committing to git.

### `import_knowledge` (~119 tokens)

Load knowledge from a JSON file. Can merge with existing data or replace it entirely. When merge=false, the current state is auto-backed up before overwriting. Set preview=true to see a diff of what would change without actually importing.

Input parameters:

- `filePath` (string, required): Absolute path to the JSON knowledge file to import
- `merge` (boolean): If true, merge with existing data. If false, replace.
- `preview` (boolean): If true, show a diff of what would change without actually importing. Use this to preview before applying.

### `validate_knowledge` (~137 tokens)

Check all registered file paths across projects, features, and type mappings to detect stale entries. Files that have been renamed, moved, or deleted will be flagged as MISSING. Use this periodically to keep the knowledge graph in sync with the actual codebase. Optionally pass a featureName to validate only files related to that specific feature. Set fix=true to automatically remove stale entries (use with caution).

Input parameters:

- `featureName` (string): Optional — if provided, only validate files related to this feature. If omitted, validate everything.
- `fix` (boolean): If true, automatically remove entries pointing to non-existent files. Use with caution.

### `suggest_type_mappings` (~269 tokens)

Auto-detect potential type mappings by scanning all registered projects for type/interface/class/enum definitions. Finds exact name matches across projects (HIGH confidence) and name-similar matches (MEDIUM confidence) by stripping common prefixes/suffixes like Dto, Schema, Form, Payload, etc. Use this to quickly populate the type mapping registry without manual discovery. Set autoRegister=true to automatically register HIGH confidence matches (exact name matches with exactly 2 occurrences).

Input parameters:

- `autoRegister` (boolean): If true, automatically register HIGH confidence matches (exact name matches with exactly 2 occurrences). Default: false.
- `confidence` (string): Minimum confidence level to include ('high' = exact matches only, 'medium' = exact + similar, 'all' = everything). Default: 'high'.
- `limit` (number): Maximum number of suggestions to return (0 = no limit). Default: 10.
- `projectName` (string): Optional — if provided, only scan this specific project for type definitions.
- `typeName` (string): Optional — if provided, only show suggestions related to this type name (case-insensitive partial match).
- `verbose` (boolean): If true, return full details with file paths and registration instructions. If false (default), return a compact summary.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/batook22-project-knowledge-mcp/project-knowledge-mcp#diagnostics

## Score history

- 2026-08-03: 69
- 2026-08-02: 68
- 2026-08-01: 35
- 2026-07-31: 35
- 2026-07-30: 61
- 2026-07-29: 79
- 2026-07-28: 26
- 2026-07-27: 24

## Links

- npm package: https://www.npmjs.com/package/project-knowledge-mcp
- Socket report: https://socket.dev/npm/package/project-knowledge-mcp
- Repository: https://github.com/punic-pillars/project-knowledge-mcp
- Changelog RSS feed: https://verifymcp.io/servers/batook22-project-knowledge-mcp/project-knowledge-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/batook22-project-knowledge-mcp/project-knowledge-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/batook22-project-knowledge-mcp/project-knowledge-mcp
