这是一个MCP(模型上下文协议)服务器,通过SourceKit-LSP为AI代理提供Swift代码智能。
此MCP服务器向AI代理暴露SourceKit-LSP功能,使它们能够:
npm install -g @leftspin/mcp-sourcekit-lsp
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
# 可选:设置开发通知(参见下文的开发环境)
cp .env.example .env
# 编辑.env文件以包含您的通知凭证
在您的Claude Desktop配置文件中添加以下内容:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %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){
"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(可选):sourcekit-lsp二进制文件的路径。默认为PATH中的sourcekit-lsp。SOURCEKIT_BUILD_ARGS(可选):sourcekit-lsp的附加参数(例如,-Xswiftc -debug-info-format=dwarf)。如果您正在使用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
}
查找所有对符号的引用。
{
"file": "/path/to/file.swift",
"line": 10,
"column": 5
}
在工作区中搜索符号。
{
"query": "MyClass"
}
获取文件的编译器诊断信息。
{
"file": "/path/to/file.swift"
}
提供Swift项目的结构概述,包括所有Swift文件及其组织方式。
显示当前的构建配置和编译器设置。
# 安装依赖
npm install
# 构建TypeScript
npm run build
# 开发监视模式
npm run watch
# 运行测试
npm test
# 使用MCP Inspector运行测试
npx @modelcontextprotocol/inspector
该项目包含一个用于开发更新的通知系统。要使用它:
创建环境文件:
cp .env.example .env
将您的凭证添加到.env文件中:
# 用于开发通知的Pushover凭证(可选)
PUSHOVER_TOKEN=your_pushover_app_token
PUSHOVER_USER=your_pushover_user_key
获取Pushover凭证(可选):
注意:.env文件被自动忽略,以确保您的凭证安全。通知系统完全可选,仅用于开发便利。
# 运行所有测试
npm test
# 在监视模式下运行测试
npm run test:watch
# 带覆盖率运行测试
npm run test:coverage
如果服务器找不到sourcekit-lsp,请设置SOURCEKIT_LSP_PATH环境变量:
常见位置:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/sourcekit-lsp/opt/homebrew/bin/sourcekit-lsp检查sourcekit-lsp是否可用:
which sourcekit-lsp
# 或尝试直接运行它
sourcekit-lsp --help
先构建项目:SourceKit-LSP需要编译信息
# 对于SPM项目
swift build
# 对于Xcode项目
xcodebuild -project YourProject.xcodeproj -scheme YourScheme build
检查文件路径:确保文件路径是绝对路径且文件存在
验证工作区:从项目根目录运行MCP服务器
SOURCEKIT_BUILD_ARGS此MCP服务器作为AI代理与SourceKit-LSP之间的桥梁:
AI代理 <--[MCP]--> 此服务器 <--[LSP]--> SourceKit-LSP <--> Swift代码
MIT
欢迎贡献!请:
npm test)查看工程计划以了解实施细节。