# Project Memory Documentation

Welcome to the Project Memory documentation. This knowledge graph-based memory system is designed to maintain persistent context for software development projects across multiple chat sessions.

## Table of Contents

- [Getting Started](#getting-started)
- [Documentation](#documentation)
- [Usage Examples](#usage-examples)
- [Contributing](#contributing)

## Getting Started

### Installation

```bash
# Option 1: Run directly with NPX (no installation)
npx mcp-project-memory start

# Option 2: Install globally
npm install -g mcp-project-memory

# Option 3: Clone and install locally
git clone https://github.com/ldavis9000aws/mcp-project-memory.git
cd mcp-project-memory
npm install
npm run build
```

### Running the Server

```bash
# Using NPX (no installation needed)
npx mcp-project-memory start

# If installed globally
mcp-project-memory start

# Start as a background daemon
npx mcp-project-memory daemon

# Specify a custom memory file
npx mcp-project-memory start path/to/memory.json
```

### Testing

```bash
# Run simple feature tests
npm run test:features

# Run the full test suite
npm test
```

## Documentation

- [API Reference](api-reference.md) - Complete reference for all API tools
- [Claude Integration](claude-integration.md) - How to use with Claude and other LLMs
- [Claude Desktop Guide](claude-desktop.md) - Specific integration steps for Claude Desktop
- [LibreChat Integration](librechat.md) - How to use with LibreChat
- [Common Workflows](workflows.md) - Example workflows for different development activities
- [Best Practices](best-practices.md) - Recommendations for effectively using Project Memory

## Usage Examples

### Creating a Project

```json
{
  "name": "create_entities",
  "arguments": {
    "entities": [
      {
        "name": "MyProject",
        "entityType": "Project",
        "observations": [
          "Web application with React frontend and Node.js backend",
          "Started on 2023-04-15",
          "MVP targeted for Q3 2023"
        ]
      }
    ]
  }
}
```

### Adding Components

```json
{
  "name": "create_entities",
  "arguments": {
    "entities": [
      {
        "name": "Frontend",
        "entityType": "Component",
        "observations": [
          "React SPA with Material UI",
          "Uses Redux for state management",
          "Responsive design for mobile and desktop"
        ]
      },
      {
        "name": "Backend",
        "entityType": "Component",
        "observations": [
          "Node.js with Express",
          "REST API with JWT authentication",
          "Connects to PostgreSQL database"
        ]
      }
    ]
  }
}
```

### Defining Relationships

```json
{
  "name": "create_relations",
  "arguments": {
    "relations": [
      {
        "from": "MyProject",
        "to": "Frontend",
        "relationType": "contains"
      },
      {
        "from": "MyProject",
        "to": "Backend",
        "relationType": "contains"
      },
      {
        "from": "Frontend",
        "to": "Backend",
        "relationType": "depends_on"
      }
    ]
  }
}
```

### Recording Issues

```json
{
  "name": "record_issue",
  "arguments": {
    "component": "Frontend",
    "description": "Slow rendering on large data sets",
    "status": "Open"
  }
}
```

### Getting Project Overview

```json
{
  "name": "get_project_overview",
  "arguments": {
    "projectName": "MyProject"
  }
}
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.