Apple Docs MCP
Provides tools to search and retrieve content from official Apple Developer Documentation, including framework references, technical guides, and WWDC session resources.
Enables access to iOS-specific API documentation, platform compatibility analysis, and framework details for developers building for iPhone and iPad.
Enables access to macOS-specific API documentation, platform compatibility analysis, and framework details for desktop application development.
Provides access to official Swift language documentation, API references, and code examples for development across Apple platforms.
Offers access to Xcode-related documentation and release notes to support development workflows on Apple platforms.
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., "@Apple Docs MCPhow do I use AsyncImage in SwiftUI?"
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.
Apple Docs MCP - Apple Developer Documentation Model Context Protocol Server
Apple Developer Documentation MCP Server - Access Apple's official developer docs, frameworks, APIs, SwiftUI, UIKit, and WWDC videos through Model Context Protocol. Search iOS, macOS, watchOS, tvOS, and visionOS documentation with AI-powered natural language queries. Get instant access to Swift/Objective-C code examples, API references, and technical guides directly in Claude, Cursor, or any MCP-compatible AI assistant.
✨ Features
🔍 Smart Search: Intelligent search across Apple Developer Documentation for SwiftUI, UIKit, Foundation, CoreData, ARKit, and more
📚 Complete Documentation Access: Full access to Apple's JSON API for Swift, Objective-C, and framework documentation
🔧 Framework Index: Browse hierarchical API structures for iOS, macOS, watchOS, tvOS, visionOS frameworks
📋 Technology Catalog: Explore Apple technologies including SwiftUI, UIKit, Metal, Core ML, Vision, and ARKit
📰 Documentation Updates: Track WWDC 2024/2025 announcements, iOS 26, macOS 26, and latest SDK releases
🎯 Technology Overviews: Comprehensive guides for Swift, SwiftUI, UIKit, and all Apple development platforms
💻 Sample Code Library: Swift and Objective-C code examples for iOS, macOS, and cross-platform development
🎥 WWDC Video Library: Search WWDC 2014-2025 sessions with transcripts, Swift/SwiftUI code examples, and resources
🔗 Related APIs Discovery: Find SwiftUI views, UIKit controllers, and framework-specific API relationships
📊 Platform Compatibility: iOS 13+, macOS 10.15+, watchOS 6+, tvOS 13+, visionOS compatibility analysis
⚡ High Performance: Optimized for Xcode, Swift Playgrounds, and AI-powered development environments
🔄 Smart UserAgent Pool: Intelligent UserAgent rotation system with automatic failure recovery and performance monitoring
🌐 Multi-Platform: Complete iOS, iPadOS, macOS, watchOS, tvOS, and visionOS documentation support
🏷️ Beta & Status Tracking: iOS 26 beta APIs, deprecated UIKit methods, new SwiftUI features tracking
Related MCP server: Apple RAG MCP
🚀 Quick Start
Claude Desktop (Recommended)
Add this to your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
}
}
}Note: If you encounter issues with an old version being used, add
@latestto force the latest version:"args": ["-y", "@kimsungwhee/apple-docs-mcp@latest"]
Restart Claude Desktop and start asking about Apple APIs!
📦 Installation
claude mcp add apple-docs -- npx -y @kimsungwhee/apple-docs-mcp@latestVia Settings: Settings → Cursor Settings → MCP → Add new global MCP server
Via Config File: Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
}
}
}Add to your VS Code MCP config:
{
"mcp": {
"servers": {
"apple-docs": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
}
}
}
}Add to your Windsurf MCP config:
{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
}
}
}Add to your Zed settings.json:
{
"context_servers": {
"Apple Docs": {
"command": {
"path": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
},
"settings": {}
}
}
}Via Marketplace:
Open Cline → Menu (☰) → MCP Servers → Marketplace
Search "Apple Docs MCP" → Install
Via Config: Add to cline_mcp_settings.json:
{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"],
"disabled": false,
"autoApprove": []
}
}
}Via Config File: Add to ~/.aws/amazonq/mcp.json:
{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
}
}
}📖 Amazon A Developer CLI MCP docs
For Windows systems, use:
{
"mcpServers": {
"apple-docs": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@kimsungwhee/apple-docs-mcp"],
"disabled": false,
"autoApprove": []
}
}
}Global Installation:
# Using pnpm (recommended)
pnpm add -g @kimsungwhee/apple-docs-mcp
# Using npm
npm install -g @kimsungwhee/apple-docs-mcpDirect Usage:
npx @kimsungwhee/apple-docs-mcp --helpDevelopment Setup:
git clone https://github.com/kimsungwhee/apple-docs-mcp.git
cd apple-docs-mcp
# Using pnpm (recommended)
pnpm install && pnpm run build
# Using npm
npm install && npm run build💬 Usage Examples
🔍 Smart Search
"Search for SwiftUI animations"
"Find withAnimation API documentation"
"Look up async/await patterns in Swift"
"Show me UITableView delegate methods"
"Search Core Data NSPersistentContainer examples"
"Find AVFoundation video playback APIs"📚 Documentation Access
"Get detailed information about the SwiftUI framework"
"Show me withAnimation API with related APIs"
"Get platform compatibility for SwiftData"
"Access UIViewController documentation with similar APIs"
"Show me NSManagedObjectContext documentation"
"Get URLSession async/await methods"🔧 Framework Exploration
"Show me SwiftUI framework API index"
"List all UIKit classes and methods"
"Browse ARKit framework structure"
"Get WeatherKit API hierarchy"
"Explore Core ML model loading APIs"
"Show Vision framework image analysis APIs"🔗 API Discovery
"Find APIs related to UIViewController"
"Show me similar APIs to withAnimation"
"Get all references from SwiftData documentation"
"Discover alternatives to Core Data NSManagedObject"📋 Technology & Platform Analysis
"List all Beta frameworks in iOS 26"
"Show me Graphics & Games technologies"
"What machine learning frameworks are available?"
"Analyze platform compatibility for Vision framework"📰 Documentation Updates
"Show me the latest WWDC updates"
"What's new in SwiftUI?"
"Get technology updates for iOS"
"Show me release notes for Xcode"
"Find beta features in the latest updates"🎯 Technology Overviews
"Show me technology overviews for app design and UI"
"Get comprehensive guides for games development"
"Explore AI and machine learning overviews"
"Show me iOS-specific technology guides"
"Get data management technology overviews"💻 Sample Code Library
"Show SwiftUI sample code projects"
"Find sample code for machine learning"
"Get UIKit example projects"
"Show featured WWDC sample code"
"Find Core Data sample implementations"
"Show only beta sample code projects"🎥 WWDC Video Search
"Search WWDC videos about SwiftUI"
"Find WWDC sessions on machine learning"
"Show me WWDC 2024 videos"
"Search for async/await WWDC talks"
"Find WWDC videos about Swift concurrency"
"Show accessibility-focused WWDC sessions"📺 WWDC Video Details
"Get details for WWDC session 10176"
"Show me the transcript for WWDC23 session on SwiftData"
"Get code examples from WWDC video 10019"
"Show resources from Vision Pro WWDC session"
"Get transcript for 'Meet async/await in Swift' session"📋 WWDC Topics & Years
"List all WWDC topics"
"Show me Swift topic WWDC videos"
"Get WWDC videos about developer tools"
"List WWDC videos from 2023"
"Show all SwiftUI and UI frameworks sessions"
"Get machine learning WWDC content"🛠️ Advanced Usage
"Find related APIs for @State with platform analysis"
"Resolve all references from SwiftUI documentation"
"Get platform compatibility analysis for Vision framework"
"Find similar APIs to UIViewController with deep search"🛠️ Available Tools
Tool | Description | Key Features |
| Search Apple Developer Documentation | Official search API, find specific APIs, classes, methods |
| Get detailed documentation content | JSON API access, optional enhanced analysis (related/similar APIs, platform compatibility) |
| Browse all Apple technologies | Category filtering, language support, beta status |
| Search symbols in specific framework | Classes, structs, protocols, wildcard patterns, type filtering |
| Find related APIs | Inheritance, conformance, "See Also" relationships |
| Batch resolve API references | Extract and resolve all references from documentation |
| Platform compatibility analysis | Version support, beta status, deprecation info |
| Discover similar APIs | Apple's official recommendations, topic groupings |
| Track Apple documentation updates | WWDC announcements, technology updates, release notes |
| Get technology overviews and guides | Comprehensive guides, hierarchical navigation, platform filtering |
| Browse Apple sample code projects | Framework filtering (with limitations), keyword search, beta status |
| Search WWDC video sessions | Keyword search, topic/year filtering, session metadata |
| Get WWDC video details with transcript | Full transcripts, code examples, resources, platform info |
| List all available WWDC topics | 19 topic categories from Swift to Spatial Computing |
| List all available WWDC years | Conference years with video counts |
🏗️ Technical Architecture for Apple Developer Documentation Access
apple-docs-mcp/
├── 🔧 src/
│ ├── index.ts # MCP server entry point with all tools
│ ├── tools/ # MCP tool implementations
│ │ ├── search-parser.ts # HTML search result parsing
│ │ ├── doc-fetcher.ts # JSON API documentation fetching
│ │ ├── list-technologies.ts # Technology catalog handling
│ │ ├── get-documentation-updates.ts # Documentation updates tracking
│ │ ├── get-technology-overviews.ts # Technology overviews and guides
│ │ ├── get-sample-code.ts # Sample code library browser
│ │ ├── get-framework-index.ts # Framework structure indexing
│ │ ├── get-related-apis.ts # Related API discovery
│ │ ├── resolve-references-batch.ts # Batch reference resolution
│ │ ├── get-platform-compatibility.ts # Platform analysis
│ │ ├── find-similar-apis.ts # Similar API recommendations
│ │ └── wwdc/ # WWDC video tools
│ │ ├── wwdc-handlers.ts # WWDC tool handlers
│ │ ├── content-extractor.ts # Video content extraction
│ │ ├── topics-extractor.ts # Topic listing
│ │ └── video-list-extractor.ts # Video list parsing
│ └── utils/ # Utility functions and helpers
│ ├── cache.ts # Memory cache with TTL support
│ ├── constants.ts # Application constants and URLs
│ ├── error-handler.ts # Error handling and validation
│ ├── http-client.ts # HTTP client with performance tracking
│ ├── user-agent-pool.ts # Smart UserAgent rotation system
│ ├── http-headers-generator.ts # Dynamic browser headers generation
│ └── url-converter.ts # URL conversion utilities
├── 📦 dist/ # Compiled JavaScript
├── 📄 package.json # Package configuration
└── 📖 README.md # This file🚀 Performance Features
Memory-Based Caching: Custom cache implementation with automatic cleanup and TTL support
Smart UserAgent Pool: Intelligent rotation system with automatic failure recovery and performance monitoring
Dynamic Headers: Realistic browser headers generation (Accept, Accept-Language, User-Agent)
Smart Search: Official Apple search API with enhanced result formatting
Enhanced Analysis: Optional related APIs, platform compatibility, and similarity analysis
Error Resilience: Graceful degradation with comprehensive error handling
Type Safety: Full TypeScript with Zod v4.0.5 runtime validation
Latest Dependencies: MCP SDK v1.15.1, optimized package footprint
💾 Caching Strategy
Content Type | Cache Duration | Cache Size | Reason |
API Documentation | 30 minutes | 500 entries | Frequently accessed, moderate updates |
Search Results | 10 minutes | 200 entries | Dynamic content, user-specific |
Framework Indexes | 1 hour | 100 entries | Stable structure, less frequent changes |
Technologies List | 2 hours | 50 entries | Rarely changes, large content |
Documentation Updates | 30 minutes | 100 entries | Regular updates, WWDC announcements |
📦 WWDC Data
All WWDC video data (2014-2025) is bundled directly in the npm package, providing:
✅ Zero network latency - No API calls needed for WWDC content
✅ 100% offline access - Works without internet connection
✅ No rate limits - Unlimited WWDC searches and browsing
✅ Instant responses - All data is locally available
The package includes:
📹 1,260+ WWDC session videos with full transcripts
🏷️ 20 topic categories for organized browsing
📅 13 years of content (2012-2025)
💾 35MB of optimized JSON data
Note: Keep your package updated to get the latest WWDC content additions.
⚙️ Configuration
🔄 UserAgent Pool Configuration
The MCP server includes an intelligent UserAgent rotation system to improve API reliability:
Environment Variables
Variable | Description | Default | Example |
| Enable/disable rotation |
|
|
| Rotation strategy |
|
|
| Max retry attempts |
|
|
| Custom pool config (JSON) | Built-in agents | See below |
Custom Pool Configuration
# Configure custom UserAgent pool
export USER_AGENT_POOL_CONFIG='[
{"userAgent": "MyApp/1.0 (compatible)", "weight": 3, "maxUsageCount": 1000},
{"userAgent": "MyApp/2.0 (advanced)", "weight": 2, "maxUsageCount": 800}
]'
# Set rotation strategy (random/sequential/smart)
export USER_AGENT_POOL_STRATEGY=smart
# Enable debugging
export NODE_ENV=developmentAvailable Strategies
random: Fast random selection (best performance)sequential: Round-robin rotation (predictable order)smart: Success rate optimization (best reliability)
Built-in UserAgents
The server includes 12+ pre-configured UserAgent strings covering:
Chrome (Mac Intel/Apple Silicon, Windows, Linux)
Firefox (Mac Intel/Apple Silicon, Windows, Linux)
Safari (Mac Intel/Apple Silicon, latest versions)
Edge (Windows, Mac Intel/Apple Silicon)
🧪 Development
Quick Commands
# Development with auto-reload
pnpm run dev # or: npm run dev
# Build for production
pnpm run build # or: npm run build
# Type checking
pnpm exec tsc --noEmit # or: npx tsc --noEmit
# Clean build artifacts
pnpm run clean # or: npm run cleanTesting Locally
# Test the MCP server directly
node dist/index.js
# Test with sample queries
npx @kimsungwhee/apple-docs-mcp --test🤝 Contributing
Contributions are welcome! Here's how to get started:
Fork the repository
Create a feature branch:
git checkout -b feature/amazing-featureCommit your changes:
git commit -m 'Add amazing feature'Push to the branch:
git push origin feature/amazing-featureOpen a Pull Request
📄 License
MIT License - see LICENSE for details.
⚠️ Disclaimer
This project is not affiliated with or endorsed by Apple Inc. It uses publicly available Apple Developer Documentation APIs for educational and development purposes.
Made with ❤️ for the Apple Developer Community
Search Apple Developer Documentation | iOS Development | macOS Development | Swift Programming | SwiftUI | UIKit | Xcode | WWDC Videos | Model Context Protocol | MCP Server
Available Tools
18 toolsbrowse_wwdc_topicsARead-only
List all WWDC topic categories with their IDs. Essential first step before using list_wwdc_videos with topic filtering. Returns topic IDs like "swiftui-ui-frameworks" that can be used in other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| topicId | No | Topic ID to explore. Available IDs: "accessibility-inclusion", "app-services", "app-store-distribution-marketing", "audio-video", "business-education", "design", "developer-tools", "essentials", "graphics-games", "health-fitness", "machine-learning-ai", "maps-location", "photos-camera", "privacy-security", "safari-web", "spatial-computing", "swift", "swiftui-ui-frameworks", "system-services". Leave empty to see all topics with video counts. | |
| includeVideos | No | List videos in the topic. Set false for topic structure only. Default: true | |
| year | No | Filter topic videos by year. Only when browsing specific topic. | |
| limit | No | Max videos per topic (default: 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description adds value by specifying the output (IDs) and their reuse in other tools. No destructive behavior or contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences directly convey purpose, usage, and output without waste. Front-loaded with key action and appropriate detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description sufficiently explains the return value (IDs and usage). Parameter meanings are fully covered in schema. Complete enough for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds context beyond schema by mentioning that leaving topicId empty shows all topics with video counts, and provides example IDs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists WWDC topic categories with IDs. It distinguishes itself from siblings like 'list_wwdc_videos' by positioning as the essential first step for topic filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Essential first step before using list_wwdc_videos with topic filtering', providing clear context and instruction on when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_similar_apisARead-only
Discover alternative and related APIs. Finds APIs with similar functionality, modern replacements for deprecated APIs, and platform-specific alternatives. Perfect when looking for better ways to implement functionality.
| Name | Required | Description | Default |
|---|---|---|---|
| apiUrl | Yes | Starting API URL. Example: "https://developer.apple.com/documentation/uikit/uialertview" (finds modern alternatives) | |
| searchDepth | No | How thoroughly to search. "shallow" = direct recommendations only, "medium" = topic siblings, "deep" = full relationship analysis. Default: "medium" | |
| filterByCategory | No | Focus on specific functionality like "Animation", "Navigation", "Data". Case-sensitive partial match. | |
| includeAlternatives | No | Include functionally similar APIs that might be better choices. Default: true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, which the description supports by using read-only verbs like 'discovers' and 'finds'. However, the description does not add deeper behavioral traits such as result format, pagination, or rate limits. With annotations covering safety, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and every sentence adds value. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and no output schema, the description covers purpose and usage context well. It does not describe the output format, but for a discovery tool, it is mostly complete. Minor gap for a high score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already well-documented. The description reinforces the purpose of includeAlternatives but does not add new semantics beyond the schema. Baseline 3 is appropriate when the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds alternative and related APIs, including similar functionality, modern replacements, and platform-specific alternatives. It distinguishes from sibling tools by emphasizing discovery of better ways to implement functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use ('Perfect when looking for better ways to implement functionality'), but does not explicitly mention when not to use or contrast with siblings like get_related_apis. It provides clear context but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_apple_doc_contentARead-only
Get detailed content from a specific Apple Developer Documentation page. Use this after search_apple_docs to get full documentation. Supports enhanced analysis options for comprehensive API understanding. Best for: reading API details, understanding usage, checking availability.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL of the Apple Developer Documentation page. Must start with https://developer.apple.com/documentation/. Example: "https://developer.apple.com/documentation/uikit/uiviewcontroller" | |
| includeRelatedApis | No | Include inheritance hierarchy and protocol conformances. Useful for understanding API relationships. Default: false | |
| includeReferences | No | Resolve and include all referenced types and APIs. Helps understand dependencies. Default: false | |
| includeSimilarApis | No | Discover APIs with similar functionality. Great for finding alternatives. Default: false | |
| includePlatformAnalysis | No | Analyze platform availability and version requirements. Essential for cross-platform development. Default: false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the readOnlyHint annotation by detailing that the tool retrieves content and supports enhanced analysis options (includeRelatedApis, includeReferences, etc.). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and front-loads the core purpose. Every sentence adds value: positioning after search, mentioning analysis options, and listing best uses. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema), the description covers purpose, workflow, and optional features adequately. It does not explain return values, but the schema hints at the output. Still sufficient for an agent to understand when and how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already explains each parameter well. The description does not add significant additional meaning beyond what the schema provides, warranting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('content from a specific Apple Developer Documentation page'), clearly distinguishing it from sibling tools like search_apple_docs (which finds pages) and find_similar_apis (which suggests alternatives).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using this after search_apple_docs and lists best use cases (reading API details, understanding usage, checking availability). It does not explicitly exclude other usage scenarios or name alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentation_updatesARead-only
Track latest Apple platform updates, new APIs, and changes. Shows WWDC announcements, framework updates, and release notes. Essential for staying current with Apple development. For detailed WWDC videos, use WWDC-specific tools.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Update type filter. "wwdc" = conference highlights, "technology" = API updates, "release-notes" = version changes. Default: "all" | |
| technology | No | Filter by framework (case-sensitive). Examples: "SwiftUI", "UIKit", "ARKit". Get names from list_technologies. | |
| year | No | WWDC year filter ("2025", "2024", etc.). Only for wwdc category. | |
| searchQuery | No | Search keywords. Examples: "async", "performance", "widgets". Case-insensitive. | |
| includeBeta | No | Include beta/preview features. Default: true | |
| limit | No | Max results (default: 50). Sorted by relevance and date. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the tool is known to be non-destructive. The description does not add behavioral context beyond this, such as rate limits or output behavior, but it is consistent with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences) and front-loaded with the core purpose. No unnecessary information is included, and the alternative tool guidance adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 6 parameters, 100% schema coverage, and lack of output schema, the description provides adequate context for understanding the tool's role and usage. It could mention output format or pagination, but overall it is complete enough for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 6 parameters have descriptions in the input schema (100% coverage). The tool description does not add meaningful extra information about parameters beyond what the schema provides, so it meets baseline expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: tracking latest Apple platform updates, new APIs, and changes, including WWDC announcements, framework updates, and release notes. It also distinguishes from sibling WWDC-specific tools, making its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Essential for staying current with Apple development') and when not to ('For detailed WWDC videos, use WWDC-specific tools'), effectively directing the agent to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_platform_compatibilityARead-only
Check API availability across Apple platforms and OS versions. Shows minimum deployment targets, deprecations, and platform-specific features. Critical for cross-platform development. Use when: planning app requirements, checking API availability, finding platform alternatives.
| Name | Required | Description | Default |
|---|---|---|---|
| apiUrl | Yes | API URL to check compatibility. Example: "https://developer.apple.com/documentation/swiftui/list" | |
| compareMode | No | Check single API or entire framework. "framework" shows all APIs in the framework. Default: "single" | |
| includeRelated | No | Also check related APIs' compatibility. Useful for finding platform-specific alternatives. Default: false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint: true, indicating a read operation. The description adds behavioral context by detailing the output (minimum deployment targets, deprecations, platform-specific features) and emphasizing its importance for cross-platform development, going beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, output, and usage. Every sentence adds value, is front-loaded, and contains no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three well-documented parameters and no output schema, the description adequately covers purpose, output, and usage. It lacks details on return format but is sufficient for the agent to decide when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good parameter descriptions (e.g., 'API URL to check compatibility', 'Check single API or entire framework'). The description does not repeat parameter details, but baseline 3 is appropriate since schema already provides sufficient semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks API availability across Apple platforms and OS versions, listing outputs like deployment targets and deprecations. It distinguishes itself from siblings by focusing on platform compatibility, a unique function among the listed tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly includes 'Use when:' with three specific scenarios: planning app requirements, checking API availability, finding platform alternatives. It does not state when not to use or list alternatives, but the provided use cases give clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sample_codeARead-only
Browse complete sample projects from Apple. Full working examples demonstrating best practices and implementation patterns. Different from search_apple_docs which returns code snippets. Use for learning by example.
| Name | Required | Description | Default |
|---|---|---|---|
| framework | No | Framework filter (case-insensitive). Examples: "SwiftUI", "ARKit", "CoreML". Note: Some samples are under generic categories - use searchQuery for better results. | |
| beta | No | Beta samples: "include" = all, "exclude" = stable only, "only" = beta only. Default: "include" | |
| searchQuery | No | Search keywords. Most effective approach. Examples: "animation", "camera", "machine learning", "widgets". | |
| limit | No | Max results (default: 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include readOnlyHint=true. Description does not contradict and adds context about browsing full sample projects, reinforcing read-only nature. No extra behavioral details needed beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two informative sentences with a third differentiating from sibling. Front-loaded with purpose, no redundant words. Highly concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description mentions 'full working examples' which implies the result type. Lacks details on pagination or ordering, but sufficient for a browsing tool given annotations and schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description provides examples for 'framework' and 'searchQuery' but these are already in the parameter descriptions. No additional semantic meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Browse complete sample projects from Apple' with 'Full working examples' specifying it returns complete projects, not snippets. It explicitly distinguishes from sibling 'search_apple_docs' which returns code snippets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'Use for learning by example', giving clear usage intent. Also contrasts with sibling tool, providing guidance on when to use this vs alternatives. No explicit exclusions, but adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technology_overviewsARead-only
Access comprehensive guides and tutorials for Apple technologies. Includes getting started guides, architectural overviews, best practices, and implementation patterns. Perfect for learning new frameworks or understanding Apple's recommended approaches.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Topic category. Popular: "app-design-and-ui", "games", "ai-machine-learning", "augmented-reality", "privacy-and-security". Leave empty to browse all. | |
| platform | No | Target platform. "all" for cross-platform content. Default: "all" | |
| searchQuery | No | Search terms. Try: "getting started", "best practices", "architecture", "performance". | |
| includeSubcategories | No | Include nested topics for comprehensive results. Set false for overview only. Default: true | |
| limit | No | Max results (default: 50). Includes subcategories when enabled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds content-level detail (guides, tutorials) but does not disclose any additional behavioral traits such as rate limits, auth requirements, or pagination behavior. With annotations present, the bar is lower, but no extra behavioral insight is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the key verb and resource, and every sentence adds value. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description does not detail return values, but it conveys the type of content returned (guides, tutorials, best practices). With 5 well-documented parameters and a clear purpose, the description is fairly complete for a read-only overview tool, though more detail on result structure could help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a clear description. The tool description does not add any new semantics to the parameters; it only describes the overall content. Per guidelines, baseline 3 is appropriate when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'access' and the resource 'comprehensive guides and tutorials for Apple technologies'. It specifies the content types (getting started guides, architectural overviews, best practices, implementation patterns) and use case (learning new frameworks, understanding recommended approaches), distinguishing it from sibling tools like get_apple_doc_content or browse_wwdc_topics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Perfect for learning new frameworks or understanding Apple's recommended approaches'. However, it does not explicitly state when not to use this tool or how it compares to alternatives like get_apple_doc_content or search_apple_docs, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wwdc_code_examplesARead-only
Browse all code examples from WWDC sessions. Perfect for finding implementation patterns, seeing new API usage, or learning by example. Each result includes the code and its session context.
| Name | Required | Description | Default |
|---|---|---|---|
| framework | No | Framework to find examples for. Examples: "SwiftUI", "SwiftData", "RealityKit". | |
| topic | No | Topic ID or concept keyword. Can use exact topic IDs ("swiftui-ui-frameworks", "machine-learning-ai", etc.) for precise filtering, or general keywords like "animation", "performance", "concurrency" for broader search. | |
| year | No | WWDC year filter ("2025", "2024", etc.). | |
| language | No | Programming language: "swift", "objc", "javascript", "metal". | |
| limit | No | Max examples (default: 30). Each includes code and source video info. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds that results include code and session context, but does not disclose pagination, defaults, or other behavioral traits beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences that state the core action and value proposition without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a browsing tool with no output schema, the description gives a clear idea of output (code and session context) but could mention default behavior or result limits more explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions (100% coverage). The tool description does not add additional meaning to parameters beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves code examples from WWDC sessions, distinguishing it from sibling tools that focus on topics, videos, or APIs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests use cases ('finding implementation patterns, seeing new API usage') but does not provide guidance on when not to use or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wwdc_videoARead-only
Access complete WWDC session content including full transcript, code examples, and resources. Use after finding videos with list_wwdc_videos or search_wwdc_content. Provides offline access to entire session content.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | WWDC year. Example: "2025" | |
| videoId | Yes | Session ID. Example: "10101" for keynote, "238" for session 238. | |
| includeTranscript | No | Include full session transcript with timestamps. Default: true | |
| includeCode | No | Include all code examples from the session. Default: true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include readOnlyHint=true, so the bar is lower. The description adds context about providing offline access and full content, which is valuable. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second gives usage guidance. No extraneous information, front-loaded with key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description sufficiently explains the tool returns complete session content with transcript, code, and resources. It also mentions offline access, covering all necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add much. However, it does not elaborate on parameters beyond what the schema already provides, maintaining the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool accesses complete WWDC session content including transcript, code examples, and resources. It distinguishes itself from siblings by specifying it is used after finding videos with list_wwdc_videos or search_wwdc_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states to use after finding videos with list_wwdc_videos or search_wwdc_content, providing clear context. No when-not-to-use instructions are given, but the guidance is sufficient for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_technologiesARead-only
Browse all Apple technologies and frameworks by category. Essential for discovering available frameworks and understanding Apple's technology ecosystem. Use this when: exploring what's available, finding framework identifiers for search_framework_symbols, checking beta status.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category (case-sensitive). Popular: "App frameworks" (SwiftUI, UIKit), "Graphics and games" (Metal, SpriteKit), "App services" (CloudKit, StoreKit), "Media" (AVFoundation), "System" (Foundation). Leave empty to see all categories. | |
| language | No | Filter by language support. "swift" for Swift-compatible frameworks, "occ" for Objective-C. Leave empty for all. | |
| includeBeta | No | Include beta/preview technologies. Set to false to see only stable frameworks. Default: true | |
| limit | No | Max results per category. Useful for quick overviews. Default: 200 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the bar is lower. The description adds behavioral context like browsing by category, discovering frameworks, and checking beta status, which are helpful but not extensive. It doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only 4 sentences, front-loaded with the main action, and efficiently covers value and usage cases. Every sentence adds information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no output schema. The description explains purpose and usage well but could briefly mention the response format (e.g., list of technology names/identifiers). Still, it is largely complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by mentioning case-sensitivity for category, providing popular examples, and linking parameter use to real tasks (e.g., checking beta status). This goes beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses Apple technologies by category, using specific verbs like 'browse' and 'discover'. It distinguishes itself from siblings by mentioning the use case of finding framework identifiers for search_framework_symbols, providing a clear resource and differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use the tool: exploring available frameworks, finding identifiers, and checking beta status. It references search_framework_symbols as a sibling, providing an alternative. However, it lacks explicit when-not-to-use guidance beyond that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wwdc_videosARead-only
Browse WWDC session videos with full offline access to transcripts and code. Shows all available sessions with filtering options. Use this to discover WWDC content, find sessions by topic, or identify videos with code examples.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | WWDC year ("2025", "2024", etc.) or "all". Available: 2020-2025. Example: "2025" for latest. | |
| topic | No | Topic ID for exact filtering or keyword for title search. Available topic IDs: "accessibility-inclusion", "app-services", "app-store-distribution-marketing", "audio-video", "business-education", "design", "developer-tools", "essentials", "graphics-games", "health-fitness", "machine-learning-ai", "maps-location", "photos-camera", "privacy-security", "safari-web", "spatial-computing", "swift", "swiftui-ui-frameworks", "system-services". Use exact ID for topic filtering, or any keyword to search in video titles. | |
| hasCode | No | Filter by code availability. true = sessions with code, false = without code. Leave empty for all. | |
| limit | No | Max videos to show (default: 50). Videos include title, duration, and content indicators. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true. Description adds 'full offline access to transcripts and code', which is useful but not critical. No destructive behavior disclosed; aligns with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key action, no wasted words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and no nested objects, the description sufficiently explains the tool's purpose and output. Could mention pagination or sorting, but limit parameter covers size.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with detailed descriptions for all four parameters. Description does not add new parameter semantics beyond 'filtering options' which is implicit from schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses WWDC session videos with offline access, distinguishing it from sibling tools like get_wwdc_video or browse_wwdc_topics. The verb 'browse' and resource 'WWDC session videos' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states use cases: discover WWDC content, find sessions by topic, identify videos with code examples. It does not name alternatives but context implies when to use this vs. search or detail tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wwdc_yearsARead-only
List all available WWDC years with video counts and statistics. Shows which years have content available and how many videos each year contains.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description adds value by specifying the output includes video counts and statistics. No contradiction, and no hidden behaviors need disclosure for such a simple read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main purpose. Every sentence is informative and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description adequately covers the return shape (years, video counts, statistics) for a simple list tool with no output schema. The term 'statistics' is vague but acceptable given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the description adds meaning by explaining what data the tool returns (video counts and statistics), going beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'list', the resource 'WWDC years', and the data returned (video counts and statistics). It distinguishes from sibling tools like list_wwdc_videos which lists individual videos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like browse_wwdc_topics or list_wwdc_videos. The description implies it's for an overview of years, but lacks when-not or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_references_batchARead-only
Deep dive into all types and APIs referenced in a documentation page. Resolves all mentioned types, methods, and properties to understand dependencies. Use when: analyzing complex APIs, understanding type requirements, exploring API ecosystems.
| Name | Required | Description | Default |
|---|---|---|---|
| sourceUrl | Yes | Documentation URL to analyze for references. Example: "https://developer.apple.com/documentation/swiftui/view" | |
| maxReferences | No | Limit resolved references (default: 20, max: 50). Higher values = more comprehensive but slower. | |
| filterByType | No | Filter by reference type. Use "protocol" for protocol requirements, "class" for class hierarchies. Default: "all" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare 'readOnlyHint: true', indicating a safe read operation. The description adds that the tool 'resolves all mentioned types', but does not elaborate on performance, scope limits, or other behavioral traits beyond what annotations provide. It does not contradict annotations, but adds minimal extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three clear sentences: the action, details, and usage guidance. It is front-loaded with the core purpose and contains no redundant elements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, yet the description does not explain what the result looks like (e.g., list of references, structure, or metadata). For a tool that resolves references from a documentation page, this is a significant gap. The description would benefit from outlining the return format or behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the input schema already provides detailed descriptions for all three parameters (e.g., sourceUrl example, maxReferences bounds, filterByType enum). The description does not add any parameter semantics beyond the schema. Per guidelines, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Deep dive into all types and APIs referenced in a documentation page. Resolves all mentioned types, methods, and properties.' It uses a specific verb-resource combination and outlines concrete use cases, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use scenarios ('Use when: analyzing complex APIs, understanding type requirements, exploring API ecosystems'). However, it does not mention when not to use this tool or compare it to sibling tools (e.g., get_related_apis), which slightly limits guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_apple_docsARead-only
Search Apple Developer Documentation for APIs, frameworks, guides, and samples. Best for finding specific APIs, classes, or methods. For browsing sample code projects, use get_sample_code. For WWDC videos, use the dedicated WWDC tools (list_wwdc_videos, search_wwdc_content).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for Apple Developer Documentation. Tips: Use specific API names (e.g., "UIViewController"), framework names (e.g., "SwiftUI"), or technical terms. Avoid generic terms like "how to" or "tutorial". Examples: "NSPredicate", "SwiftUI List", "Core Data migration", "URLSession authentication". | |
| type | No | Type of content to filter. Use "all" for comprehensive results, "documentation" for API references/guides, "sample" for code snippets. Note: "sample" returns individual code examples, not full projects. For complete sample projects, use get_sample_code instead. Default: "all". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation, implying no side effects. It adds context about the scope of search but does not elaborate on other behavioral traits like rate limits or auth requirements. With annotations covering the read-only nature, the description provides sufficient additional context for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the main purpose, and each sentence adds value. It avoids unnecessary detail and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with two parameters and no output schema, the description covers purpose, scope, and alternatives adequately. It does not mention pagination or result format, but this is a minor gap given the tool's simplicity and the presence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides detailed descriptions for both parameters (query and type), including tips and examples. The tool description itself does not add new parameter information beyond what the schema provides. With 100% schema coverage, the baseline is 3, and the description does not elevate it further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching Apple Developer Documentation for APIs, frameworks, guides, and samples. It differentiates from sibling tools by explicitly mentioning alternatives (get_sample_code and WWDC tools) and their use cases, making it easy for an agent to understand what this tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Best for finding specific APIs, classes, or methods.' It also tells when to use alternatives and includes tips in the parameter descriptions about avoiding generic terms. This helps the agent choose correctly between siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_framework_symbolsARead-only
Browse and search symbols within a specific Apple framework. Perfect for exploring framework APIs, finding all views/controllers/delegates in a framework, or discovering available types. Use after list_technologies to get framework identifiers.
| Name | Required | Description | Default |
|---|---|---|---|
| framework | Yes | Framework identifier in lowercase. Common: "uikit", "swiftui", "foundation", "combine", "coredata". Get exact names from list_technologies. Example: "swiftui" for SwiftUI framework. | |
| symbolType | No | Filter by symbol type. Use "class" for UIViewController subclasses, "protocol" for delegates, "struct" for value types. Default: "all" shows everything. | |
| namePattern | No | Filter by name pattern. Use "*View" for all views, "UI*" for UI-prefixed symbols, "*Delegate" for delegates. Case-sensitive. Leave empty for all symbols. | |
| language | No | Language preference. Some APIs differ between Swift and Objective-C. Default: "swift" | |
| limit | No | Results limit (default: 50, max: 200). Includes nested symbols. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true which is consistent. The description adds no extra behavioral traits such as auth needs, rate limits, or output format. It sufficiently describes the read operation but no additional transparency beyond the purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero wasted words. Front-loaded with verb and resource, followed by use cases and prerequisite. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description is sufficient for a search tool: it tells what it does, when to use it, and hints at output (list of symbols). Missing explicit return type but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed parameter descriptions. The tool description only adds context like 'Get exact names from list_technologies' which is helpful but minimal. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it browses and searches symbols within a specific Apple framework, uses specific verbs and resource, and distinguishes from siblings by prescribing use after list_technologies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using after list_technologies and provides example use cases ('exploring framework APIs, finding all views/controllers/delegates'). It lacks direct exclusions but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_wwdc_contentARead-only
Full-text search across all WWDC video transcripts and code examples. Find specific discussions, API mentions, or implementation examples. More powerful than list_wwdc_videos for finding specific content.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search terms. Examples: "async await", "@Observable", "Vision Pro", "performance optimization". | |
| searchIn | No | Search scope. "transcript" = spoken content, "code" = code examples only, "both" = everything. Default: "both" | |
| year | No | Limit to specific year ("2025", "2024", etc.). Leave empty for all years. | |
| language | No | Code language filter ("swift", "objc", "javascript"). Only for code search. | |
| limit | No | Max results (default: 20). Results include context snippets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's job is lighter. It adds that results include context snippets but does not detail other behavioral traits like pagination, rate limits, or auth requirements. The description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and contains no filler. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions return format ('results include context snippets'), but lacks details on pagination, empty result behavior, or performance. Still, it is reasonably complete for a search tool with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters have descriptions). The description does not add meaningful extra meaning beyond what the schema already provides for each parameter, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it performs full-text search across WWDC video transcripts and code examples, using specific verbs ('search', 'find') and naming the resource. It clearly distinguishes itself from sibling 'list_wwdc_videos' by noting it is more powerful for finding specific content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use this tool over a sibling ('More powerful than list_wwdc_videos for finding specific content'), but does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
18 tool updates
v1.0.26- First observed
browse_wwdc_topics - First observed
find_related_wwdc_videos - First observed
find_similar_apis - First observed
get_apple_doc_content - First observed
get_documentation_updates - First observed
get_platform_compatibility - First observed
get_related_apis - First observed
get_sample_code - First observed
get_technology_overviews - First observed
get_wwdc_code_examples - First observed
get_wwdc_video - First observed
list_technologies - First observed
list_wwdc_videos - First observed
list_wwdc_years - First observed
resolve_references_batch - First observed
search_apple_docs - First observed
search_framework_symbols - First observed
search_wwdc_content
TDQS
Each tool has a clearly distinct purpose, covering different aspects of Apple documentation and WWDC content. Tools like browse_wwdc_topics, list_wwdc_videos, and list_wwdc_years are unambiguously separate, and search tools are differentiated by source (docs, WWDC, framework symbols).
All tool names follow a consistent verb_noun pattern in snake_case (e.g., browse_wwdc_topics, get_apple_doc_content, list_technologies). The naming is predictable and readable, with no mixing of conventions.
18 tools cover a broad domain (Apple documentation, WWDC, framework browsing, sample code, platform compatibility) without being excessive. Each tool serves a clear purpose, and the count feels well-scoped for the intended functionality.
The tool set is comprehensive for exploring Apple developer resources. It covers search, navigation, getting content, related APIs, updates, and sample code. No obvious gaps for typical documentation tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Apple Developer Documentation with Semantic Search, RAG, and AI reranking for MCP clients
The documentation, as a tool your agent can call: 950+ AI-dev guides. Search + fetch tools.
Provides AI assistants with direct access to Mapbox developer APIs and documentation.
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceProvides AI agents with instant access to official Apple developer documentation, Swift programming guides, design guidelines, and Apple Developer YouTube content including WWDC sessions. Uses advanced RAG technology with semantic search and AI reranking to deliver accurate, contextual answers for Apple platform development.7-
- FlicenseNot gradedqualityNot gradedmaintenanceProvides AI agents with instant access to official Apple developer documentation, Swift docs, design guidelines, and Apple Developer YouTube content through advanced semantic and hybrid search capabilities. Features AI-powered reranking for accurate retrieval of Apple platform knowledge including iOS, macOS, watchOS, tvOS, and visionOS development resources.5-
- AlicenseNot gradedqualityCmaintenanceProvides comprehensive access to Apple's development documentation ecosystem including hidden Xcode docs, Swift Evolution proposals, GitHub repositories, and WWDC session notes. Enables developers to search and retrieve advanced Apple development resources not available through public channels.15MIT
- AlicenseBqualityFmaintenanceProvides AI assistants with access to Apple's Human Interface Guidelines and technical API documentation across all Apple platforms (iOS, macOS, watchOS, tvOS, visionOS), enabling unified search of design principles and implementation details.37021MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/kimsungwhee/apple-docs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server