Token导航 LogoToken导航TokenDH.com
Periphery MCP logo
运维云端stdio官方级别未说明来源级核验

Periphery MCP

MCP Server

一个通过模型上下文协议(MCP)提供iOS/macOS项目静态分析能力的服务,专注于检测未使用代码并提供详细报告。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
静态分析PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

cculbreath

提供方

cculbreath

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install "mcp[cli]==1.*" pexpect rich

详细介绍

外围MCP服务器

一个模型上下文协议(MCP)服务器,它公开 外围 通过iOS/macOS项目的静态分析功能 基于标准输入/输出(stdio)传输的模型上下文协议.

概述

此服务器封装了Periphery的死代码检测功能,使其可供Claude Desktop等MCP感知客户端访问。通信完全通过MCP的stdio传输进行--没有启动或暴露HTTP服务器该服务器为Swift/Objective-C项目提供自动设置、构建验证和全面的静态分析扫描。

特性

  • 自动设置:具有合理默认值的交互式外围设备配置
  • 构建验证:预扫描构建验证,以便及早发现问题
  • 结构化分析:JSON格式的扫描结果,带有详细的问题报告
  • 错误处理:全面的错误报告和可操作的反馈
  • MCP集成:与Claude Desktop和其他MCP客户端无缝集成

先决条件

  • macOS:Xcode和iOS/macOS开发所需
  • 项目:用于构建iOS/macOS项目
  • 外围:通过Homebrew安装: brew install peripheryapp/periphery/periphery
  • Python 3.8+:用于运行MCP服务器

安装

  1. 克隆或下载 此存储库
  2. 创建conda环境:
   conda create -n periphery-mcp python=3.12
   conda activate periphery-mcp
  1. 安装依赖项:
   pip install "mcp[cli]==1.*" pexpect rich

用法

启动服务器

服务器以MCP stdio传输方式运行(用于与Claude Desktop集成):

cd /path/to/periphery-mcp
conda activate periphery-mcp
python periphery-mcp-server.py

当与Claude Desktop集成时,服务器通过stdin/stdout进行通信。对于独立测试,您可以使用MCP CLI工具。

可用工具

1. periphery_setup

运行Periphery的交互式设置向导以创建 .periphery.yml 配置文件。

参数:

  • project_path (string):Xcode项目目录的路径

退货:

  • success (boolean):安装是否成功完成
  • yml (string | null):生成的YAML配置
  • log_tail (数组):设置进程日志输出

2. project_build

在运行静态分析之前,验证项目是否成功构建。

参数:

  • project_path (string):Xcode项目目录的路径
  • scheme (string,可选):要构建的Xcode方案

退货:

  • build_ok (boolean):构建是否成功
  • log_tail (数组):生成错误消息(如果有的话)

3. periphery_scan

执行全面的静态分析以检测未使用的代码。

参数:

  • project_path (string):Xcode项目目录的路径
  • extra_args (array,可选):其他Periphery命令行参数

退货:

  • build_ok (boolean):扫描是否成功完成
  • issues (数组):检测到位置信息问题
  • raw_json (object|null):JSON格式的完整外设输出
  • build_error (对象|null):扫描失败时的错误详细信息

问题格式示例

{
  "kind": "unused_function",
  "identifier": "MyClass.unusedMethod()",
  "file": "/path/to/MyClass.swift",
  "line": 42
}

与Claude Desktop集成

要将此服务器与Claude Desktop一起使用,您需要将其添加到MCP配置中:

步骤1:添加到Claude桌面配置

编辑您的Claude Desktop配置文件(位于 ~/Library/Application Support/Claude/claude_desktop_config.json)并将以下条目添加到 mcpServers 章节:

{
  "mcpServers": {
    "periphery-mcp": {
      "command": "/path/to/conda/envs/periphery-mcp/bin/python",
      "args": [
        "/path/to/periphery-mcp/periphery-mcp-server.py"
      ],
      "env": {
        "CONDA_DEFAULT_ENV": "periphery-mcp"
      }
    }
  }
}

替换路径 根据您的实际安装路径:

  • /path/to/conda/envs/periphery-mcp/bin/python → 您的conda环境Python可执行文件
  • /path/to/periphery-mcp/periphery-mcp-server.py → 此服务器脚本的路径

第二步:找到你的Python路径

要查找您的conda环境Python路径:

conda activate periphery-mcp
which python

步骤3:重新启动克劳德桌面

更新配置后,重新启动Claude Desktop以使更改生效。

步骤4:使用自然语言命令

配置后,您可以使用自然语言分析您的项目:

  • “扫描我的iOS项目以查找死代码”
  • “检查我的项目是否成功构建”
  • “为我的新Swift项目设置外围设备”

替代方案:使用附带的启动脚本

为了更容易配置,您可以使用附带的启动脚本自动检测您的conda安装:

chmod +x start-server.sh
./start-server.sh

启动脚本将:

  • 自动检测常见的conda安装位置
  • 更改到正确的目录
  • 激活外围mcp环境
  • 启动服务器

然后使用这个更简单的Claude Desktop配置:

{
  "mcpServers": {
    "periphery-mcp": {
      "command": "/absolute/path/to/periphery-mcp/start-server.sh"
    }
  }
}

替换 /absolute/path/to/periphery-mcp/ 带有项目目录的实际路径。

工作流示例

  1. 设置:首次运行创建 .periphery.yml 具有项目特定配置
  2. 构建检查:验证项目是否成功编译
  3. 扫描:分析代码中未使用的声明、导入和协议
  4. 审查:检查结果并删除已识别的死代码

配置

