使用说明
Mcp服务器
基于模型上下文协议(MCP) 编码会议/体系结构规则检查服务器是。
如果输入其他Git项目(本地路径或Git URL),则MCP将执行依赖性、安全检查和Python/Java规则分析等。 工具(tools) 可通过调用。
结构
server.py—FastMCP实例和@mcp.tool()暴露为 MCP工具 正义。
| 序列号 | 韩文标签 | 工具名称(调用时) | 参数•角色摘要 |
|---|---|---|---|
| 1 | 生存确认 | ping() 检查MCP服务器响应 |
|
| 2 | 检查禁止库 | check_dependencies(local_path?, git_url?, forbidden_libs?) |
示例: lombok 等是否使用(git clone 支持) |
| 3 | 秘密信息候选检测 | scan_secrets(local_path?, git_url?) |
.env、API密钥、令牌模式等 |
| 4 | 详细检查Python规则 | analyze_python(path) |
PEP8·图层·FastAPI规则完整 |
| 5 | Java规则详细检查 | analyze_java(path) 命名、图层、Spring、DTO等规则全部 |
|
| 6 | README/docs代码摘要 | audit_project_vs_docs(project_path, language?, spec_glob?) |
language: python, java▲详细内容如下相关章节·4·5编号工具 |
| 7 | check.md代码摘要 | audit_project_vs_check_spec(project_path, language?, spec_path?) |
默认 spec_path = check.md。基于单规格文档的一致性 |
· 实施模块(与上述工具映射)
| 文件 | 负责的工具编号 | 角色 |
|---|---|---|
convention_checker/core.py |
2, 3 | 本地或Git URL→clone、文件巡回、依赖性、秘密检查 |
convention_checker/spec_audit.py |
6, 7 | 将标记、代码标记、规则结果捆绑在一起,形成文档代码 摘要 返回 |
tools/python/analyze_project.py, tools/java/analyze_project.py, engine/*, rules/* |
4, 5 | 按语言扫描文件、运行规则(RuleResult 列表) |
执行
pip install -r requirements.txt
# MCP stdio (Cursor / Claude Desktop 등에서 subprocess 로 붙을 때 — 기본)
python server.py
# MCP over HTTP (클라이언트가 HTTP MCP 를 지원할 때)
python app/main.py
.env 基本动作不需要。必要时 .env.example 可参考添加。
在Cursor中使用
- 光标设置→ MCP 在中添加服务器
- 设置示例(标准 —
python server.py通过标准I/O处理MCP:
{
"mcpServers": {
"convention-checker": {
"command": "C:/Users/parkj/anaconda3/python.exe",
"args": ["C:/Users/parkj/Documents/GitHub/Mcp-Server/server.py"],
"cwd": "C:/Users/parkj/Documents/GitHub/Mcp-Server"
}
}
}
- 聊天/代理示例
- 检查禁止库:
check_dependencies呃local_path或git_url,必要时forbidden_libs(例如:["lombok"])转发 - 秘密密钥扫描:
scan_secrets呃local_path或git_url传达 - Python/Java规则:
analyze_python/analyze_java将项目根路径传递给 - 文档核对摘要:
audit_project_vs_docs呼叫 - check.md条件摘要:
audit_project_vs_check_spec(project_path, language, spec_path?)呼叫
- 检查禁止库:
在Claude中使用
克劳德桌面如图Cursor所示 mcpServers 呃 command / args / cwd 以启动服务器进程。 与上面Cursor节中的JSON相同放进去就可以了(python/paths 仅根据您的环境进行修改)。
- 打开配置文件
- 视窗:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- 视窗:
mcpServers呃convention-checker添加项目(如果有现有服务器 合并).- 保存后 重新启动Claude Desktop →在对话中确认MCP工具连接。
参考:仅Web浏览器中的Claude(chat)无法粘贴本地MCP。HTTP MCP app/main.py +取决于客户端是否支持SSE/HTTP。
通用分析流(Python/Java)-工具 4·5
analyze_python / analyze_java 在里面按以下顺序操作。
步骤韩文函数计算
|:---:|:---|:---|
|1|加载项目| load_project(path) →根路径·元信息|
| 2 |文件扫描| Python: scan_python_files(project) → .py 全部/Java: scan_java_files(project) → .java 全部|
执行规则 run_rules(files, rules) →内容、AST、导入等准备后 *_rule 顺序调用→ RuleResult 列表 |
审计工具 6·7在内部进行相同的分析(analyze_*_project),只简短地返回摘要。
文档代码审核-工具 6·7
共同:为了缩短MCP响应 不包含违规列表、文件路径和长建议语句。 详细内容相同 project_path路 工具4 或 5请呼叫。
6.README/docs代码(audit_project_vs_docs)
| 项目 | 内容 |
|---|---|
| 韩文标签 | README•docs标准摘要审核 |
| 阅读文档 | README.md(大小写转换之一)+ docs/**/*.md +(可选) spec_glob |
| 参数 | project_path(必需), language(python, java,默认 python), spec_glob(可选) |
| 支持的语言 | python, java万。除此之外 unsupported_language |
返回字段
字段韩文
|:---|:---|
| situation |判定代码(下表)|
| summary |单行摘要|
| violations |违规次数|
| doc_files |读取的Markdown数量|
| drift |推测为文档中没有的堆栈时,代码提示(逗号字符串)或 null |
| language |应用语言|
situation (6号)
值韩文
|:---|:---|
| aligned |匹配|
| spec_insufficient 文档不足(无md或正文合计少于250个字符)
| mismatch |不一致(违反规则或文档信号vs代码标记不一致)|
| unsupported_language |不支持 language |
drift 示例代码(部分值):Python- undocumented_fastapi, undocumented_pydantic, undocumented_pytest Java undocumented_spring, undocumented_jpa, undocumented_junit, undocumented_lombok 等。
7.check.md代码(audit_project_vs_check_spec)
| 项目 | 内容 |
|---|---|
| 韩文标签 | 基于单个规格文件的摘要审核 |
| 阅读文档 | 项目根目录中的一个文件(默认 check.md, spec_path可更改为) |
| 参数 | project_path, language, spec_path(可选,默认 check.md) |
| 追加返还 | spec_file -实际读取的规格文件路径 |
situation (7号) -加上6号价 spec_not_found(路径中没有文件)。其余 spec_insufficient / mismatch / aligned / unsupported_language 意思和6号一样。
check.md 模板
此存储库根目录的 check.md示例。放在检查对象项目上 工具7调用即可。
Python规则列表-工具 analyze_python (4)
对象:Python项目根。
区分韩文规则名称
|:---|:---|:---|
|样式|变量snake_case | pep8_variable_naming_rule |
|样式|单行超过120个字符 pep8_line_length_rule |
|直接禁止图层| router→repository | python_layered_router_repository_rule |
|层|router依赖于服务| python_layered_router_service_rule |
|层|服务禁止反向依赖router/controller python_layered_service_repository_rule |
|层|包结构(router/controller是否在repo•service之下)| python_layered_package_structure_rule |
| FastAPI |路由器导入FastAPI路由器| fastapi_router_rule |
使用、依赖FastAPI|fastapi模块| fastapi_dependency_rule |
| FastAPI |请求/响应/计划分离名称| fastapi_request_response_schema_rule |
Java规则列表-工具 analyze_java (5)
对象:Java/Spring项目根。
区分韩文规则名称
|:---|:---|:---|
|样式|类PascalCase| java_class_naming_rule |
|样式|方法camelCase| java_method_naming_rule |
|图层| controller→repository直接禁止| java_layered_controller_repository_rule |
|层| controller依赖于服务| java_layered_controller_service_rule |
禁止反向依赖层service controller java_layered_service_repository_rule |
|Service|更改数据时 @Transactional | java_service_transaction_rule |
[Service|构造函数注入(字段 @Autowired 智阳) java_service_constructor_injection_rule |
|Service|停止直接返回实体、DTO等 java_service_return_dto_rule |
| DTO |请求/响应区分| java_dto_request_response_separation_rule |
|春天| @RestController / @Controller | spring_controller_annotation_rule |
|春天| ResponseEntity /通用 ApiResponse 等| spring_controller_response_wrapper_rule |
|春天| @Service | spring_service_annotation_rule |
|春天| @Repository | spring_repository_annotation_rule |
单行摘要
4·5:加载→扫描→ *_rule 运行→ RuleResult 列表。6·7:将文档+等分析捆绑在一起 简短摘要返回满。