代码上下文映射服务器

PCM MCP Server是一个将代码库转换为智能分层文档系统的工具,为LLM辅助开发提供完美上下文。

  • by Martin-Atrin
  • CSS
  • 本地部署
  • 更新于
在 GitHub 查看 martin-atrin/pcm-mcp

使用说明

PCM MCP服务器

渐进式上下文映射(PCM)作为模型上下文协议(MCP)服务器。将任何代码库转换为智能的分层文档系统,为LLM辅助开发提供完美的上下文。

🎯 什么是PCM?

PCM创建 上下文气泡 围绕代码库中的任何点:

  • 📁 扫描项目以确定文档需求
  • 🔍 生成LLM就绪分析提示
  • 📝 创建结构化 .pcm.md 源代码旁边的文件
  • 🌳 构建全面的上下文树 PCM.md
  • 🎯 按需提供分层上下文

🚀 快速开始

安装

# Global installation (recommended)
npm install -g pcm-mcp-server

# Or local to project
npm install pcm-mcp-server

Claude桌面集成

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "pcm": {
      "command": "pcm-mcp-server"
    }
  }
}

全局安装不起作用时的替代路径:

{
  "mcpServers": {
    "pcm": {
      "command": "node",
      "args": ["/usr/local/lib/node_modules/pcm-mcp-server/dist/index.js"]
    }
  }
}

其他MCP客户端

适用于任何兼容MCP的客户端:

  • 克莱恩 (VS代码)
  • 光标
  • 克劳德桌面
  • 自定义MCP客户端

🛠️ 可用工具

工具 说明 示例用法
pcm-scan 列出未记录的文件/目录 查找需要文档的内容
pcm-ingest 创建占位符PCM文件 准备文档结构
pcm-analyze 生成LLM分析提示 获取上下文感知提示
pcm-write 将文档写入PCM文件 保存分析结果
pcm-update 生成/更新上下文树 创建项目概述
pcm-generate-context 🌟 获取层次结构上下文 非常适合开发工作

💡 关键功能:上下文生成

这 pcm-generate-context 工具是星形功能:

pcm-generate-context({ 
  targetPath: "/project/src/components/Button.tsx",
  includeSource: true
})

返回智能上下文:

  • 🎯 目标:文档+文件来源
  • ⬆️ 父母:来自上述目录的上下文(架构)
  • ⬇️ 孩子们:来自以下文件/组件的上下文(依赖关系)

非常适合:

  • 理解不熟悉的代码
  • 进行有针对性的更改
  • 代码审查
  • 调试
  • 重构

📖 完成工作流程

1.初始设置

// See what needs documentation
pcm-scan({ projectPath: "/path/to/project" })

// Create placeholder files
pcm-ingest({ projectPath: "/path/to/project", batch: 10 })

2.文件编制阶段

// Get analysis prompts
pcm-analyze({ projectPath: "/path/to/project", batch: 5 })

// Write documentation (after using prompts with LLM)
pcm-write({ 
  targetPath: "/path/to/project/src/index.js",
  content: "# Index Module\n\nMain entry point for the application..."
})

3.上下文生成

// Generate context tree
pcm-update({ projectPath: "/path/to/project" })

// Get focused context for development
pcm-generate-context({ 
  targetPath: "/path/to/project/src/components/Button.tsx",
  includeSource: true
})

🏗️ PCM的工作原理

文件结构

your-project/
├── src/
│   ├── src.pcm.md              # Directory documentation
│   ├── components/
│   │   ├── components.pcm.md   # Directory documentation  
│   │   ├── Button.tsx
│   │   ├── Button.pcm.md       # File documentation
│   │   └── Modal.tsx
│   └── utils/
└── PCM.md                      # Root context tree

上下文层次结构

当你打电话的时候 pcm-generate-context 在…上 Button.tsx:

🏗️  your-project/           # Root context
  └── 📁 src/                # Parent context  
    └── 📁 components/       # Parent context
      ├── 🎯 Button.tsx      # Target + source
      └── 📄 Modal.tsx       # Child context

⚙️ 配置

PCM查找 pcm.config.json 在 pcm-tool/ 目录:

{
  "ignoreDirectories": [".git", "node_modules", ".venv", "__pycache__"],
  "criticalExtensions": [".js", ".py", ".json", ".ts", ".tsx", ".jsx"],
  "criticalFiles": ["Dockerfile", "package.json", "README.md"],
  "minFileSize": 20,
  "placeholderText": "[NEEDS_ANALYSIS]"
}

🎨 输出示例

上下文生成输出

# Context Map for Button.tsx

## Target Context
**Path:** src/components/Button.tsx
**Type:** File

React button component with variant support and accessibility features...

### Source Content
\`\`\`typescript
import React from 'react';
interface ButtonProps {
  variant: 'primary' | 'secondary';
  // ...
}
\`\`\`

## Parent Context (Above)
### src
Main source directory containing all application code...

### components  
UI component library with reusable React components...

## Child Context (Below)
### Button.test.tsx
Test suite for Button component...

### Button.stories.tsx
Storybook stories for Button component...

🔧 发展

地方发展

git clone https://github.com/Martin-Atrin/pcm-mcp.git
cd pcm-mcp
npm install
npm run build
npm run dev

测试

npm test
npm run lint

建筑

npm run build
npm run pack-test  # Test package contents

🤝 与现有工具集成

传统PCM工具兼容性

此MCP服务器与现有的Node.js/Python PCM工具协同工作:

# Legacy server (still works)
node pcm-tool/pcm-server.js &

# Legacy CLI (still works)  
python3 pcm-tool/pcm_handler.py ingest /path/to/project

API等价物

MCP工具 传统API 传统CLI
pcm-scan - scan
pcm-ingest POST /ingest ingest
pcm-analyze POST /populate populate
pcm-update POST /update update
pcm-generate-context ✨ 新 ✨ 新

🎯 用例

🔍 代码探索

使用智能上下文浏览不熟悉的代码库

🛠️ 开发工作

在进行更改时获得完美的上下文

📝 文档

构建全面、实时的文档

🔄 代码评审

理解上下文中的变化

🎓 学习

了解架构和模式

📚 资源

可用MCP资源

  • pcm://help -完整的帮助文档

相关链接

🚨 故障排除

常见问题

未找到MCP服务器

# Check global installation
npm list -g pcm-mcp-server

# Or use full path in config
which pcm-mcp-server

权限错误

# Fix executable permissions
chmod +x /path/to/pcm-mcp-server/dist/index.js

配置未加载

  • 确保 pcm.config.json 存在于 pcm-tool/ 目录
  • 检查JSON语法 cat pcm-tool/pcm.config.json | jq

调试模式

{
  "mcpServers": {
    "pcm": {
      "command": "pcm-mcp-server",
      "env": {
        "NODE_ENV": "development"
      }
    }
  }
}

📄 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

🤝 贡献

看 贡献.md 用于开发设置和贡献指南。

📦 出版

此包已发布到npm并在MCP注册表中列出,以便于查找。


将您的代码库转换为智能上下文系统。非常适合LLM辅助开发。 ✨