# project-knowledge-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/punic-pillars/project-knowledge-mcp  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/project-knowledge-mcp

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

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

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

## Documentation & README

# Project Knowledge MCP Server

[![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)
[![npm](https://img.shields.io/badge/npm-%3E%3D9-blue)](https://npmjs.com)
[![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)

**A cross-project knowledge graph for the Model Context Protocol (MCP).** Map features across mobile, backend, and admin codebases so your AI agent has full-stack context when testing, writing code, debugging, or adding features.

---

## Quick Start

```bash
npx -y project-knowledge-mcp --knowledge-file ./project-knowledge.json
```

Then add to your MCP settings:

```json
{
  "mcpServers": {
    "project-knowledge": {
      "command": "npx",
      "args": [
        "-y",
        "project-knowledge-mcp",
        "--knowledge-file", "C:\\projects\\project-knowledge.json"
      ],
      "autoApprove": []
    }
  }
}
```

---

## Table of Contents

- [Overview](#overview)
- [Features](#features)
- [Prerequisites](#prerequisites)
- [Installation & Configuration](#installation--configuration)
- [Knowledge File Management](#knowledge-file-management)
- [Tools Reference](#tools-reference)
- [Usage Walkthrough](#usage-walkthrough)
- [Security](#security)
- [Contributing](#contributing)
- [License](#license)

---

## Overview

### The Problem

When working on a project with multiple codebases — for example, a React Native mobile app, a NestJS backend, and a Next.js admin panel — the AI agent has no awareness of how a single feature flows across all three. This leads to incomplete context, missed dependencies, and breaking changes that could have been caught earlier.

### The Solution

This MCP server stores a **knowledge graph** of your features, mapping each workflow step to the relevant screens, endpoints, controllers, and files in every project. The AI agent can then query this graph to understand end-to-end feature flows, detect cross-project impacts before editing files, and keep type definitions synchronized across codebases.

---

## Features

- **Multi-project awareness** — register any number of projects (mobile, backend, admin, etc.)
- **Feature workflow mapping** — define features as ordered steps across all projects
- **Auto-scanning** — discover NestJS endpoints, Next.js pages, and React Native screens automatically
- **Full-text search** — search across features, endpoints, files, and screens
- **Cross-reference lookup** — given a file path, find which features reference it
- **Rich context** — retrieve all endpoints, screens, and files for a feature at a specific workflow step
- **Breaking change detection** — before editing a file, see which other projects will be affected
- **Type/schema synchronization** — map equivalent types across projects (e.g., `ProductCreateDto` ↔ `ProductFormSchema`)
- **Architecture exploration** — browse any project's directory tree with keyword filtering and content highlighting
- **Health validation** — verify that all registered file paths still exist; auto-detect stale entries
- **Persistent knowledge** — auto-saves to a JSON file after every mutation; can be git-tracked and shared
- **100% dynamic** — all configuration via CLI arguments and runtime tools; no source code edits required

---

## Prerequisites

- **Node.js** >= 18
- **npm** >= 9 (or pnpm / yarn equivalent)
- An MCP-compatible client (e.g., VS Code with Cline, any AI-powered IDE)

---

## Installation & Configuration

### Install from npm (recommended)

```bash
npm install --save-dev project-knowledge-mcp
```

Or run directly without installing:

```bash
npx -y project-knowledge-mcp --knowledge-file ./project-knowledge.json
```

### Build from Source

```bash
git clone https://github.com/punic-pillars/project-knowledge-mcp.git
cd project-knowledge-mcp
npm install
npm run build
```

### CLI Flags

All configuration is provided via CLI arguments. No environment variables or configuration files are required.

| Flag | Description | Default |
|------|-------------|---------|
| `--backend-path` | Absolute path to the backend project | — |
| `--backend-framework` | Backend framework (`nestjs`, `nextjs`, `react-native`, or `auto`) | `auto` |
| `--backend-name` | Custom name for the backend project | `backend` |
| `--mobile-path` | Absolute path to the mobile project | — |
| `--mobile-framework` | Mobile framework | `auto` |
| `--mobile-name` | Custom name for the mobile project | `mobile` |
| `--admin-path` | Absolute path to the admin project | — |
| `--admin-framework` | Admin framework | `auto` |
| `--admin-name` | Custom name for the admin project | `admin` |
| `--knowledge-file` | Absolute path to persist the knowledge JSON | `./project-knowledge.json` |

### MCP Client Configuration

**Basic setup** — register projects at runtime via tools:

```json
{
  "mcpServers": {
    "project-knowledge": {
      "command": "npx",
      "args": [
        "-y",
        "project-knowledge-mcp",
        "--knowledge-file", "C:\\projects\\project-knowledge.json"
      ],
      "autoApprove": []
    }
  }
}
```

**Bootstrap setup** — pre-register projects at startup:

```json
{
  "mcpServers": {
    "project-knowledge": {
      "command": "npx",
      "args": [
        "-y",
        "project-knowledge-mcp",
        "--knowledge-file", "C:\\projects\\project-knowledge.json",
        "--backend-path", "C:\\projects\\backend",
        "--mobile-path", "C:\\projects\\mobile",
        "--admin-path", "C:\\projects\\admin"
      ],
      "autoApprove": []
    }
  }
}
```

---

## Knowledge File Management

The knowledge file is a plain JSON file that stores all registered projects, feature workflows, and type mappings. Understanding where it lives is essential for maintaining a consistent knowledge graph.

### The Shared File Pattern

If your fullstack projects live in separate directories (e.g., `backend/`, `mobile/`, `admin/`), each IDE window starts the MCP server from a different working directory. Without `--knowledge-file`, each instance creates its own fragment:

```
backend/
└── project-knowledge.json   ← only backend context

mobile/
└── project-knowledge.json   ← only mobile context

admin/
└── project-knowledge.json   ← only admin context
```

This defeats the purpose of cross-project awareness. **Always use `--knowledge-file` with an absolute path** to point all IDE windows to the same file:

```
projects/
├── project-knowledge.json   ← single source of truth
├── backend/
├── mobile/
└── admin/
```

Use the **same `--knowledge-file` path** in every IDE window, regardless of which sub-project you have open. All instances read and write to the same file, keeping the knowledge graph complete and consistent.

### When the Default Is Safe

The default path (no `--knowledge-file`) is only safe when you open the **monorepo root** — the single directory containing all sub-projects:

```
my-monorepo/              ← open this in your IDE
├── project-knowledge.json   ← created here, covers everything
├── backend/
├── mobile/
└── admin/
```

If your projects are in separate repositories or directories, always use `--knowledge-file`.

### Sharing with Your Team

Since the knowledge file is plain JSON, you can commit it to version control and share it with your team:

```bash
# Track the knowledge graph
git add project-knowledge.json
git commit -m "chore: add project knowledge graph"

# Or keep it local
echo "project-knowledge.json" >> .gitignore
```

> **Guideline**: One fullstack project = one knowledge file. Use `--knowledge-file` with an absolute path whenever your projects live in separate directories.

---

## Tools Reference

### Project Management

| Tool | Description |
|------|-------------|
| `register_project` | Register a project with name, path, and framework |
| `remove_project` | Remove a registered project |
| `scan_project` | Auto-discover endpoints, screens, or pages from a project |

### Feature Management

| Tool | Description |
|------|-------------|
| `register_feature` | Define a feature with its multi-project workflow steps |
| `remove_feature` | Remove a feature |
| `get_feature` | Retrieve full feature details (compact or verbose, with optional health check) |

### Search & Query

| Tool | Description |
|------|-------------|
| `search` | Search across features, endpoints, files, and screens |
| `reverse_lookup` | Find all cross-project references to a file (graph-registered + scan-discovered), plus which features reference it |
| `get_context` | Retrieve cross-project context for a feature or step (with optional impact analysis) |

### Type/Schema Synchronization

| Tool | Description |
|------|-------------|
| `register_type_mappings` | Register one or more type mappings (accepts single object or array) |
| `check_type_mapping` | Find all files across projects that define or reference a type |
| `suggest_type_mappings` | Auto-detect potential type mappings by scanning all projects |

### Architecture Exploration

| Tool | Description |
|------|-------------|
| `get_architecture` | Explore a project's directory tree with optional `filter` (path keyword), `highlight` (content keyword with ★ marker), and `showAll` (full tree with matches marked) |

### Validation

| Tool | Description |
|------|-------------|
| `validate_knowledge` | Check all registered file paths for stale entries; optionally auto-fix with `fix=true` |

### Persistence

| Tool | Description |
|------|-------------|
| `export_knowledge` | Confirm the knowledge file path and trigger an explicit save (auto-persist handles this after every mutation) |
| `import_knowledge` | Load knowledge from a JSON file (merge or replace, with preview) |

---

## Usage Walkthrough

This walkthrough demonstrates the core workflow using a real multi-project setup (NestJS backend, React Native mobile, Next.js admin panel). Domain names have been anonymized — "products" instead of "stations", "orders" instead of "reports" — but every command shown was run against actual projects.

### Step 1: Register Projects

```json
register_project { name: "backend", path: "C:/projects/backend", framework: "nestjs" }
register_project { name: "mobile", path: "C:/projects/mobile", framework: "react-native" }
register_project { name: "admin", path: "C:/projects/admin", framework: "auto" }
```

### Step 2: Scan Projects

Discover endpoints, screens, and pages automatically:

```json
scan_project { projectName: "backend" }
scan_project { projectName: "mobile" }
scan_project { projectName: "admin" }
```

The scanners discover **150+ endpoints**, **200+ screens**, and multiple admin pages across all registered projects.

### Step 3: Define a Feature

Register an **auth** feature — a straightforward flow that touches all three projects:

```json
register_feature {
  name: "auth",
  description: "Authentication flow — login, register, forgot password, email confirmation",
  workflow: [
    {
      step: 1, name: "Login",
      description: "User logs in with email and password",
      mobile: { screen: "LoginScreen", api: "POST /api/v1/auth/email/login" },
      backend: { endpoint: "POST /api/v1/auth/email/login", controller: "AuthController", file: "src/auth/auth.controller.ts" },
      admin: { page: "/login", file: "src/pages/Login" }
    },
    {
      step: 2, name: "Register",
      description: "User registers a new account",
      mobile: { screen: "RegisterScreen", api: "POST /api/v1/auth/email/register" },
      backend: { endpoint: "POST /api/v1/auth/email/register", controller: "AuthController", file: "src/auth/auth.controller.ts" }
    },
    {
      step: 3, name: "Email Confirmation",
      description: "Confirm email address",
      mobile: { api: "POST /api/v1/auth/email/confirm" },
      backend: { endpoint: "POST /api/v1/auth/email/confirm", controller: "AuthController", file: "src/auth/auth.controller.ts" }
    },
    {
      step: 4, name: "Forgot Password",
      description: "Request password reset",
      mobile: { screen: "ForgotPasswordScreen", api: "POST /api/v1/auth/forgot/password" },
      backend: { endpoint: "POST /api/v1/auth/forgot/password", controller: "AuthController", file: "src/auth/auth.controller.ts" }
    },
    {
      step: 5, name: "Reset Password",
      description: "Reset password with token",
      mobile: { screen: "ResetPasswordScreen", api: "POST /api/v1/auth/reset/password" },
      backend: { endpoint: "POST /api/v1/auth/reset/password", controller: "AuthController", file: "src/auth/auth.controller.ts" }
    }
  ],
  test_scenarios: [
    "Login with valid credentials returns token",
    "Login with invalid email returns 401",
    "Register with existing email returns conflict",
    "Forgot password sends email",
    "Reset password with valid token works"
  ]
}
```

### Step 4: Query Features

**Compact mode** — get a summary:

```json
get_feature { name: "auth" }
```

Returns: 5 steps, 5 test scenarios, mobile=5 screens, backend=5 endpoints, admin=1 page.

**Verbose mode** — get full workflow details:

```json
get_feature { name: "auth", verbose: true }
```

Returns all 5 steps with full mobile screens, backend endpoints, controllers, and file paths.

**With health check** — verify all registered paths exist:

```json
get_feature { name: "auth", includeHealth: true }
```

Returns: Health: 5/5 backend ok, mobile=5/5, admin=1/5, 5 test scenarios.

### Step 5: Search and Cross-Reference

**Search across the knowledge graph:**

```json
search { query: "product" }
```

Returns 100+ results across features, workflow steps, backend mappings, mobile mappings, type mappings, and file contents.

**Find cross-project references to a file:**

```json
reverse_lookup { filePath: "auth.controller.ts" }
```

Returns:
- **Feature associations**: Which features reference this file (steps 1–5 of the auth feature)
- **Graph-registered**: 5 exact matches (steps 1–5 of the auth feature, all backend), plus the admin Login page
- **Scan-discovered**: All files across all projects that import or reference `auth.controller.ts`

### Step 6: Type Mappings

**Register a cross-project type mapping:**

```json
register_type_mappings {
  mapping: {
    typeName: "productId",
    sourceProject: "backend",
    sourceFile: "src/products/infrastructure/persistence/relational/entities/product.entity.ts",
    targetProject: "mobile",
    targetFile: "app/_types/ProductTypes.ts",
    description: "Standardizing productId as numeric INTEGER across all projects"
  }
}
```

**Check what references a type before changing it:**

```json
check_type_mapping { typeName: "productId" }
```

Returns all files across all projects that define or reference `productId`.

**Auto-discover potential type mappings:**

```json
suggest_type_mappings { limit: 5, confidence: "high" }
```

Scans all registered projects and finds exact type name matches — returns suggestions with source and target file paths ready to register.

### Step 7: Validate and Export

**Validate knowledge health:**

```json
validate_knowledge
```

Checks all registered file paths across all features and type mappings. Returns a report of existing and missing entries.

**Confirm persistence:**

The knowledge graph is **auto-persisted** after every mutation — `register_project`, `register_feature`, `register_type_mappings`, and `validate_knowledge` with `fix=true` all write to disk immediately. Use `export_knowledge` to confirm the file path before committing to version control:

```json
export_knowledge
```

Returns the path to the knowledge file. Git-track this file to share context with your team.

---

## Security

- **Knowledge file is plain JSON** — you control where it is stored and who has access
- **No credentials stored** — this MCP only stores project paths and feature mappings
- **File scanning is read-only** — scanners only read files, never modify them

---

## Contributing

Contributions are welcome. Please open an issue or pull request for any improvements, bug fixes, or feature requests.

---

## License

[MIT](https://github.com/punic-pillars/project-knowledge-mcp/blob/HEAD/LICENSE)