服务器通过交互式设置自动处理外围设备配置。常见的配置选项包括:

  • 构建目标:要分析哪些方案/目标
  • 文件模式:包括/排除特定文件或目录
  • 分析深度:静态分析应该有多彻底

故障排除

命令行测试

您可以在没有Claude Desktop的情况下直接从命令行测试工具:

# Test scanning a project
python cli_test.py scan /path/to/your/ios/project

# Test building a project (optionally specify scheme)
python cli_test.py build /path/to/your/ios/project [scheme]

# Test Periphery setup
python cli_test.py setup /path/to/your/ios/project

# Scan with extra Periphery arguments
python cli_test.py scan /path/to/your/ios/project --verbose

这将向您准确显示每个工具返回的内容,并帮助您识别以下方面的任何问题:

  • 路径分辨率
  • 外围设备安装
  • 项目构建问题
  • 配置问题

工具超时和无反馈

如果您在使用Claude Desktop中的工具时遇到超时:

  1. 首先从命令行进行测试:使用 python cli_test.py scan /path/to/project 验证该工具在Claude Desktop之外是否正常工作
  1. 检查克劳德桌面日志:在Claude Desktop的日志中查找调试输出

- 打开克劳德桌面 - 转到帮助→ 显示日志或检查控制台输出 - 寻找 [PERIPHERY-MCP DEBUG] 消息

  1. 测试服务器功能:使用附带的测试脚本:
   python test_tools.py

这可以直接测试工具的功能,而无需MCP协议开销。

  1. 调试步骤:

- 首先,使用CLI进行测试: python cli_test.py scan /your/project/path - 检查Claude Desktop日志中的MCP通信错误 - 验证您的项目路径是否正确且可访问 - 确保安装了所有必备组件

  1. 检查先决条件:

- 验证外围设备是否已安装: periphery version - 确保Xcode已安装并正常工作 - 首先测试你的项目是否在Xcode中构建 - 确保conda环境已正确激活

  1. 常见超时原因:

- 大型项目需要时间进行分析(对于非常大的代码库,最多需要30分钟) - Xcode依赖解析过程中的网络问题 - 缺少构建依赖项或证书 - Xcode项目文件损坏

调试输出

服务器将详细的调试信息记录到stderr,该信息显示在Claude Desktop日志中。每个工具执行显示:

  • 输入参数和路径分辨率
  • 命令执行细节和时间
  • 带有完整堆栈跟踪的错误消息
  • 外围设备设置和扫描进度

调试日志条目示例:

[PERIPHERY-MCP DEBUG] periphery_scan called with project_path: /path/to/project, extra_args: None
[PERIPHERY-MCP DEBUG] Resolved project path: /path/to/project
[PERIPHERY-MCP DEBUG] Checking for config file: /path/to/project/.periphery.yml
[PERIPHERY-MCP DEBUG] Running build check
[PERIPHERY-MCP DEBUG] Running periphery scan: periphery scan --format json
[PERIPHERY-MCP DEBUG] Found 42 issues

使用您的项目进行测试

要使用真实的iOS/macOS项目进行测试,请修改测试脚本:

# Add this to test_tools.py
result = project_build("/path/to/your/ios/project")
print(f"Real project test: {result}")
  • 寻找 [PERIPHERY-MCP DEBUG] 消息
  1. 手动测试服务器:使用附带的测试脚本:
   python test_mcp_server.py

这将测试基本服务器功能并显示调试输出。

  1. 检查先决条件:

- 验证外围设备是否已安装: periphery version - 确保Xcode已安装并正常工作 - 首先测试你的项目是否在Xcode中构建

  1. 常见超时原因:

- 大型项目需要时间进行分析(对于非常大的代码库,最多需要30分钟) - Xcode依赖解析过程中的网络问题 - 缺少构建依赖项或证书 - Xcode项目文件损坏

调试输出

服务器现在将详细的调试信息记录到stderr,该信息显示在Claude Desktop日志中。每次工具执行将显示:

  • 输入参数
  • 路径分辨率
  • 命令执行详细信息
  • 错误消息和堆栈跟踪
  • 执行时间

常见问题

“项目路径不存在”

  • 验证您提供的路径是否存在
  • 尽可能使用绝对路径
  • 检查您是否具有该目录的读取权限

“外围设备安装失败”

  • 确保你的项目在Xcode中成功构建
  • 检查是否正确配置了所有依赖项
  • 验证外围设备是否已安装: periphery version

“构建失败”

  • 在Xcode中打开项目并解决任何编译错误
  • 确保所有必需的证书和配置文件都可用
  • 检查指定的方案是否存在

连接问题

  • 验证Claude Desktop配置是否正确
  • 检查服务器可执行文件路径是否正确
  • 确保conda环境已激活
  • 检查Claude Desktop日志以了解错误详细信息

性能提示

  • 对于大型项目,从子集开始,使用 extra_args: ["--verbose"]
  • 使用排除测试目标的构建方案以加快分析速度
  • 考虑排除供应商/第三方代码目录
  • 首先在Xcode中运行构建,以确保所有依赖关系都已解决

局限性

  • 平台:仅限macOS(由于依赖Xcode)
  • 交互式设置:简化的提示处理(对复杂提示使用默认值)
  • 构建要求:项目必须成功编译才能进行分析

贡献

欢迎投稿!需要改进的地方:

  • 增强的交互式设置,提供完整的流媒体支持
  • 支持其他静态分析工具
  • 与CI/CD管道集成
  • 更精细的过滤选项

许可证

本项目按原样提供,用于教育和发展目的。

相关项目

目录标签

目录标签

静态分析PythonClaude本地部署代码优化iOS开发macOS开发死代码检测

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP