使用说明
回购入职助理MCP演示
此存储库演示了一个实用的、以开发人员为中心的模型上下文 协议(MCP)服务器。服务器帮助AI客户端进入代码库 通过为存储库检查提供安全的只读功能,可以更快地进行检查。
为什么存在此演示
大多数MCP示例都故意简单,但并不总是现实的。此演示 使用具体的工程工作流程:理解一个不熟悉的存储库。
服务器在一个连贯的故事中公开了所有三个MCP原语:
- 工具:针对存储库上下文的主动操作
- 资源:稳定、可检索的文档有效载荷
- 提示:AI客户端的可重用工作流指令
实施MCP表面
工具:summarize_files_Tool
- 输入:一个或多个文件路径
- 输出:带有元数据、目的提示和预览行的降价摘要
- 安全模型:只读、有界文件读取、二进制检测
工具:find_entry_points_Tool
- 输入:存储库根路径(默认为当前目录)
- 输出:可能的启动/进入文件和信心原因的排名列表
- 启发式:文件名评分加轻量级内容信号检查
资源:project://architecture
- 有效负载来源:resources/architecture.md
- 目的:为AI客户端提供稳定的架构上下文
提示:生成_登机_摘要
- 联合
- promises/onboarding_prompt.txt(模板)
- resources/architecture.md(上下文)
- find_entry_points的实时输出
- 结果:生成入职培训的结构化提示包
仓库的规划
MCP_demo/
├── server.py
├── repo_tools.py
├── requirements.txt
├── documents/
│ ├── instructions.md
│ ├── DEMO_RUNBOOK.md
│ └── VENV_SETUP.md
├── resources/
│ └── architecture.md
├── prompts/
│ └── onboarding_prompt.txt
├── sample_repo/
│ ├── README.md
│ ├── config/
│ │ └── app.yaml
│ └── src/
│ └── main.py
├── scripts/
│ ├── setup_mcpdemo_env.ps1
│ ├── start_mcp_server.ps1
│ └── start_demo_client.ps1
└── tests/
│ ├── test_repo_tools.py
│ └── test_server_handlers.py
快速开始
- 创建并激活虚拟环境(推荐)。
- 安装依赖项:
pip install -r requirements.txt
- 使用一个脚本启动MCP服务器:
.\scripts\start_mcp_server.ps1
- 使用一个脚本启动引导式浏览器演示客户端:
.\scripts\start_demo_client.ps1
-
打开终端输出中显示的URL(默认值:http://localhost:8501).
-
在应用侧边栏中,设置 存储库路径 转到您要分析的任何Python项目文件夹。
- 在以下位置使用绝对路径、相对路径或包含的样本
sample_repo. - 该应用程序验证路径是否存在、是否为目录以及是否包含
.py文件夹。 - 路径验证通过后,配置扫描选项并运行指导步骤。
PowerShell自动化可用:
powershell -ExecutionPolicy Bypass -File .\scripts\setup_mcpdemo_env.ps1 -InstallRequirements
运行本地验证
运行单元测试:
python -m unittest discover -s tests -p "test_*.py" -v
可选语法检查:
python -m py_compile server.py repo_tools.py
演示演练建议
- 跑 连接性和功能(步骤0) 验证MCP传输并列出工具/资源/提示。
- 跑 第一步:寻找切入点 在配置的扫描根上。
- 跑 第二步:总结核心文件 用于目标存储库中的选定文件。
- 跑 步骤3:加载架构资源 以检索稳定的上下文。
- 跑 步骤4:生成入职提示 制作可重复使用的入职指南。
有关预期结果的详细脚本,请参阅documents/DEMO_RUNBOOK.md。
有关课堂就绪的浏览器流,请参阅documents/browser_DEMO_RUNBOOK.md。
当前范围和限制
- 只读设计,安全演示
- 启发式入口点检测(非AST级静态分析)
- 总结是有限度的,以保持回答的简洁性和可预测性
下一个增强功能(可选)
- 添加特定语言的分析器(Python/Node/.NET检测配置文件)
- 添加一个工具来映射高级模块依赖关系
- 为多语言示例存储库添加测试夹具
