Skip to main content
Glama
mdz-axo

PT-MCP (Paul Test Man Context Protocol)

by mdz-axo
README.md
# PT-MCP (Paul Test Man Context Protocol)

> **"Where am I now?"**

Named after Paul Marcarelli, the Verizon "Test Man" who famously traversed America asking "Can you hear me now?", PT-MCP asks the essential question for AI coding assistants: **"Where am I now?"** - providing comprehensive context understanding through integrated knowledge graphs and semantic schemas.

## The Paul Test Man Story

Just as Paul Test Man mapped Verizon's network coverage across America to ensure clear communication, PT-MCP maps your codebase's semantic landscape to ensure clear understanding. The server doesn't just return code structure - it returns **meaning** through:

- **YAGO 4.5 Knowledge Graphs**: Base knowledge graph segments relevant to your context
- **Schema.org Domain Graphs**: Domain-specific semantic understanding
- **Codebase Analysis**: Comprehensive structure, patterns, and relationships

## Overview

PT-MCP helps AI coding assistants understand your codebase by providing:

- **Comprehensive codebase analysis** - File structure, language distribution, code metrics
- **Context file generation** - Multiple format support (.cursorrules, SPEC.md, etc.)
- **Incremental updates** - Efficient context regeneration based on changes
- **Pattern extraction** - Identify architectural and coding patterns
- **Dependency analysis** - Map internal and external dependencies
- **API surface extraction** - Document public interfaces
- **Context validation** - Ensure accuracy and completeness

## Installation

```bash
npm install
npm run build
```

## Usage

### As an MCP Server

Add to your Claude Code configuration (`~/.config/claude/config.json`):

```json
{
  "mcpServers": {
    "context-manager": {
      "command": "node",
      "args": ["/path/to/context-manager-mcp/dist/index.js"],
      "env": {}
    }
  }
}
```

### Available Tools

#### 1. analyze_codebase

Perform comprehensive codebase analysis including structure, dependencies, and metrics.

```typescript
{
  path: string;              // Root directory path
  languages?: string[];      // Languages to analyze (auto-detect if omitted)
  depth?: number;            // Analysis depth (1-5, default: 3)
  include_patterns?: string[]; // Glob patterns to include
  exclude_patterns?: string[]; // Glob patterns to exclude
  analysis_type?: 'quick' | 'standard' | 'deep'; // Default: 'standard'
}
```

**Example:**
```json
{
  "path": "/path/to/project",
  "analysis_type": "standard",
  "exclude_patterns": ["**/node_modules/**", "**/.git/**"]
}
```

**Returns:**
- Total files, lines, and size
- Language distribution with percentages
- Directory structure and depth
- Entry points identification
- Package information (if available)

#### 2. generate_context

Generate context files in specified format.

```typescript
{
  path: string;
  format: 'cursorrules' | 'cursor_dir' | 'spec_md' | 'agents_md' | 'custom';
  output_path?: string;
  analysis_result?: any;
  options?: Record<string, any>;
}
```

**Note:** Implementation pending (stub currently returns placeholder)

#### 3. update_context

Incrementally update existing context files based on code changes.

```typescript
{
  path: string;
  changed_files: string[];
  context_format: string;
  force_full_regeneration?: boolean;
}
```

**Note:** Implementation pending (stub currently returns placeholder)

#### 4. extract_patterns

Identify and extract architectural and coding patterns.

```typescript
{
  path: string;
  pattern_types?: string[];
  min_occurrences?: number;
}
```

**Note:** Implementation pending (stub currently returns placeholder)

#### 5. analyze_dependencies

Analyze and map internal and external dependencies.

```typescript
{
  path: string;
  include_external?: boolean;
  include_internal?: boolean;
  max_depth?: number;
}
```

**Note:** Implementation pending (stub currently returns placeholder)

#### 6. watch_project

Start monitoring project for changes and auto-update context.

```typescript
{
  path: string;
  context_formats: string[];
  debounce_ms?: number;
  watch_patterns?: string[];
}
```

**Note:** Implementation pending (stub currently returns placeholder)

#### 7. extract_api_surface

Extract and document public API surface.

```typescript
{
  path: string;
  include_private?: boolean;
  output_format?: 'markdown' | 'json' | 'typescript';
}
```

**Note:** Implementation pending (stub currently returns placeholder)

