哦,没有MCP服务器
提供代码性能审查功能的MCP(模型上下文协议)服务器。此服务器提供工具和提示,用于分析代码的性能问题、瓶颈和优化机会。
特性
- 突出显示的文本审阅:分析IDE中选定的代码段
- 单文件审核:分析整个文件的性能问题
- 目录审查:递归扫描和分析目录中的所有文件
- 灵活的输出:代码段/文件的文本输出,目录的书面报告
安装
使用uvx(推荐)
为了快速安装和使用:
uvx --from git+https://github.com/eamonnfaherty/oh-no-mcp-server oh-no-mcp来源
- 克隆此存储库:
git clone https://github.com/eamonnfaherty/oh-no-mcp-server.git
cd oh-no-mcp-server- 使用安装依赖项
uv:
make install对于所有附加功能的开发:
make install-dev用法
作为MCP服务器
使用Makefile运行服务器:
make run或直接与 uv 使用控制台脚本:
uv run oh-no-mcp或与 uvx (无需安装):
uvx --from git+https://github.com/eamonnfaherty/oh-no-mcp-server oh-no-mcpClaude桌面配置
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
使用 uvx 使用git仓库(推荐):
{
"mcpServers": {
"oh-no": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/eamonnfaherty/oh-no-mcp-server",
"oh-no-mcp"
]
}
}
}或使用 uv 从本地克隆:
{
"mcpServers": {
"oh-no": {
"command": "uv",
"args": ["--directory", "/path/to/oh-no-mcp-server", "run", "oh-no-mcp"]
}
}
}可用工具
oh_no
返回检查代码性能的提示。
参数:
scope(必填):审查类型-“文本”、“文件”或“目录”content(必填):代码文本、文件路径或目录路径output_path(可选):对于目录,报告的编写位置
示例:
# Review highlighted text
{
"scope": "text",
"content": "def slow_function():\n result = []\n for i in range(1000):\n result.append(i)"
}
# Review a single file
{
"scope": "file",
"content": "/path/to/your/file.py"
}
# Review a directory
{
"scope": "directory",
"content": "/path/to/your/project",
"output_path": "/path/to/output/performance_report.md"
}可用提示
oh_no
使用与工具相同的参数直接调用绩效评估。
论据:
scope:“文本”、“文件”或“目录”content:代码、文件路径或目录路径output_path:(对于目录)在哪里写报告
审查内容
性能审查分析了以下代码:
- 性能瓶颈:识别操作缓慢和效率低下
- 内存使用:突出显示潜在的内存泄漏或过度分配
- 算法复杂度:分析时间和空间复杂性
- 优化建议:提供可操作的改进
- 最佳实践:推荐行业标准模式
项目结构
oh-no-mcp-server/
├── pyproject.toml
├── README.md
└── src/
└── oh_no_mcp_server/
├── __init__.py
└── server.py发展
此项目使用 uv 用于依赖性管理。所有常见的开发任务都可以通过Makefile获得。
Makefile命令
安装
make install-使用安装项目依赖项uv syncmake install-dev-为开发安装所有附加依赖项
代码质量
make format-使用自动格式化代码black并解决以下问题ruffmake lint-检查代码样式ruff并使用验证格式black(未进行任何更改)
测试
make test-使用以下命令运行所有单元测试pytestmake test-coverage-运行覆盖率报告测试(终端+HTML)make test-coverage-report-在浏览器中打开HTML覆盖率报告
评估
make eval-使用标准输出运行评估测试make eval-verbose-运行具有详细输出的评估测试(包括打印语句)
公用事业
make clean-删除所有构建工件、缓存文件和覆盖率报告
- 删除 __pycache__ 目录 - 去除 .pyc 文件 - 清理干净 .egg-info 目录 - 去除 .pytest_cache, htmlcov, .coverage - 去除 dist 和 build 目录
make run-使用启动MCP服务器uv run oh-no-mcp
测试框架
该项目包括两种类型的测试:
单元测试(tests/)
具有100%代码覆盖率的传统单元测试用于测试单个功能和组件。
评估测试(evals/)
基于语义相似性的高级测试,通过以下方式比较MCP工具的输出:
- BERT嵌入 -通过句子变换器进行语义理解
- 自我BLEU -N-gram重叠测量
- 余弦相似度 -归一化嵌入比较
运行评估测试:
make eval # Run evaluations
make eval-verbose # Run with detailed output每次评估都会提供详细的指标和通过/失败的结果。看 evals/README.md 了解更多详情。
许可证
麻省理工学院
