Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Swift code analysis with Periphery - detect unused code and improve code quality
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
链接指向作者自己的文件;我们不托管也不重新打包它。打开文件后,Claude Desktop 会进行安装。
在终端中运行这条命令
浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 zyntx-lab 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.0.0)于12个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 MCPB。
同一分类中有:Spec Driven Development, Remote Desktop Commander, MCP Server Autocad Lisp Helper
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
High-precision static analysis and debug server for AutoCAD AutoLISP (.lsp) files.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
A Model Context Protocol (MCP) server that wraps the Periphery tool, enabling AI assistants to perform Swift code audits and detect unused code in iOS/macOS projects.
Using Homebrew (Recommended):
# 1. Install Periphery
brew install peripheryapp/periphery/periphery
brew tap zyntx-lab/tap brew install periphery-mcp-server
From Source:
# 1. Install Periphery
brew install peripheryapp/periphery/periphery
git clone https://github.com/zyntx-lab/periphery-mcp-server.git cd periphery-mcp-server swift build -c release
sudo cp .build/release/periphery-mcp-server /usr/local/bin/ sudo chmod +x /usr/local/bin/periphery-mcp-server
brew install peripheryapp/periphery/periphery
Or download from Periphery releases.
# Add the tap
brew tap zyntx-lab/tap
brew install periphery-mcp-server
which periphery-mcp-server
Download the latest binary from Releases:
# Download and install
curl -L https://github.com/zyntx-lab/periphery-mcp-server/releases/download/v1.0.0/periphery-mcp-server \ -o /usr/local/bin/periphery-mcp-server chmod +x /usr/local/bin/periphery-mcp-server
which periphery-mcp-server
# Clone the repository
git clone https://github.com/zyntx-lab/periphery-mcp-server.git cd periphery-mcp-server
swift build -c release
sudo cp .build/release/periphery-mcp-server /usr/local/bin/ sudo chmod +x /usr/local/bin/periphery-mcp-server
which periphery-mcp-server
The server is also available on the MCP Registry. Use your MCP-compatible client to install it directly.
The config file is at: ~/Library/Application Support/Claude/claude_desktop_config.json
If you installed via Homebrew:
{
"mcpServers": { "periphery": { "command": "/opt/homebrew/bin/periphery-mcp-server" } } }
If you installed to /usr/local/bin:
{
"mcpServers": { "periphery": { "command": "/usr/local/bin/periphery-mcp-server" } } }
If you're using the build directory directly:
{
"mcpServers": { "periphery": { "command": "/FULL/PATH/TO/periphery-mcp-server/.build/release/periphery-mcp-server" } } }
If you already have other MCP servers configured:
{
"mcpServers": { "xcode": { "command": "node", "args": ["/path/to/xcode-mcp-server/dist/index.js"] }, "periphery": { "command": "/usr/local/bin/periphery-mcp-server" } } }
Important: You must completely quit and restart Claude Desktop for changes to take effect.
Cmd+Q or use Claude Desktop → QuitOpen a new conversation in Claude Desktop and try:
"Check if Periphery is installed"
If configured correctly, Claude will use the check_periphery_installed tool and respond with installation status.
Before configuring Claude Desktop, you can test the server with the MCP Inspector:
# Install MCP Inspector (if not already installed)
npm install -g @modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector /usr/local/bin/periphery-mcp-server
npx @modelcontextprotocol/inspector /path/to/periphery-mcp-server/.build/release/periphery-mcp-server
The Inspector will open in your browser where you can test all tools interactively.
Add to .vscode/mcp.json:
{
"mcpServers": { "periphery": { "type": "stdio", "command": "/usr/local/bin/periphery-mcp-server" } } }
Add to .cursor/mcp.json:
{
"mcpServers": { "periphery": { "type": "stdio", "command": "/usr/local/bin/periphery-mcp-server" } } }
check_periphery_installedVerify that Periphery CLI is installed and accessible.
Parameters: None
Example Response:
{
"installed": true, "path": "/usr/local/bin/periphery", "message": "Periphery is installed and ready" }
get_periphery_versionGet the installed version of Periphery.
Parameters: None
Example Response:
{
"version": "2.18.0", "raw_output": "2.18.0" }
scan_projectRun a basic Periphery scan on a project.
Parameters:
project_path (required): Path to .xcodeproj or Package.swiftschemes (optional): Build schemes to scan (Xcode only)targets (optional): Specific targets to analyzeformat (optional): Output format: json, xcode, csv, checkstyle (default: json)Example Response:
{
"success": true, "results": [ { "kind": "class", "name": "UnusedClass", "modifiers": ["public"], "location": "Sources/MyApp/UnusedClass.swift:10:7" } ], "summary": { "total_unused": 5, "by_kind": {"class": 2, "function": 3} } }
scan_with_configRun Periphery scan using a YAML configuration file.
Parameters:
config_path (required): Path to .periphery.yml config fileanalyze_unused_importsFocus specifically on detecting unused imports.
Parameters:
project_path (required): Path to .xcodeproj or Package.swiftschemes (optional): Build schemes to scantargets (optional): Specific targets to analyzefind_redundant_publicIdentify public declarations that could be internal.
Parameters:
project_path (required): Path to .xcodeproj or Package.swiftschemes (optional): Build schemes to scantargets (optional): Specific targets to analyzescan_with_optionsAdvanced scanning with custom Periphery flags.
Parameters:
project_path (required): Path to .xcodeproj or Package.swiftschemes (optional): Build schemes to scantargets (optional): Specific targets to analyzeformat (optional): Output formatretain_public (optional): Retain all public declarationsretain_objc_accessible (optional): Retain @objc declarationsdisable_unused_import_analysis (optional): Disable unused import analysisindex_store_path (optional): Custom index store locationverbose (optional): Enable verbose outputOnce configured, you can have natural conversations with Claude about your code:
Check Installation:
You: "Check if Periphery is installed"
Claude: [Uses check_periphery_installed] "Yes, Periphery is installed at /usr/local/bin/periphery Version: 2.18.0"
Scan a Project:
You: "Scan my iOS project at ~/Projects/MyApp/MyApp.xcodeproj for unused code"
Claude: [Uses scan_project] "I found 15 unused declarations in your project:
Classes (5):
...
Functions (8):
...
Imports (2):
..."
Find Redundant Public:
You: "Check which public declarations could be made internal in ~/Projects/MyFramework"
Claude: [Uses find_redundant_public] "Found 12 public declarations that are only used internally and could be made internal:
..."
Analyze Unused Imports:
You: "Find unused imports in my Swift package"
Claude: [Uses analyze_unused_imports] "Found 8 unused imports that can be safely removed:
..."
Create .periphery.yml in your project:
project: MyApp.xcodeproj
schemes:
targets:
format: json retain_public: false retain_objc_accessible: true verbose: false
Then use scan_with_config:
You: "Scan my project using the custom config"
Symptoms: Claude doesn't recognize Periphery tools after configuration
Solutions:
# Check for JSON syntax errors
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | python3 -m json.tool
# Test that the binary exists and runs
/usr/local/bin/periphery-mcp-server
/path/to/.build/release/periphery-mcp-server
Cmd+Q to quit (not just close the window) # View logs for errors
tail -f ~/Library/Logs/Claude/mcp*.log
If you get "Periphery is not installed":
brew install peripheryapp/periphery/peripherywhich peripherycheck_periphery_installed tool againIf the Inspector can't connect to the server:
# Server should wait for input, not exit immediately
/usr/local/bin/periphery-mcp-server
# Run with verbose output
/usr/local/bin/periphery-mcp-server 2>&1 | tee server.log
npx @modelcontextprotocol/inspector $(which periphery-mcp-server)
Default timeout is 5 minutes. For large projects:
scan_with_config with a focused configuration只显示了开头部分;其余内容请在仓库中阅读