#### 8. validate_context

Validate accuracy and completeness of generated context files.

```typescript
{
  path: string;
  context_path: string;
  checks?: string[];
}
```

**Note:** Implementation pending (stub currently returns placeholder)

### Available Resources

#### context://project/{path}

Current project context including structure, patterns, and dependencies.

#### context://patterns/{path}

Architectural and coding patterns detected in the codebase.

#### context://dependencies/{path}

Internal and external dependency relationships.

## Development Status

### Phase 1: Foundation (āœ… Complete)

- [x] MCP server boilerplate with stdio transport
- [x] Project structure and dependencies
- [x] `analyze_codebase` tool - fully functional
- [x] Stub implementations for remaining tools

### Phase 2: Core Analysis (🚧 In Progress)

- [ ] Implement `generate_context` tool
- [ ] Implement `extract_patterns` tool
- [ ] Implement `analyze_dependencies` tool
- [ ] Add tree-sitter integration for deep code analysis

### Phase 3: Advanced Features (šŸ“‹ Planned)

- [ ] Implement `update_context` tool with incremental updates
- [ ] Implement `watch_project` tool with file system monitoring
- [ ] Implement `extract_api_surface` tool
- [ ] Implement `validate_context` tool

## Architecture

```
context-manager-mcp/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts              # MCP server entry point
│   ā”œā”€ā”€ tools/                # Tool implementations
│   │   ā”œā”€ā”€ index.ts          # Tool registration
│   │   ā”œā”€ā”€ analyze-codebase.ts
│   │   ā”œā”€ā”€ generate-context.ts
│   │   ā”œā”€ā”€ update-context.ts
│   │   ā”œā”€ā”€ extract-patterns.ts
│   │   ā”œā”€ā”€ analyze-dependencies.ts
│   │   ā”œā”€ā”€ watch-project.ts
│   │   ā”œā”€ā”€ extract-api-surface.ts
│   │   └── validate-context.ts
│   ā”œā”€ā”€ resources/            # Resource handlers
│   │   └── index.ts
│   ā”œā”€ā”€ analyzers/            # Code analysis engines (future)
│   ā”œā”€ā”€ generators/           # Context generators (future)
│   ā”œā”€ā”€ utils/                # Utility functions (future)
│   └── types/                # TypeScript type definitions (future)
ā”œā”€ā”€ dist/                     # Compiled JavaScript
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
└── README.md
```

## Testing

Test the MCP server locally:

```bash
# Build the project
npm run build

# Test analyze_codebase tool
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"analyze_codebase","arguments":{"path":"/path/to/project","analysis_type":"standard"}}}' | node dist/index.js
```

## Contributing

This is a work in progress. See the [specification document](../context-manager-mcp-spec.md) for the full implementation roadmap.

### Next Steps

1. Implement context file generators for different formats
2. Add tree-sitter integration for deeper code analysis
3. Implement pattern extraction algorithms
4. Add file system watching and incremental updates
5. Create comprehensive test suite

## License

MIT

## Related Projects

- [Giga AI](https://gigamind.dev/context) - VS Code extension for context management
- [Kilo Code CLI](../projects/kilocode/cli/) - CLI wrapper for VS Code extensions
- [Model Context Protocol](https://modelcontextprotocol.io/) - Protocol specification

TDQS

B3.4/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have clearly distinct purposes, such as analyze_codebase for overall analysis, enrich_context for adding external knowledge, and watch_project for monitoring changes. However, analyze_codebase and analyze_dependencies could be slightly confusing as dependencies are part of codebase analysis, but their descriptions help clarify the separation.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with clear, descriptive names (e.g., analyze_codebase, enrich_context, extract_api_surface). There are no deviations in style or convention, making the set highly predictable and readable.

Tool Count5/5

With 9 tools, the count is well-scoped for the server's purpose of codebase analysis and context management. Each tool appears to serve a specific function in the workflow, from analysis to generation and validation, without feeling excessive or insufficient.

Completeness5/5

The tool set provides complete coverage for the domain of codebase context management, including analysis (analyze_codebase, analyze_dependencies), enrichment (enrich_context), extraction (extract_api_surface, extract_patterns), generation (generate_context), updating (update_context), validation (validate_context), and monitoring (watch_project). There are no obvious gaps, and the tools support a full lifecycle from initial analysis to ongoing maintenance.