Skip to main content
Glama
han0420

MCP Dev Standards

by han0420
README.md
# MCP Dev Standards

一个基于 Model Context Protocol (MCP) 的开发规范服务器,为 AI 编程助手提供前后端开发规范的上下文,确保生成的代码符合团队/项目的最佳实践。

## 功能特点

- 🔧 **MCP 协议支持**: 完全兼容 MCP 协议,可与 Cursor、Claude Desktop、VS Code 等 AI 工具集成
- 📚 **多来源文档**: 支持本地文件、远程 API、Git 仓库等多种文档来源
- 🔍 **智能搜索**: 基于关键词的规范文档搜索
- 📦 **内置规范**: 包含前端(Vue、React)、后端(API、数据库)等常用开发规范
- ⚡ **缓存机制**: 内置缓存,提高响应速度
- 🎯 **可扩展**: 支持自定义规范文档和配置

## 快速开始

### 安装

```bash
# 使用 npm
npm install mcp-dev-standards

# 使用 pnpm
pnpm add mcp-dev-standards

# 使用 yarn
yarn add mcp-dev-standards
```

### 配置 Cursor

在 Cursor 的 MCP 配置文件中添加:

```json
{
  "mcpServers": {
    "dev-standards": {
      "command": "npx",
      "args": ["-y", "mcp-dev-standards"],
      "env": {
        "STANDARDS_PATH": "./standards"
      }
    }
  }
}
```

### 配置 Claude Desktop

在 Claude Desktop 配置文件中添加:

```json
{
  "mcpServers": {
    "dev-standards": {
      "command": "npx",
      "args": ["-y", "mcp-dev-standards"]
    }
  }
}
```

## 使用方式

### 可用工具

服务器提供以下 MCP 工具:

#### 1. `resolve-standard-id`

根据关键词搜索匹配的规范文档。

```
输入: { "query": "Vue 组件" }
输出: 匹配的规范文档列表
```

#### 2. `get-standard-docs`

获取指定规范文档的详细内容。

```
输入: { 
  "standardId": "frontend-vue-components",
  "topic": "命名规范",  // 可选
  "maxTokens": 2000     // 可选
}
输出: 规范文档内容
```

#### 3. `list-standards`

列出所有可用的规范分类和文档。

```
输入: { "category": "frontend" }  // 可选
输出: 规范文档列表,按分类分组
```

### 使用示例

在 AI 对话中:

```
用户: 帮我写一个 Vue3 组件

AI: [调用 resolve-standard-id, query="Vue 组件"]
    [调用 get-standard-docs, standardId="frontend-vue-components"]
    
    根据规范,我来为您创建一个符合标准的 Vue3 组件...
```

## 配置文件

在项目根目录创建 `standards.config.json`:

```json
{
  "$schema": "https://mcp-dev-standards.example.com/schema/standards.json",
  "projectTitle": "我的项目规范",
  "description": "项目开发规范文档",
  "sources": [
    {
      "type": "local",
      "path": "./standards"
    },
    {
      "type": "remote",
      "url": "https://api.example.com/standards",
      "headers": {
        "Authorization": "Bearer token"
      }
    },
    {
      "type": "git",
      "repo": "org/standards-repo",
      "branch": "main",
      "path": "docs/standards"
    }
  ],
  "categories": ["frontend", "backend", "custom"],
  "cacheTimeout": 3600,
  "rules": [
    "使用 TypeScript 进行类型安全的开发",
    "遵循团队的命名规范"
  ]
}
```

### 配置项说明

| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| projectTitle | string | "开发规范中心" | 项目标题 |
| description | string | - | 项目描述 |
| sources | array | [{ type: "local", path: "./standards" }] | 文档来源配置 |
| categories | array | ["frontend", "backend", "custom"] | 规范分类 |
| cacheTimeout | number | 3600 | 缓存超时时间(秒) |
| rules | array | - | 全局规则提示 |

### 文档来源类型

#### 本地文件

```json
{
  "type": "local",
  "path": "./standards"
}
```

#### 远程文档

远程文档来源支持三种模式:

**模式 1:直接指向 Markdown 文件**

```json
{
  "type": "remote",
  "url": "https://example.com/docs/vue3.md",
  "headers": {
    "Authorization": "Bearer token"
  }
}
```

**模式 2:配置多个远程 Markdown 文件**

```json
{
  "type": "remote",
  "url": "https://example.com/docs",
  "headers": {
    "Authorization": "Bearer token"
  },
  "docs": [
    {
      "url": "https://example.com/docs/vue3.md",
      "category": "frontend",
      "subcategory": "vue"
    },
    {
      "url": "https://example.com/docs/react.md",
      "category": "frontend",
      "subcategory": "react"
    },
    {
      "url": "https://intranet.company.com/standards/api.md",
      "category": "backend",
      "subcategory": "api"
    }
  ]
}
```

**模式 3:JSON API 返回文档列表**

```json
{
  "type": "remote",
  "url": "https://api.example.com/standards",
  "headers": {
    "Authorization": "Bearer token"
  }
}
```

API 应返回以下格式:

```json
{
  "standards": [
    {
      "id": "vue-components",
      "title": "Vue 组件规范",
      "category": "frontend",
      "content": "# Vue 组件规范\n..."
    }
  ]
}
```

#### Git 仓库

```json
{
  "type": "git",
  "repo": "org/standards-repo",
  "branch": "main",
  "path": "docs/standards",
  "token": "github_token"  // 可选,或使用 GITHUB_TOKEN 环境变量
}
```

## 规范文档格式

规范文档使用 Markdown 格式,支持 frontmatter 元数据:

```markdown
---
title: Vue 3 组件开发规范
description: Vue 3 组件的编写规范和最佳实践
category: frontend
subcategory: vue
tags:
  - vue
  - vue3
  - component
version: "1.0.0"
lastUpdated: "2024-12-23"
---

# Vue 3 组件开发规范

正文内容...
```

### Frontmatter 字段

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| title | string | 否 | 文档标题(可从内容提取) |
| description | string | 否 | 文档描述 |
| category | string | 否 | 分类(可从路径推断) |
| subcategory | string | 否 | 子分类 |
| tags | array | 否 | 标签列表 |
| version | string | 否 | 版本号 |
| lastUpdated | string | 否 | 最后更新时间 |

## 目录结构

推荐的规范文档目录结构:

```
standards/
  frontend/
    vue/
      components.md
      composables.md
    react/
      components.md
      hooks.md
    styles/
      tailwind.md
  backend/
    api/
      restful.md
      error-handling.md
    database/
      naming.md
  custom/
    team-rules.md
```

## 内置规范

本项目包含以下内置规范文档:

### 前端

- **Vue 3 组件开发规范** - Vue 3 组件的编写标准
- **Vue 3 Composables 规范** - 组合式函数的最佳实践
- **React 组件开发规范** - React 函数组件标准
- **React Hooks 规范** - 自定义 Hooks 编写指南
- **Tailwind CSS 规范** - Tailwind CSS 使用规范

### 后端

- **RESTful API 设计规范** - API 设计最佳实践
- **API 错误处理规范** - 统一的错误处理标准
- **数据库命名规范** - 数据库对象命名标准

### 通用

- **团队开发规范** - 团队内部约定和规范

## 开发

### 本地开发

```bash
# 安装依赖
pnpm install

# 开发模式
pnpm dev

# 构建
pnpm build

# 运行测试
pnpm test
```

### 项目结构

```
src/
  index.ts              # 入口文件
  server.ts             # MCP 服务器实现
  tools/
    resolve-standard.ts # 规范搜索工具
    get-docs.ts         # 获取文档工具
    list-standards.ts   # 列出规范工具
  sources/
    local.ts            # 本地文档加载器
    remote.ts           # 远程 API 加载器
    git.ts              # Git 仓库加载器
  utils/
    parser.ts           # Markdown 解析
    cache.ts            # 缓存管理
    manager.ts          # 文档管理器
    search.ts           # 搜索工具
  types/
    index.ts            # 类型定义
standards/              # 默认规范文档
```

## 环境变量

| 变量名 | 说明 | 默认值 |
|--------|------|--------|
| STANDARDS_PATH | 规范文档路径 | ./standards |
| STANDARDS_CONFIG | 配置文件路径 | standards.config.json |
| GITHUB_TOKEN | GitHub API Token(用于 Git 来源) | - |

## 许可证

MIT

## 贡献

欢迎提交 Issue 和 Pull Request!

## 相关链接

- [Model Context Protocol](https://modelcontextprotocol.io/)
- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
- [Cursor](https://cursor.sh/)
- [Claude Desktop](https://claude.ai/)

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: resolve-standard-id searches by keyword, get-standard-docs retrieves content by ID, and list-standards provides a browsable overview. There is no overlap between searching, fetching, and listing.

Naming Consistency5/5

All tool names follow the same verb_noun hyphenated pattern: resolve-standard-id, get-standard-docs, list-standards. The verbs and objects are consistent and readable.

Tool Count5/5

Three tools are well-scoped for a read-only standards documentation server. The set covers the essential operations—search, fetch, and list—without unnecessary extras.

Completeness5/5

The tool surface covers the full lifecycle for a documentation server: discovering standards (list), finding specific ones (resolve), and retrieving details (get). There are no obvious dead ends; the dependency between resolve and get is clearly documented.

Maintenance

ActivityInactive
ResponsivenessNo issues