MCP源工具包LSP
MCP(模型上下文协议)服务器,通过SourceKit LSP向AI代理提供Swift代码智能。
特性
此MCP服务器向AI代理公开SourceKit LSP功能,使其能够:
- 浏览Swift代码:查找定义、参考和实现
- 了解类型:获取带有类型详细信息和文档的悬停信息
- 搜索符号:在项目中查找类、方法和属性
- 检查诊断:Access编译器错误和警告
安装
来自npm(一旦发布)
npm install -g @leftspin/mcp-sourcekit-lsp来自GitHub
npm install -g github:leftspin/mcp-sourcekit-lsp为了发展
git clone https://github.com/leftspin/mcp-sourcekit-lsp.git
cd mcp-sourcekit-lsp
npm install
npm run build
# Optional: Set up development notifications (see Development Environment below)
cp .env.example .env
# Edit .env with your notification credentials配置
克劳德桌面
将此添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"sourcekit-lsp": {
"command": "npx",
"args": ["@leftspin/mcp-sourcekit-lsp"],
"env": {
"SOURCEKIT_LSP_PATH": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp"
}
}
}
}克劳德代码
将此服务器添加到Claude Code的MCP设置中:
- 打开克劳德代码设置:
Cmd+,(macOS)或Ctrl+,(Windows/Linux) - 搜索“MCP”或导航到MCP部分
- 添加新的服务器配置:
{
"name": "sourcekit-lsp",
"command": "npx",
"args": ["@leftspin/mcp-sourcekit-lsp"],
"env": {
"SOURCEKIT_LSP_PATH": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp"
}
}或者,如果全局安装:
{
"name": "sourcekit-lsp",
"command": "mcp-sourcekit-lsp",
"env": {
"SOURCEKIT_LSP_PATH": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp"
}
}环境变量
SOURCEKIT_LSP_PATH(可选):源工具包lsp二进制文件的路径。默认为sourcekit-lsp在PATH中。SOURCEKIT_BUILD_ARGS(可选):sourcekit-lsp的附加参数(例如。,-Xswiftc -debug-info-format=dwarf).
对于Xcode项目
如果你正在使用Xcode项目,你可能需要指定构建参数:
export SOURCEKIT_BUILD_ARGS="-Xswiftc -sdk -Xswiftc /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk"可用工具
快速定义
查找符号的定义位置。
{
"file": "/path/to/file.swift",
"line": 10,
"column": 5
}快速悬停
获取符号的类型信息和文档。
{
"file": "/path/to/file.swift",
"line": 10,
"column": 5
}swift引用
查找对符号的所有引用。
{
"file": "/path/to/file.swift",
"line": 10,
"column": 5
}快捷符号
在工作区中搜索符号。
{
"query": "MyClass"
}快速诊断
获取文件的编译器诊断。
{
"file": "/path/to/file.swift"
}资源
swift项目结构
提供Swift项目结构的概述,包括所有Swift文件及其组织。
快速构建设置
显示当前生成配置和编译器设置。
需求
- Node.js 16或更高版本
- SourceKit LSP(附带Xcode或Swift工具链)
- Swift项目(Swift包管理器或Xcode项目)
发展
设置
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run watch
# Run tests
npm test
# Test with MCP Inspector
npx @modelcontextprotocol/inspector开发环境
该项目包括一个开发更新通知系统。要使用它:
- 创建环境文件:
cp .env.example .env- 将您的凭据添加到
.env:
# Pushover credentials for development notifications (optional)
PUSHOVER_TOKEN=your_pushover_app_token
PUSHOVER_USER=your_pushover_user_key- 获取Pushover凭据(可选):
- 注册地址: pushover.net - 创建一个应用程序以获取您的应用令牌 - 在您的帐户设置中查找您的用户密钥
注: 这 .env git会自动忽略该文件,以保护您的凭据安全。通知系统完全是可选的,仅用于开发便利。
测试
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage故障排除
未找到SourceKit LSP
如果服务器找不到sourcekit lsp,请设置 SOURCEKIT_LSP_PATH 环境变量:
常见位置:
- 项目:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp - Swift工具链:
/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/sourcekit-lsp - 家酿:
/opt/homebrew/bin/sourcekit-lsp
检查sourcekit lsp是否可用:
which sourcekit-lsp
# Or try running it directly
sourcekit-lsp --help工具没有结果
- 先构建你的项目:SourceKit LSP需要编译信息
# For SPM projects
swift build
# For Xcode projects
xcodebuild -project YourProject.xcodeproj -scheme YourScheme build- 检查文件路径:确保文件路径是绝对的并且文件存在
- 验证工作区:从项目的根目录运行MCP服务器
诊断未出现
- 诊断由SourceKit LSP异步发送
- 没有错误/警告的文件将返回空诊断
- 大型项目可能需要更长的时间来分析
性能问题
- SourceKit LSP在大型项目上可能是资源密集型的
- 考虑使用
SOURCEKIT_BUILD_ARGS必要时限制范围 - 关闭未使用的Xcode项目以释放SourceKit LSP资源
建筑
此MCP服务器充当AI代理和SourceKit LSP之间的桥梁:
AI Agent This Server SourceKit-LSP Swift Code- MCP工具:AI代理的同步请求/响应
- LSP通信:异步通知和请求
- 缓存:缓存诊断和文件状态以立即响应
许可证
麻省理工学院
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 添加新功能的测试
- 确保所有测试通过(
npm test) - 提交拉取请求
请参阅 工程计划 了解实施细节。
