SwiftLens
OfficialProvides semantic-level analysis for Apple's Swift development ecosystem using SourceKit-LSP and Xcode.
Enables analysis of iOS Swift codebases with compiler-grade accuracy.
Supports analysis of macOS Swift projects, requiring macOS as the host platform.
Offers deep semantic-level analysis of Swift code, including modern syntax, generics, and package management.
Integrates with Xcode's SourceKit-LSP to provide Xcode-grade code understanding and analysis.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SwiftLensAnalyze UserManager.swift and find references to login()"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SwiftLens: First MCP Server that provides Semantic-Lelvel Analysis for iOS/Swift Development
SwiftLens is a Model Context Protocol (MCP) server that provides deep, semantic-level analysis of Swift codebases to AI agents. By integrating directly with Apple's SourceKit-LSP, SwiftLens enables AI models to understand Swift code with compiler-grade accuracy.
Features
SwiftLens bridges AI models and Swift development through:
AI Agent (Claude/GPT) → MCP Protocol → SwiftLens → SourceKit-LSP → Swift CodeCore Capabilities
LSP-Powered Semantic Analysis: Leverages SourceKit-LSP for Xcode-grade accuracy
Token-Optimized Output: Minimizes token usage for AI interactions
Real-time Code Understanding: Analyzes Swift files with full language feature support
Cross-file Navigation: Symbol references, definitions, and project-wide analysis
Code Modification Tools: Safe, atomic file operations for AI-driven refactoring
Zero Configuration: Works out-of-the-box with standard Swift projects
Supported Swift Features
Modern Swift syntax (actors, async/await, property wrappers, result builders)
Generic types and protocols
Swift Package Manager and Xcode projects
Unicode identifiers and symbols
Complex nested types and extensions
Installation
Prerequisites
macOS (required for SourceKit-LSP)
Python 3.10+
Xcode (full installation from App Store, not just Command Line Tools)
Quick Start
Configure for Claude Code / Gemini CLI
Add to your json configuration file mcpServers section:
{
"mcpServers": {
"swiftlens": {
"command": "uvx",
"args": ["swiftlens"]
}
}
}SourceKit LSP Index
SwiftLens will need proper sourcekit-lsp index in order to work properly you can either
Ask AI to build your index
"hey claude, run swift_build_index tool"Building Your Project Index Manually
SwiftLens requires an index store for cross-file analysis. Build it with:
# Navigate to your Swift project
cd /path/to/your/swift/project
# Build with index store
swift build -Xswiftc -index-store-path -Xswiftc .build/index/storeImportant: Rebuilding of the index is required when you:
Add new Swift files
Change public interfaces
Notice missing symbol references
Available Tools
SwiftLens provides 15 tools for Swift code analysis:
Single-File Analysis (No Index Required)
swift_analyze_file- Analyze structure and symbols in a Swift fileswift_analyze_multiple_files- Batch analyze multiple filesswift_summarize_file- Get symbol counts and file summaryswift_get_symbols_overview- Extract top-level type declarationsswift_get_declaration_context- Get fully-qualified symbol pathsswift_get_file_imports- Extract import statementsswift_validate_file- Validate syntax and types with swiftcswift_check_environment- Verify Swift development setupswift_build_index- Build index store db of current project for sourcekit-lsp
Cross-File Analysis (Requires Index)
swift_find_symbol_references- Find all references to a symbolswift_get_symbol_definition- Jump to symbol definitionswift_get_hover_info- Get type info and documentation
Code Modification
swift_replace_symbol_body- Replace function/type body
Utilities
swift_search_pattern- Search with regex patternsget_tool_help- Get help for any tool
Example Usage
Ask your AI agent:
"Analyze the UserManager.swift file and find all references to the login() method"The AI will use SwiftLens tools to:
Analyze the file structure
Locate the login method
Find all project-wide references
Provide insights based on the analysis
Real-time Dashboard (CURRENT NOT WORKING, REWORK IMPLEMENTATION PLANNED)
SwiftLens includes a web dashboard for monitoring AI interactions:
URL: http://localhost:53729 (when server is running)
Features: Live tool execution logs, usage analytics, session tracking
Security: Localhost-only access, no external connections
Troubleshooting
"Symbol not found" or "No references found"
Rebuild your index:
swift build -Xswiftc -index-store-path -Xswiftc .build/index/storeNew files not recognized
New files need to be indexed:
swift build -Xswiftc -index-store-path -Xswiftc .build/index/storeSourceKit-LSP not found
Ensure Xcode is properly installed:
xcode-select -p # Should show Xcode path
xcrun sourcekit-lsp --help # Should show help textSourceKit-LSP Limitations
Known SourceKit-LSP Limitations
The SwiftLens MCP Server accurately reflects SourceKit-LSP's capabilities. The following are known limitations of SourceKit-LSP itself, not bugs in this tool:
Hover Information
Limited support for local variables: Hover info may not be available for local variables within function bodies
Property access issues: Expressions like
object.propertyoften don't provide hover information when inside functionsMethod call limitations: Hover on method calls with parameters may return incorrect or no information
Success rate: Hover typically works well for type declarations, method signatures, and top-level symbols, but has approximately 44% success rate for expressions within function bodies
These limitations exist because SourceKit-LSP:
Does not perform background indexing
May skip function body analysis in certain configurations
Is still in early development with acknowledged "rough edges"
For the most up-to-date status, see the SourceKit-LSP repository.
Development
Running Tests
# All tests
make test
# Unit tests only (fast, no LSP required)
make test-unit
# LSP integration tests
make test-lsp
# Check environment
make check-envCode Quality
# Format code
./format.sh
# Check formatting
./format.sh checkLicense - FULLY AVAILABLE TO YOU FOR FREE (PERSONAL USE ONLY UNDER LICENSE)
✅ Free for personal use and evaluation
⚠️ Commercial use requires a license
See LICENSE.md for details.
Contributing
We welcome contributions! Areas where you can help:
🐛 Bug reports and fixes
📝 Documentation improvements
🧪 Test coverage expansion
🔧 New analysis capabilities
Support
Issues: GitHub Issues
SwiftLens - Bringing compiler-grade Swift understanding to AI development
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/swiftlens/swiftlens'
If you have feedback or need assistance with the MCP directory API, please join our Discord server