Skip to main content
Glama
doko89
by doko89
README.md
# MyContext MCP Server

Personal context MCP server untuk menyimpan dan mengakses dokumentasi project Anda. Mirip dengan Context7, tapi menggunakan file markdown lokal yang Anda kelola sendiri.

## Features

- šŸ“ **Nested Directory Structure** - Organisir context berdasarkan project dan layer (backend/frontend/fullstack)
- šŸ“ **Markdown-based** - Tulis context dalam format markdown yang familiar
- šŸ” **Search Functionality** - Cari keyword across semua project
- šŸ› ļø **4 Tools** - List, structure, read, dan search context files
- šŸ’¾ **Local Storage** - Semua data tersimpan lokal di `~/.mycontext/`

## Installation

1. Clone atau download repository ini
2. Install dependencies:
```bash
npm install
```

3. Build the server:
```bash
npm run build
```

## Setup Context Directory

Buat struktur folder context di `~/.mycontext/`:

```bash
mkdir -p ~/.mycontext
```

### Example Structure

```
~/.mycontext/
ā”œā”€ā”€ project1/
│   ā”œā”€ā”€ backend/
│   │   ā”œā”€ā”€ gin.md
│   │   ā”œā”€ā”€ google-oauth.md
│   │   └── gorm.md
│   └── frontend/
│       ā”œā”€ā”€ react.md
│       └── tailwindcss.md
└── project2/
    └── fullstack/
        ā”œā”€ā”€ nextjs.md
        ā”œā”€ā”€ tailwindcss.md
        └── drizzle.md
```

### Example Context File

`~/.mycontext/project1/backend/gin.md`:

```markdown
# Gin Framework

## Setup
```go
r := gin.Default()
r.Use(cors.Default())
```

## Routes
- `GET /api/health` - Health check
- `POST /api/auth/login` - User login

## Middleware
- CORS enabled
- Logger middleware active
- Custom auth middleware di `/middleware/auth.go`
```

## Configuration

### Claude Desktop

Edit `claude_desktop_config.json`:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`

**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "mycontext": {
      "command": "node",
      "args": ["/absolute/path/to/mycontext-mcp-server/build/index.js"]
    }
  }
}
```

Ganti `/absolute/path/to/` dengan path lengkap ke folder project ini.

### Restart Claude Desktop

Setelah konfigurasi, restart Claude Desktop agar MCP server aktif.

## Available Tools

### 1. `list_projects`
List semua project yang ada di context directory.

**Input:** (none)

**Example Response:**
```json
{
  "projects": ["project1", "project2"],
  "context_directory": "/Users/username/.mycontext"
}
```

### 2. `get_project_structure`
Lihat struktur lengkap sebuah project.

**Input:**
```json
{
  "project_name": "project1"
}
```

**Example Response:**
```json
{
  "name": "project1",
  "type": "directory",
  "path": "project1",
  "children": [
    {
      "name": "backend",
      "type": "directory",
      "path": "backend",
      "children": [
        {
          "name": "gin.md",
          "type": "file",
          "path": "backend/gin.md"
        }
      ]
    }
  ]
}
```

### 3. `read_context`
Baca isi file context tertentu.

**Input:**
```json
{
  "project_name": "project1",
  "file_path": "backend/gin.md"
}
```

**Example Response:**
```
# Gin Framework

## Setup
...
(isi file markdown)
```

### 4. `search_context`
Cari keyword di semua context files.

**Input:**
```json
{
  "query": "oauth"
}
```

**Example Response:**
```json
{
  "query": "oauth",
  "total_results": 2,
  "results": [
    {
      "project": "project1",
      "matches": [
        {
          "file": "backend/google-oauth.md",
          "line": 5,
          "content": "## Google OAuth Setup"
        }
      ]
    }
  ]
}
```

## Usage Tips

### Struktur Context yang Baik

1. **Gunakan headers** untuk organisasi:
   - `#` untuk judul utama
   - `##` untuk sections
   - `###` untuk sub-sections

2. **Include code snippets** dengan syntax highlighting:
   ````markdown
   ```javascript
   const example = "code here";
   ```
   ````

3. **Dokumentasikan**:
   - Setup instructions
   - API endpoints
   - Environment variables
   - Common issues & solutions
   - Best practices

### Example Use Cases

**Saat coding:**
> "Baca context project1 backend gin.md, lalu buatkan endpoint baru untuk user registration yang follow pattern yang ada"

**Saat setup:**
> "Cari semua context yang mention 'environment variables' untuk setup local development"

**Saat debugging:**
> "Lihat struktur project2, kemudian baca context drizzle.md untuk cek database schema"

## Development

### Watch mode
```bash
npm run watch
```

### Update server
Setelah edit `src/index.ts`, rebuild:
```bash
npm run build
```

Lalu restart Claude Desktop.

## Troubleshooting

### Tools tidak muncul di Claude
1. Pastikan path di `claude_desktop_config.json` benar (absolute path)
2. Restart Claude Desktop
3. Check logs di Claude Desktop developer console

### Permission errors
```bash
chmod -R 755 ~/.mycontext
```

### Build errors
Pastikan Node.js version >= 18:
```bash
node --version
```

## License

MIT

## Contributing

Feel free to open issues atau submit pull requests untuk improvements!

---

**Happy documenting! šŸ“š**

TDQS

A3.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_project_structure retrieves directory details for a specific project, list_projects enumerates available projects, read_context accesses file content within a project, and search_context performs keyword searches across all projects. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case: get_project_structure, list_projects, read_context, and search_context. The verbs (get, list, read, search) are distinct and appropriate, and the naming style is uniform throughout the set.

Tool Count5/5

With 4 tools, this server is well-scoped for managing context files and projects. The count is appropriate for the domain, providing essential operations without being too sparse or overwhelming, and each tool serves a clear, necessary function.

Completeness4/5

The tool set covers core operations for context management: listing projects, retrieving structure, reading files, and searching content. A minor gap exists in write/update operations (e.g., creating or modifying context files), but the provided tools allow agents to effectively navigate and query the context system.

Maintenance

ActivityInactive
ResponsivenessNo issues