MCP图案
MCPatterns是一个模型上下文协议(MCP)服务器,使用户能够保存和检索个性化编码模式。它通过存储按技术、用例和风格分类的结构化模式来帮助LLM学习单个代码是如何编写的。
🧠 目的
此服务器充当LLM代理的持久内存层,允许它们引用用户首选的编码风格、模式和约定。它支持:
- 基于存储模式的个性化代码生成
- 根据用户偏好进行一致的重构
- 使用熟悉模式的风格感知建议
- 跨会话编码实践的长期记忆
🧩 MCP集成
MCP模式遵循 模型上下文协议 规范,提供创建、读取、更新和删除编码模式的工具。它使用JSONL(换行符分隔的JSON)存储来实现原子操作和数据一致性。
🗂 模式模式
interface Pattern {
name: string; // Unique identifier
category: string; // e.g., "Backend", "Frontend", "Database"
description: string; // What this pattern does
use_cases: string[]; // When to use this pattern
technologies: string[]; // Languages, frameworks, libraries
code_examples: { [language: string]: string }; // Code samples by language
}示例图案
{
"name": "Error Handling Middleware",
"category": "Backend",
"description": "Express middleware for consistent error handling with structured responses",
"use_cases": ["API development", "Middleware composition", "Error standardization"],
"technologies": ["Node.js", "Express", "TypeScript"],
"code_examples": {
"JavaScript": "app.use((err, req, res, next) => {\n console.error(err.stack);\n res.status(500).json({ error: 'Something went wrong!' });\n});",
"TypeScript": "app.use((err: Error, req: Request, res: Response, next: NextFunction) => {\n console.error(err.stack);\n res.status(500).json({ error: 'Something went wrong!' });\n});"
}
}🔧 可用工具
MCPatterns提供以下MCP工具:
create_patterns
在数据库中创建多个新的编码模式。
输入:
{
"patterns": [Pattern, ...]
}add_code_examples
向现有模式添加新的代码示例。
输入:
{
"additions": [
{
"patternName": "string",
"examples": { "language": "code" }
}
]
}delete_patterns
按名称删除多个图案。
输入:
{
"patternNames": ["pattern1", "pattern2"]
}delete_code_examples
从模式中删除特定的代码示例。
输入:
{
"deletions": [
{
"patternName": "string",
"languages": ["JavaScript", "TypeScript"]
}
]
}read_patterns
检索所有存储的模式。
输入: 无
search_patterns
在所有字段中按查询搜索模式。
输入:
{
"query": "search term"
}open_patterns
按名称检索特定模式。
输入:
{
"names": ["pattern1", "pattern2"]
}🗄 存储
MCPatterns使用JSONL(换行符分隔的JSON)格式进行数据存储:
- 文件位置:可通过配置
PATTERNS_FILE_PATH环境变量 - 默认位置:
patterns.json在服务器目录中 - 格式:每行包含一个JSON对象
type: "pattern" - 原子操作:完整文件重写可确保数据一致性
🚀 入门指南
安装
git clone https://github.com/nicholasrubright/mcpatterns.git
cd mcpatterns
pnpm install发展
pnpm run dev建筑
pnpm run build跑步
pnpm start
# or
mcpatterns🔧 配置
环境变量
PATTERNS_FILE_PATH:模式数据库文件的自定义路径
- 可以是绝对路径,也可以是相对于脚本目录的路径 - 默认为 patterns.json 在服务器目录中
Claude桌面集成
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"mcpatterns": {
"command": "npx",
"args": ["-y", "@mcpatterns/server"]
}
}
}使用自定义存储路径
{
"mcpServers": {
"mcpatterns": {
"command": "npx",
"args": ["-y", "@mcpatterns/server"],
"env": {
"PATTERNS_FILE_PATH": "/path/to/custom/patterns.json"
}
}
}
}VS代码集成
添加到您的VS代码设置(settings.json):
{
"mcp": {
"servers": {
"mcpatterns": {
"command": "npx",
"args": ["-y", "@mcpatterns/server"]
}
}
}
}💡 使用技巧
LLM代理
MCPatterns在集成到您的AI工作流程中时效果最佳,提示如下:
Before generating code, search my patterns for relevant examples using the technologies I'm working with. Use my established patterns and coding style preferences when creating new code.图案组织
- 使用描述性名称,明确标识模式的目的
- 具有一致类别命名的组相关模式
- 包括全面的用例以提高可搜索性
- 在适用的情况下提供多种语言的示例
最佳实践
- 原子模式:以商店为中心的单一用途模式
- 元数据:包括详细的用例和技术标签
- 版本示例:使代码示例与当前实践保持同步
- 搜索友好:在描述和用例中使用描述性语言
📜 许可证
麻省理工学院
