Apple Docs 2.0 MCP
Provides tools to search and read Apple's developer documentation, including API reference, articles, sample code, tutorials, Human Interface Guidelines, platform compatibility, framework symbols, and WWDC session transcripts with timed code examples.
Provides tools to search and read App Store Connect Help and App Store Connect/Server API documentation, covering product page fields, app review, TestFlight, pricing, and web-service endpoints.
Apple Docs 2.0 MCP
One MCP for Apple's developer documentation, design guidelines and WWDC sessions.
Building your next iOS app with an agent? Let it read Apple's own docs first: fewer rewrites, fewer interruptions.
Quick Start · What's New · Installation · Usage · Tools · Architecture · Development
npx -y apple-docs-2.0-mcp
Apple Developer Documentation for AI assistants, through the Model Context Protocol: API reference, articles, sample code, tutorials, the Human Interface Guidelines, App Store Connect Help, the web-service APIs (App Store Connect API, App Store Server API and others) and 1,700 WWDC sessions with their transcripts and code, in Claude, Cursor, VS Code or any MCP client.
Apple Docs 2.0 MCP is a fork of Apple Docs MCP by kimsungwhee, improved with additions, fixes and a new tool.
🚀 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", "apple-docs-2.0-mcp"]
}
}
}Note: If you encounter issues with an old version being used, add
@latestto force the latest version:"args": ["-y", "apple-docs-2.0-mcp@latest"]
Restart Claude Desktop and start asking about Apple APIs!
Claude Code
claude mcp add apple-docs -- npx -y apple-docs-2.0-mcpAsk your agent
Look up NavigationStack in Apple's docs, then show me the WWDC code that uses it.Related MCP server: Apple RAG MCP
🆕 What's New in 2.0
Apple Docs 2.0 MCP keeps every tool of Apple Docs MCP 1.0.26 and fixes what stopped working or came back incomplete, so your assistant answers from Apple's own documentation instead of guessing.
🔍 Search that returns results
search_apple_docs is fixed: it now uses the same search service Apple's website uses, so your assistant gets the
results you would see on developer.apple.com: API reference, articles, sample code, design guidelines, App Store Connect
Help and WWDC videos. In the original, searches come back empty since Apple changed its search page.
Ask about an API, a design guideline or an App Store process, and the assistant searches first, then reads the pages it finds.
🗺️ Look up any page by name
A new tool, search_docs_map, finds any of 336,629 pages by name, or part of one, offline:
API symbols: types, methods, properties, enum cases, macros
articles, tutorials and sample code
Info.plist and entitlement keys
web-service endpoints, such as the App Store Connect API's
Human Interface Guidelines and App Store Connect Help pages
Use it when you already know a name, from code or an error message, to open its page directly.
📄 Complete documentation pages
Pages come through whole, as on Apple's site: every method and property with its full signature
(var view: UIView!, not just view), what a type inherits from and conforms to, related APIs, and the OS versions
that support it. 2.0 also reads the Human Interface Guidelines, tutorials, App Store Connect Help, and App Store
Connect API endpoints with their parameters and responses.
Ask about any API, guideline or App Store Connect topic, and the assistant reads the full page before it answers or writes code.
🎥 WWDC 2014–2026, with code
1,700 sessions are built in, WWDC26 included, and work offline: transcripts for 1,416 of them and code samples for 715, each sample with the time it appears in the video. Sessions are filed under the same topics as on Apple's website.
Ask how a new API works, and the assistant can quote the WWDC session that introduced it, with its code.
📋 Complete framework lists
The original's technology list stopped after 200 entries, so whole categories (Graphics and Games, Media, System, Web) never appeared, and its symbol search mixed in headings with broken links. 2.0 lists everything, marks frameworks in beta, and finds frameworks by subject: "Machine learning" returns Core ML, Create ML, Foundation Models, Vision and more.
Ask which frameworks fit a task, such as machine learning or audio, and the assistant compares the full list.
🛠️ Built to keep working
Up-to-date dependencies, requests that look like a normal browser's and wait their turn (Apple returns empty searches when they come too fast), automatic retries when a request fails, and 255 automated tests. All 63 usage examples in the original's README run without errors.
Nothing to set up: no API key or account.
✨ Features
🔍 Search: Apple's documentation, design guidelines, sample code, App Store Connect Help and WWDC sessions in one search, or one of them alone
🗺️ Docs map: find any page by its title, even a method or property name, without a network request
📚 Documentation pages: Swift and Objective-C APIs, articles, tutorials and web-service references as Markdown
🎨 Human Interface Guidelines: every HIG page, searchable and readable
🏪 App Store Connect Help: product page fields, review, TestFlight, pricing
🔧 Framework symbols: browse a framework's classes, structs, protocols and members by wildcard
🔗 API relationships: related, similar and referenced APIs, and replacements for deprecated ones
📊 Platform compatibility: the version that introduced and deprecated an API on each platform
📋 Technology catalog: every Apple framework and technology by category, beta ones marked
📰 Documentation updates: release notes, framework updates and WWDC "What's new" pages
🎯 Technology overviews: Apple's guides to app design, games, AI and machine learning, data and more
💻 Sample code: Apple's sample projects with their summaries and Download links
🎥 WWDC library: 1,700 sessions from 2014 to 2026 with transcripts, timed code examples, resources and related sessions, offline
📦 Installation
claude mcp add apple-docs -- npx -y apple-docs-2.0-mcpAdd to ~/.cursor/mcp.json:
{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "apple-docs-2.0-mcp"]
}
}
}Add to .mcp.json at the root of your workspace, VS Code's portable format:
{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "apple-docs-2.0-mcp"]
}
}
}Add to your Zed settings.json:
{
"context_servers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "apple-docs-2.0-mcp"],
"env": {}
}
}
}💬 Usage Examples
🔍 Search
"Search for SwiftUI animations"
"Find withAnimation API documentation"
"Search the Human Interface Guidelines for tab bars"
"Search App Store Connect Help for TestFlight external testers"
"Find sample code for Core Data"🗺️ Docs Map
"Find the page for accessibilityInputLabels"
"Which SwiftUI pages have gauge in their title?"
"Find the App Store Connect API endpoint to create an auto-renewable subscription"📚 Documentation Access
"Get detailed information about the SwiftUI framework"
"Show me withAnimation API with related APIs"
"Show me NSManagedObjectContext documentation"
"Read the Human Interface Guidelines page on tab bars"
"Show the steps of the SwiftUI tutorial"🔧 Framework Exploration
"Show me SwiftUI views"
"List all UIKit delegate protocols"
"Get WeatherKit API hierarchy"
"Explore Core ML model loading APIs"🔗 API Discovery
"Find APIs related to UIViewController"
"Discover alternatives to UIAlertView"
"Get all references from SwiftData documentation"
"Get platform compatibility for SwiftData"📋 Technologies, Updates and Overviews
"What machine learning frameworks are available?"
"Which technologies are in beta?"
"What's new in SwiftUI?"
"Show me release notes for Xcode"
"Get data management technology overviews"💻 Sample Code
"Show SwiftUI sample code projects"
"Find sample code for machine learning"
"Get the Food Truck sample"🎥 WWDC
"Search WWDC videos about SwiftUI"
"Find WWDC sessions on machine learning"
"Show me WWDC 2026 videos"
"Search WWDC transcripts for async/await"
"Show me the transcript for WWDC23 Meet SwiftData"
"Get code examples from WWDC sessions that use SwiftData"
"Find sessions related to WWDC23 Meet SwiftData"
"List all WWDC topics"🛠️ Available Tools
Tool | Returns |
| Apple's search results as links, each with its title, framework, type and one-line summary, grouped into documentation, design, sample code, App Store Connect Help and WWDC sessions |
| The pages whose title contains the text, in any case, shortest titles first and optionally within given technologies, each with its kind, technology and link |
| One documentation page as Markdown, rendered from its JSON: summary, declaration, overview, code, the articles that mention it, a property list key's details, Topics with each member's declaration and summary, Relationships, See Also and availability; a web-service endpoint with its URL, parameters, body and responses; a tutorial with each step's code and its project files; a sample's Download; an App Store Connect Help article |
| The symbols of one framework whose names match a wildcard, each with its kind and link |
| What one API inherits from and conforms to, plus its See Also and the first APIs of each Topics group, each with a summary |
| Alternatives to one API, led for a deprecated one by the replacements its deprecation note names, then its See Also and Topics |
| The pages one documentation page links to, each with its title, kind, summary and, for a symbol, its declaration |
| The OS versions in which one API was introduced and deprecated on each platform, with Apple's deprecation note |
| Every Apple framework and technology with its link, by category, beta ones marked |
| Links to Apple's release notes, framework updates pages and WWDC "What's new" pages, each with its summary |
| Links to Apple's Technology Overviews guides, grouped by collection with each collection's summary |
| Apple's sample-code projects, each with its link and one-line summary, grouped by framework |
| The WWDC sessions of a year, topic or title word, each with its link, topics and whether it has a transcript and code |
| The WWDC sessions whose transcripts or code contain the words, each with up to three matching passages |
| One WWDC session with its links and downloads, full transcript, timed code examples and related sessions |
| WWDC code examples whose code mentions a type or framework, each with its session and the time it appears |
| The WWDC topics with their session counts, or the sessions of one topic |
| The sessions related to one WWDC session, Apple's own picks first, then sessions that share its topics |
| The WWDC years with their session counts |
The documentation tools fetch developer.apple.com; the WWDC tools read the bundled data and search_docs_map reads the
docs map, both without a network request.
🏗️ Architecture
Apple-Docs-2.0-MCP/
├── src/
│ ├── index.ts # MCP server and its search guide
│ ├── tools/
│ │ ├── handlers.ts # Tool registration
│ │ ├── search-api.ts # Apple's search API
│ │ ├── search-docs-map.ts # Docs map search
│ │ ├── doc-fetcher.ts # Pages from Swift-DocC JSON
│ │ ├── doc-formatter.ts # Markdown rendering
│ │ ├── help-pages.ts # App Store Connect Help (jsdom, turndown)
│ │ ├── list-technologies.ts # Technology catalog
│ │ ├── search-framework-symbols.ts
│ │ ├── get-related-apis.ts, find-similar-apis.ts, resolve-references-batch.ts, get-platform-compatibility.ts
│ │ ├── get-documentation-updates.ts, get-technology-overviews.ts, get-sample-code.ts
│ │ └── wwdc/ # WWDC tools and the session, topic and year extractors
│ ├── types/ # Generated from Swift-DocC's specs and captured responses
│ └── utils/ # HTTP client, caches, constants, URL conversion
├── scripts/
│ ├── add-wwdc-year.ts # Adds or refreshes a WWDC year in data/wwdc
│ ├── build-docs-map.ts # Builds api-map/apple-docs-map.tsv
│ └── capture-responses.ts # Captures responses to type them
├── data/wwdc/ # The bundled WWDC sessions
├── api-map/ # The docs map, Apple's search API (OpenAPI) and captured responses
└── tests/ # Vitest🌐 Requests and Caching
Every request goes through one HTTP client: fetch with a Safari's headers, at most 100 requests a minute, and
searches one at a time, 15 seconds apart, as Apple answers quicker ones with no results. Each attempt has a 2-minute
timeout, with up to 3 retries and backoff on network errors, timeouts and 5xx answers.
Content | Cached for |
Documentation pages | 30 minutes |
Framework indexes | 1 hour |
Technologies, sample code, technology overviews | 2 hours |
Documentation updates | 30 minutes |
Searches | not cached |
📦 WWDC Data
The WWDC sessions are bundled in data/wwdc/, so the WWDC tools work offline and without rate limits:
📹 1,700 sessions from 2014 to 2026, 1,416 with transcripts and 715 with code examples
🏷️ 19 topics, taken from Apple's topic pages
💾 41 MB of JSON
npx tsx scripts/add-wwdc-year.ts <year> adds a year, or refreshes it, from Apple's pages; a session Apple no longer
lists keeps its stored data.
🗺️ Docs Map
api-map/apple-docs-map.tsv lists 336,629 pages (URL, title, kind, technology, group and tree) from Apple's navigator
indexes, the Human Interface Guidelines and App Store Connect Help's navigation. search_docs_map reads it on each
call. npx tsx scripts/build-docs-map.ts api-map/apple-docs-map.tsv rebuilds it in about 10 minutes.
🧪 Development
git clone https://github.com/mishafyi/Apple-Docs-2.0-MCP.git
cd Apple-Docs-2.0-MCP
npx pnpm@10 install
npx pnpm@10 run build # tsc into dist/, then the WWDC data into dist/data/
# Run your build in Claude Code in place of the npm package
claude mcp add apple-docs -- node "$PWD/dist/index.js"
# Checks: types (server and scripts), lint and tests
npx tsc --noEmit && npx tsc -p scripts && npx eslint src scripts && npx vitest run
# Call the built server without an MCP client
npx -y @modelcontextprotocol/inspector --cli node dist/index.js --method tools/call \
--tool-name search_apple_docs --tool-args-json '{"query":"tab bars","type":"design"}'
# Regenerate the types of Apple's JSON
npm run types:docc # from Swift-DocC's RenderNode and RenderIndex specs
npm run types:captured # from captured responses (quicktype)After a build, restart or reconnect the server in your MCP client.
🙏 Credits
Apple Docs 2.0 MCP builds on Apple Docs MCP by kimsungwhee, whose tools, WWDC data and structure it started from.
🤝 Contributing
Contributions are welcome:
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, as the original project: see LICENSE.
⚠️ Disclaimer
This project is not affiliated with or endorsed by Apple Inc. It reads Apple's publicly available developer documentation for educational and development purposes.
Available Tools
19 toolsbrowse_wwdc_topicsBrowse WWDC TopicsARead-only
The WWDC topics in the bundled data (no network), each with its ID, link and session count. With topicId, that topic's sessions instead, filtered by year and capped by limit.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Filter topic videos by year. Only when browsing specific topic. | |
| limit | No | Max videos per topic (default: 20). | |
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, and the description usefully adds that the data is bundled and requires no network. However, it says nothing about result freshness, pagination beyond the schema's limit, or ordering, so it adds only one genuine behavioral detail.
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 compact sentences, front-loaded with the default (no-topicId) behavior before the alternate mode. Every clause carries information; no filler or repetition.
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?
With no output schema, the description helpfully sketches the return shape (ID, link, session count) and the session-listing mode. Only minor gaps remain, such as ordering or how sessions are shaped when topicId is supplied.
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%, including the full topicId enum list and defaults for limit and includeVideos, so the schema carries the burden. The description only restates year filtering and limit capping, adding no meaning beyond 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 names a concrete resource (WWDC topics) and spells out the two operating modes: listing all topics with ID/link/session count, or drilling into one topic's sessions. It is clear enough to distinguish from siblings like list_wwdc_videos, though it never names an alternative explicitly.
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?
It implicitly explains the mode switch (pass topicId to get sessions instead of topics), but gives no guidance on when to choose this over list_wwdc_videos, search_wwdc_content, or list_wwdc_years, all of which overlap with topic browsing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_similar_apisFind Similar APIsARead-only
Alternatives to one API, read from its page's JSON: for a deprecated API, first the pages its deprecation note names (Apple's replacements, scored 10/10), then its See Also group (8/10) and, with searchDepth "medium" or "deep", its Topics groups (6/10); "deep" also reads the See Also of the first results. The scores come from where an API was found, not from comparing APIs.
| 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" | medium |
| filterByCategory | No | Focus on specific functionality like "Animation", "Navigation", "Data". Keeps the See Also and Topics groups whose title contains it, in any case. | |
| 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?
readOnlyHint already establishes the safe-read profile, and the description adds genuinely non-obvious behavior: results are read from the page's JSON, prioritization tiers (deprecation note 10/10, See Also 8/10, Topics 6/10), and the clarifying note that scores reflect provenance rather than similarity comparison. This is meaningful context 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?
The content is front-loaded with the core purpose, but it is delivered as one long, heavily nested sentence with parenthetical scores and quoted enum values, making it denser than it needs to be.
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 read-only, fully-documented-parameter tool with no output schema, the description conveys enough about what comes back (ranked alternatives with provenance scores) and how depth affects results. It is close to complete, lacking only sibling routing.
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 schema already documents all four parameters including the depth enum. The description only adds marginal nuance (which groups each depth reaches), so the baseline 3 applies.
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 opening 'Alternatives to one API' states the resource and outcome clearly, and the rest explains how alternatives are sourced. It does not, however, name or distinguish itself from the obvious sibling get_related_apis, so an agent must infer the division of labor.
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?
Usage is only implied through the searchDepth mechanics (medium/deep reaching Topics groups, deep reading See Also of first results). There is no explicit statement of when to pick this over get_related_apis or search_apple_docs, nor any when-not condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_apple_doc_contentGet Apple Doc ContentBRead-only
One page of Apple's documentation as Markdown, rendered from the page's JSON, the data developer.apple.com builds the page from, in its Swift version: the symbol's kind, Apple's summary, a deprecated API's message, its declaration, the overview with its code listings, tables, term lists, notes, images and videos (with Apple's alt text), the articles it's mentioned in, a property list key's details and attributes, the Topics groups with each group's description and each member's declaration and summary, a protocol requirement's default implementations, the Relationships (conforms to, inherits from, inherited by, conforming types), platform availability and the See Also links; a sample page's Download; a tutorial overview's volumes and chapters, each tutorial with its summary, and its resources, and a tutorial's steps with the code file after each and its project files; a web-service page's (App Store Connect API, App Store Server API and the like) URL, parameters, body, response codes, properties and possible values. An App Store Connect Help page comes as its article converted to Markdown. Links in the text come as links. The include… flags append related APIs, referenced types, similar APIs and a platform analysis, read from the page's JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL of the Apple Developer Documentation page. Must start with https://developer.apple.com/documentation/, https://developer.apple.com/design/human-interface-guidelines/, https://developer.apple.com/tutorials/ or https://developer.apple.com/help/app-store-connect/. Example: "https://developer.apple.com/documentation/uikit/uiviewcontroller" | |
| includeReferences | No | Resolve and include all referenced types and APIs. Helps understand dependencies. Default: false | |
| includeRelatedApis | No | Include inheritance hierarchy and protocol conformances. Useful for understanding API relationships. 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?
Annotations declare readOnlyHint=true, so the safety profile is already covered, and the description adds substantial behavioral context on top: it explains what the response contains per page type, that links arrive as links, and that the include flags are read from the source JSON and append related data. The notable gap is pagination: 'One page' implies a continuation mechanism, but nothing explains how to fetch subsequent pages or whether the include flags inflate response size/cost.
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 body is essentially a single ~190-word run-on sentence built from semicolon-separated clauses with no line breaks or headings. The most decision-relevant fact, the include-flag behavior, is buried at the very end rather than front-loaded, and the enumeration of every possible payload field is far larger than an agent needs to select the tool.
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?
With no output schema, the description carries the return-value burden and does so exhaustively across page types, which is genuinely useful. However, for a tool explicitly framed as delivering 'one page,' the absence of any pagination or continuation guidance leaves a functional hole, and error behavior for unsupported URLs is unaddressed.
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 the schema already documents the url constraint and each include flag's meaning, which sets the baseline at 3. The description only loosely restates the flags' effects ('append related APIs, referenced types, similar APIs and a platform analysis'), adding no format, cost, or interaction detail beyond 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 a specific verb and resource: it returns one page of Apple Developer documentation rendered as Markdown from the page's source JSON. It also usefully signals that the payload differs by page type. What it lacks is any differentiation from siblings such as search_apple_docs, get_sample_code, or get_related_apis, and the run-on phrasing makes the core purpose harder to extract than it should be.
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?
There is no explicit when-to-use or when-not-to-use guidance and no naming of alternatives, despite 18 sibling tools that overlap in domain (search_apple_docs, get_sample_code, get_related_apis). The only usage-adjacent statement is the trailing note that the include flags append extra data, which does not tell an agent when to pick this tool over a search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentation_updatesGet Documentation UpdatesARead-only
Links from Apple's Updates page, each with Apple's one-line summary: the release notes of each OS, Xcode and Safari; each framework's updates page ("SwiftUI updates"); and the What's new page of each past WWDC. Returns the links, not the changes; read one with get_apple_doc_content. For WWDC sessions use the WWDC tools.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | WWDC year filter ("2025", "2024", etc.). Only for wwdc category. | |
| limit | No | Max results (default: 50). Sorted by relevance and date. | |
| category | No | Update type filter. "wwdc": the What's new page of each past WWDC; "technology": each framework's updates page; "release-notes": the release notes of each OS, Xcode and Safari. Default: "all" | all |
| technology | No | Filter by framework, in any case. Examples: "SwiftUI", "UIKit", "ARKit". Get names from list_technologies. | |
| includeBeta | No | Include beta/preview features. Default: true | |
| searchQuery | No | Search keywords. Examples: "async", "performance", "widgets". Case-insensitive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds a genuinely useful behavioral fact beyond the annotations: the response is metadata links rather than content, and it enumerates what categories appear in the output. It stops short of describing pagination or result ordering, but the added context is solid.
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 core action is front-loaded and each claim earns its place, including the scope enumeration and the sibling routing. It is dense but not padded; the only minor cost is that the scope list and routing are packed tightly together.
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?
With no output schema, the description correctly compensates by stating that it returns links rather than changes and by enumerating the link scopes. Combined with full schema parameter coverage and the readOnlyHint annotation, an agent has enough to invoke it correctly; only pagination/ordering behavior is left implicit.
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 all six parameters (year, limit, category, technology, includeBeta, searchQuery) are already documented in the schema. The description's mention of scope categories maps onto the existing category enum and adds no syntax or format detail beyond it. Baseline 3 is appropriate when the schema carries the parameter 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?
States a specific verb and resource: it returns links from Apple's Updates page with one-line summaries, and enumerates the covered scopes (OS/Xcode/Safari release notes, framework updates pages, WWDC What's new pages). It explicitly contrasts itself with siblings by warning that it returns links, not changes, and points to get_apple_doc_content and the WWDC tools for other needs.
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?
Provides explicit routing: use this tool for the links, read a single item with get_apple_doc_content, and use the WWDC tools for sessions. This is when-to-use plus named alternatives with the condition that selects each, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_platform_compatibilityGet Platform CompatibilityARead-only
Where one API is available, from its page's JSON: each platform with the version that introduced it and the version that deprecated it, with Apple's note, and the minimum versions; an API deprecated on every platform it supports is flagged as such. compareMode "framework" runs the same check with related APIs included.
| Name | Required | Description | Default |
|---|---|---|---|
| apiUrl | Yes | API URL to check compatibility. Example: "https://developer.apple.com/documentation/swiftui/list" | |
| compareMode | No | "single" checks the API; "framework" runs the same check with related APIs included. Default: "single" | 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?
With only readOnlyHint=true in annotations, the description carries the return-value burden and does so well: it discloses per-platform version ranges, Apple's note text, minimum versions, and the special 'deprecated on every supported platform' flag. It stops short of covering failure modes or how the page JSON is fetched, but adds genuine context 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 sentences, but the first is a dense run-on whose front-loaded clause ('Where one API is available, from its page's JSON') reads awkwardly before the useful content. All the material earns its place, yet the structure could be far cleaner.
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?
There is no output schema, so the description must—and does—explain what comes back, including the deprecation flag and the framework compare mode. It omits guidance on includeRelated and the expected URL form, minor gaps for a single-resource read tool with full 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% with only 3 parameters, so the baseline is 3. The description's note on compareMode "framework" largely restates the schema's own enum description, and it never mentions includeRelated, so it adds little semantic value over the structured fields.
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 names the resource (an API's platform availability from its page JSON) and enumerates exactly what is returned: per-platform introduced/deprecated versions, Apple's note, minimum versions, and a deprecation flag. The awkward opening ('Where one API is available') slightly muddies the verb, but an agent can tell this apart from search_apple_docs or get_related_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?
It gives one routing hint — compareMode "framework" runs the same check with related APIs included — but there is no explicit when-to-use vs siblings like get_related_apis or find_similar_apis, and no prerequisites (e.g. that apiUrl must be a developer.apple.com documentation URL). Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sample_codeGet Sample CodeBRead-only
Apple's sample-code library: project titles with links and Apple's one-line summaries, grouped by framework; read a project's page, with its Download link, with get_apple_doc_content. framework matches the project's framework in any spelling ("storekit", "Store Kit"); searchQuery matches titles first, then frameworks, paths and summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| beta | No | Beta samples: "include" = all, "exclude" = stable only, "only" = beta only. Default: "include" | include |
| limit | No | Max results (default: 50). | |
| framework | No | Framework filter (case-insensitive). Examples: "SwiftUI", "ARKit", "CoreML". Note: Some samples are under generic categories - use searchQuery for better results. | |
| searchQuery | No | Search keywords. Most effective approach. Examples: "animation", "camera", "machine learning", "widgets". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares this is a safe read. The description adds genuine behavioral context beyond that: results are relevance-ordered with title matches ranked first, then frameworks/paths/summaries. It omits return shape, pagination, and what happens with zero filters.
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?
Front-loads the resource, but the first sentence is a dense run-on mixing output description and a routing hint to get_apple_doc_content. The trailing sentence packs two separate matching rules into one clause chain, which hurts scannability.
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?
With no output schema, the description does carry burden and does describe the returned content, but it never mentions pagination despite the limit (max 200) parameter, nor what an unfiltered call returns. Adequate but with visible gaps for a 4-param listing tool.
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 baseline is 3, but the description goes further by explaining that framework matches in any spelling/fuzzy form ("storekit" vs "Store Kit") and that searchQuery ranking prioritizes titles over frameworks, paths and summaries. It leaves beta/limit semantics to the schema, which is acceptable.
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?
States a specific resource (Apple's sample-code library) and what it returns: project titles, links, one-line summaries grouped by framework, plus the ability to read a project page. It gestures at a sibling (get_apple_doc_content for a project's page) but does not clearly distinguish itself from search_apple_docs 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?
Usage is implied through the parameter guidance ('searchQuery matches titles first...') and the pointer to get_apple_doc_content for reading a page, but it never states when to choose this tool over search_apple_docs or search_wwdc_code_examples. No explicit when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technology_overviewsGet Technology OverviewsARead-only
Apple's Technology Overviews guides: its collections, each with Apple's summary, and the articles in each, as one tree in Apple's order. category gives one collection with everything in it; searchQuery gives a flat list of the entries that mention it, each with the collection it is in. Returns links, not the articles; read one with get_apple_doc_content.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Most entries to print, collections and articles together. Default: 50 | |
| category | No | One collection, by the last segment of its link or its title, such as "app-design-and-ui", "games", "ai-machine-learning" or "liquid-glass"; an unknown one returns the list. Leave empty for all. | |
| searchQuery | No | Keeps the collections and articles whose title or summary contain it, such as "data", "SwiftUI", "machine learning" or "performance". Articles carry no summary in Apple's index, so their titles decide. | |
| includeSubcategories | No | false lists only the collections, without their articles. Default: true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. Beyond that, the description adds real behavioral context: results are links rather than article contents, ordering follows Apple's own order, and an unknown category falls back to the full list. Return formatting is only lightly sketched (tree vs flat list), so it stops just short of 5.
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?
Front-loads what the tool returns, then mode behavior, then the hand-off to get_apple_doc_content — no wasted sentences. The prose is densely packed with semicolons, which is efficient but slightly harder to parse than a cleanly separated set of clauses.
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?
With no output schema, the description does most of the work by explaining that entries are links in an ordered tree or flat list, each tagged with its collection. It falls short only on pagination/limit interaction with the two modes, which the agent must infer from the schema's limit field.
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 each field is already documented, but the description adds mode-level meaning the schema doesn't: category yields a whole collection plus children, searchQuery yields a flat cross-collection match list, and includeSubcategories governs whether articles appear at all. This meaningfully exceeds the baseline 3 for a fully-documented 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?
States a specific verb+resource: retrieving Apple's Technology Overviews guides as a tree of collections and articles. It also distinguishes itself from the siblings by naming get_apple_doc_content as the tool for reading the actual articles, so an agent needn't open other schemas to disambiguate.
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 routes between modes: category returns one collection with everything in it, searchQuery returns a flat list of matching entries, and empty/unknown values return the full list. It also states the read-elsewhere alternative ('read one with get_apple_doc_content'), closing the loop on when not 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.
get_wwdc_code_examplesGet WWDC Code ExamplesARead-only
Code examples from the bundled WWDC sessions (no network): each with its title, its session's title, link and year, the time it appears, and the code. framework keeps the examples whose code mentions it, so "SwiftUI" matches any code that imports SwiftUI; topic, language and year filter too.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | WWDC year filter ("2025", "2024", etc.). | |
| limit | No | Max examples (default: 30). Each includes code and source video info. | |
| topic | No | A topic ID from browse_wwdc_topics, such as "swift" or "swiftui-ui-frameworks", keeps that topic's sessions; any other text, such as "animation", keeps the sessions whose title or topic names contain it. | |
| language | No | Programming language: "swift", "objc", "javascript", "metal". | |
| framework | No | Framework to find examples for. Examples: "SwiftUI", "SwiftData", "RealityKit". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile, and the description adds real value beyond it: 'no network' tells the agent results come from bundled local data, and it discloses the shape of each returned example. It does not mention result-count truncation or pagination, but the schema's limit parameter largely covers that.
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?
A single front-loaded sentence that leads with the resource and provenance before detailing filter behavior. Dense but every clause carries information; the only cost is that the filter explanation is a run-on chain rather than split into digestible points.
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?
With 5 optional params, no output schema, and a read-only annotation, the description supplies what an agent needs: what a result contains and how each filter behaves. Only the interaction between limit/default truncation and filtering is left entirely to the schema.
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 baseline is 3, but the description genuinely adds semantics the schema lacks: framework matching is substring-on-code ('SwiftUI matches any code that imports SwiftUI') rather than an exact framework name. This disambiguates a filter whose behavior is otherwise guessable.
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?
States a concrete verb+resource ('Code examples from the bundled WWDC sessions') and enumerates the returned fields (title, session title, link, year, timestamp, code). It is clearly distinguishable from sibling tools like get_sample_code because it specifies WWDC sessions and bundled/local data, though it never names an alternative explicitly.
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?
Usage is only implied: the filter semantics ('framework keeps the examples whose code mentions it', 'topic, language and year filter too') tell the agent how to narrow results but not when to pick this tool over search_wwdc_content, get_sample_code, or find_related_wwdc_videos. No when-not guidance or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wwdc_videoGet WWDC VideoARead-only
One WWDC session from the bundled data, as text (no network): title, year and topics; its links, including the HD and SD .mp4 downloads and the documentation it covers; the full transcript as plain text, without timestamps; every code example with the time it appears; and related sessions. Transcripts run to tens of KB: includeTranscript false leaves it out.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | WWDC year. Example: "2025" | |
| videoId | Yes | Session ID. Example: "10101" for keynote, "238" for session 238. | |
| includeCode | No | Include all code examples from the session. Default: true | |
| includeTranscript | No | Include the full transcript, as plain text without timestamps. Default: true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint=true, the description discloses that data is bundled (no network) and warns that transcripts run to tens of KB, with includeTranscript=false omitting them. That payload-size context is genuinely useful and not derivable from the 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 purpose and 'no network' scoping are front-loaded, and the colon-list of returned fields is dense but scannable. The payload warning is placed at the end where it is most actionable; the single long sentence is slightly run-on but not wasteful.
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?
With no output schema, the description carries the return-value burden itself and does so thoroughly: title, year, topics, HD/SD download links, covered docs, transcript, timestamped code examples, and related sessions. Combined with readOnlyHint and the size caveat, an agent has everything needed to call it correctly.
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 baseline is 3; the description goes further by explaining the practical consequence of includeTranscript (transcripts can be tens of KB, set false to omit), which adds meaning about why and when to flip the flag rather than just restating its default.
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?
States a specific verb and resource (retrieve one WWDC session) and delineates scope ('the bundled data, as text (no network)'), then enumerates exactly what the session record contains. An agent can tell it apart from list/search siblings, though no sibling is named explicitly.
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?
Usage is implied by the getter shape (one session keyed by year + videoId), and the includeTranscript note hints at the token-cost tradeoff. However, there is no explicit when-to-use guidance and no mention of alternatives such as search_wwdc_content or get_wwdc_code_examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_technologiesList TechnologiesARead-only
Apple's technology index: every framework and technology with its link, its languages (swift, occ, data) and its categories, alphabetical within each category. category keeps the categories whose name contains it, or else the technologies with a tag that contains it ("Machine learning": Core ML, Create ML, Vision…), in any case; a beta technology is marked (Beta). The last segment of a technology's link ("swiftui", "storekit") is the framework search_framework_symbols takes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per category. Useful for quick overviews. Default: 200 | |
| category | No | Keeps the categories whose name contains this or, failing that, the technologies with a tag that contains it (the Categories line of each), in any case: "Machine learning" finds Core ML, Create ML and Vision. 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries most of the burden and does so: it discloses alphabetical-within-category ordering, that beta entries are suffixed "(Beta)", and the two-stage category matching rule (category name contains X, else tag contains X). Missing only return-size/pagination behavior beyond the limit param.
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?
Three long, somewhat run-on sentences with nested parentheticals and repeated quotes; the key identifying facts are front-loaded, but the schema-duplicating category explanation and dangling clause "in any case" add clutter rather than 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?
With no output schema, the description must convey the return shape, and it does: per-category alphabetical listing, frameworks with links, language tags, categories, and beta marking. It does not mention result-size behavior or the default 200-per-category cap, which the schema covers but a caller might still want surfaced.
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 the schema already documents all four parameters including the category matching rule and the beta filter. The description largely restates the category semantics ("in any case") and links the beta marking to includeBeta, adding only marginal meaning beyond the schema, so the baseline 3 applies.
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?
Opens with a specific verb+resource framing ("Apple's technology index: every framework and technology with its link, its languages ... and its categories"), so the agent knows exactly what comes back. It also distinguishes itself from search_framework_symbols by explaining that the last link segment is the framework that sibling accepts.
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 category semantics and the hand-off note to search_framework_symbols imply when this tool is useful (browsing/discovering frameworks by category or tag). However, there is no explicit when-to-use guidance versus siblings like get_technology_overviews, search_docs_map or search_apple_docs, and no statement of when NOT to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wwdc_videosList WWDC VideosARead-only
WWDC sessions from the data bundled with this server (no network): each one's title, its link on developer.apple.com, whether it has a transcript and code, and its topics. year is one year or "all" (list_wwdc_years lists them); topic is a topic ID from browse_wwdc_topics or a word in the title; hasCode keeps the sessions with, or without, code.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | WWDC year ("2025", "2024", etc.) or "all"; list_wwdc_years lists the years held. Example: "2025" for latest. | |
| limit | No | Max videos to show (default: 50). Videos include title, duration, and content indicators. | |
| topic | No | A topic ID keeps that topic's sessions: "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". Any other text keeps the sessions whose title or topic names contain it. | |
| hasCode | No | Filter by code availability. true = sessions with code, false = without code. Leave empty for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read. The description adds genuinely new behavioral context — the data is bundled locally with no network access — but says nothing about ordering, pagination behavior for large result sets, or what happens when filters match nothing.
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?
It is a single compact block with no wasted sentences and leads with what the tool returns. It is somewhat crammed with parenthetical asides, which slightly hurts readability, but nothing is filler.
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?
With four optional params and no output schema, the description does state what each result contains (title, link, transcript/code, topics). It omits any note about result ordering or the effect of the limit default, which is a minor gap for a list tool.
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 all four parameters are already documented. The description largely restates those semantics ('year is one year or all', 'hasCode keeps the sessions with, or without, code') without adding syntax or default details beyond the schema, so the baseline 3 applies.
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 states a specific verb (list) and resource (WWDC sessions) and enumerates the returned fields (title, developer.apple.com link, transcript/code flags, topics). It also scopes the data source ('bundled with this server, no network'), which separates it from network-backed siblings like 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?
It routes parameter values to helpers (list_wwdc_years for years, browse_wwdc_topics for topic IDs), which is useful implicit guidance. However, it never says when to choose this tool over alternatives such as search_wwdc_content or find_related_wwdc_videos, so the tool-selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wwdc_yearsList WWDC YearsARead-only
The WWDC years in the bundled data, each with its session count, plus the total and how many sessions have code and transcripts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description usefully discloses the return shape — per-year session counts plus totals for code and transcript availability — rather than leaving an agent blind, which matters since there is no output schema. It does not mention the data source freshness or format beyond 'bundled data'.
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?
A single front-loaded sentence with no boilerplate. It is packed with several clauses (per-year counts, totals, code/transcript counts) but each clause conveys distinct return information, so nothing is wasted.
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?
With no output schema and no parameters, the description bears the burden of explaining what comes back, and it does so adequately for a fixed-shape listing tool. The main gap is the absence of any routing guidance among the many sibling tools.
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 tool takes zero parameters, so the baseline is 4. There is nothing for the description to clarify on the input side; the schema is trivially complete.
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?
States a specific resource (WWDC years) and describes the exact payload: per-year session counts plus aggregate totals for sessions with code and transcripts. This distinguishes it from siblings like list_wwdc_videos or browse_wwdc_topics, though it never names an alternative explicitly.
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 when-to-use guidance whatsoever. With 19 sibling tools in the WWDC/doc space, the agent gets no signal about when to reach for this year-level rollup versus search_wwdc_content, browse_wwdc_topics, or list_wwdc_videos.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_references_batchResolve References BatchARead-only
The pages one documentation page references, read from that page's JSON alone (no further requests): each one's title, kind, Apple's summary and, for a symbol, its declaration, grouped by kind. Takes the first maxReferences in the JSON's own order, not by relevance, and leaves out the page's images and other media; filterByType keeps one role or kind.
| Name | Required | Description | Default |
|---|---|---|---|
| sourceUrl | Yes | Documentation URL to analyze for references. Example: "https://developer.apple.com/documentation/swiftui/view" | |
| filterByType | No | Filter by reference type. Use "protocol" for protocol requirements, "class" for class hierarchies. Default: "all" | all |
| maxReferences | No | Limit resolved references (default: 20, max: 50). Higher values = more comprehensive but slower. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only readOnlyHint=true in the annotations, the description carries real behavioral weight: it discloses that no additional network requests are made, that results are truncated by JSON order rather than relevance, that images/media are excluded, and that output is grouped by kind. That is substantive context beyond the annotation, though it stops short of covering failure modes or invalid-URL behavior.
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?
It is a single dense sentence with parenthetical asides, but the core purpose is front-loaded and the trailing clauses (ordering, exclusions, filter) each add distinct information. Slightly over-packed for one sentence, but no clause is filler.
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?
With no output schema, the description must describe the return shape, and it does: title, kind, Apple's summary, and declaration for symbols, grouped by kind. Combined with the ordering and exclusion notes, an agent has enough to call and interpret the tool, with only error/edge-case behavior left unstated.
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 baseline is 3, but the description adds meaning the schema does not: maxReferences is explicitly ordering-semantic ('the first maxReferences in the JSON's own order, not by relevance'), and filterByType is characterized as keeping 'one role or kind'. Those are genuine semantic additions rather than restatements.
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 states a specific verb-resource pairing: it returns the pages that a given documentation page references, scoped explicitly to what is derivable 'from that page's JSON alone (no further requests)'. This clearly separates it from the sibling search_* and browse_* tools, though it never names an alternative directly, which keeps it short of a 5.
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?
Usage is implied rather than stated: the agent can infer it should call this to enumerate a page's outbound references, and it gives ordering/limit guidance ('first maxReferences in the JSON's own order, not by relevance'). However, there is no explicit when-to-use versus search_apple_docs or get_apple_doc_content, nor any stated exclusion or prerequisite condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_apple_docsSearch Apple DocsARead-only
Search developer.apple.com the way its search page does (Apple's search API). Returns links, not content: each result's title, framework, type and Apple's one-line summary, grouped by section. type "all" (the default) covers documentation, the Human Interface Guidelines, sample code and App Store Connect Help, plus a WWDC Sessions section of up to 5 sessions, each with the get_wwdc_video call that reads it; "documentation", "design", "sample" or "help" (App Store Connect Help) searches only that. Read a result with get_apple_doc_content. Searches go out one at a time, 15 s apart, as Apple answers quicker ones with no results; "all" sends two.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Type of content to filter. "all": documentation, design guidelines, sample code projects, and WWDC sessions; "documentation": API references and guides; "design": the Human Interface Guidelines; "sample": sample code projects; "help": App Store Connect Help (product page fields, review, TestFlight, pricing). Default: "all". | all |
| 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". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds genuinely useful behavior beyond that: results are links grouped by section, 'all' triggers two requests, searches are serialized 15 s apart because Apple returns empty for rapid ones, and 'all' includes a capped 5-session WWDC block. These are operational details an agent cannot infer from the schema.
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?
Front-loaded with purpose and return shape, then filters, then the reading alternative, then rate behavior. Dense but each clause carries information; only slight compression of the rate-limit sentence could tighten it further.
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, yet the description fully specifies the return shape (title, framework, type, one-line summary, grouped by section) plus the alternative reader and rate constraints. Nothing needed to call it correctly is missing.
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 enum values are already documented, but the description adds meaning beyond the schema: 'all' sends two searches (rate/time implications) and the WWDC Sessions section behavior. This goes past restating the enum, though it does not add syntax guidance for query.
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?
States a specific verb+resource (search developer.apple.com via Apple's search API) and immediately distinguishes the return type from content-returning siblings: 'Returns links, not content'. An agent knows exactly what this produces versus get_apple_doc_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?
Explicitly names the alternative for reading results ('Read a result with get_apple_doc_content') and explains what each type filter covers, so the agent can pick the right scope without guessing. It also routes WWDC Sessions results to get_wwdc_video.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docs_mapSearch Docs MapARead-only
Every page of Apple's documentation and the Human Interface Guidelines whose title contains query, in any case and as typed (no pattern syntax), from the docs map on disk (api-map/apple-docs-map.tsv, built by scripts/build-docs-map.ts; no network): each one's title, kind, technology and link, shortest titles first; technology keeps one or more frameworks. Read a page with get_apple_doc_content.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results, shortest titles first (default: 10). | |
| query | Yes | Text the title contains, in any case and taken as typed: a name ("accessibilityInputLabels(_:)"), part of one ("inputlabels") or a word ("gauge"). | |
| technology | No | Keep only the pages of these technologies, by the name the results show ("SwiftUI", "UIKit", "Human Interface Guidelines"), in any case. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint, the description discloses that results come from a local prebuilt file (api-map/apple-docs-map.tsv, no network), that matching is title-only and literal, that results are sorted shortest-titles-first, and that technology may retain multiple frameworks. Those are genuine behavioral traits not covered by the annotation. It does not discuss result caps or pagination, but the schema's limit already handles that.
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?
Purpose is front-loaded and dense with useful detail, but the whole description is a single long run-on sentence with stacked parentheticals. The build-path implementation details (scripts/build-docs-map.ts) add little for an invoking agent, though the rest of the content earns its place.
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?
With no output schema, the description usefully enumerates the returned fields (title, kind, technology, link) and their ordering, and points to get_apple_doc_content for follow-up, which is enough for a read-only search tool. Missing only explicit guidance on the search_apple_docs alternative.
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 query, limit and technology are already documented in the schema, including the literal-match behavior and the shortest-titles-first limit semantics. The description adds only marginal nuance ("technology keeps one or more frameworks"), so it sits at the baseline for fully-described parameters.
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?
States a specific verb and resource (search the docs map) plus the exact matching rule (title contains query, any case, as typed, no pattern syntax) and the data source, so an agent can tell it mirrors over a local static map rather than the live API. It stops short of explicitly contrasting with the closely-related sibling search_apple_docs, leaving the agent to infer which search to pick.
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?
It gives a follow-up instruction ("Read a page with get_apple_doc_content") and a constraint (no pattern syntax), which shapes how to use it. It offers no explicit when-to-use/when-not guidance relative to search_apple_docs, the sibling an agent would most likely confuse it with, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_framework_symbolsSearch Framework SymbolsARead-only
The symbols in one framework's navigator index: each one's name, link and kind, without summaries. framework is the last segment of the framework's documentation link ("swiftui", "storekit"); symbolType keeps one kind; namePattern is a wildcard such as "View" or "UI", in any case; nested symbols count toward limit. Read a symbol with get_apple_doc_content.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results limit (default: 50, max: 200). Includes nested symbols. | |
| language | No | Language preference. Some APIs differ between Swift and Objective-C. Default: "swift" | swift |
| 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. | all |
| namePattern | No | Filter by name pattern. Use "*View" for all views, "UI*" for UI-prefixed symbols, "*Delegate" for delegates. Any case. Leave empty for all symbols. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, so the safety profile is covered. The description adds useful behavioral context beyond annotations: results omit summaries, nested symbols count toward the limit, and namePattern matching is case-insensitive. It does not discuss pagination or failure cases, but for a read-only index search this is solid.
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 compact and front-loaded: it starts with what the tool returns, then parameter clarifications, then the follow-up tool. Every sentence carries information, and semicolons keep it dense without waste.
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 five parameters, no output schema, and only a readOnly annotation, the description covers the essential return shape (name, link, kind, no summaries) and the core filtering behavior. It stops short of specifying pagination or full output structure, but it provides enough for an agent to call the tool correctly.
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 the schema already documents all five parameters with examples. The description adds the useful detail that framework is the last segment of the documentation link, but much of its parameter text repeats schema content such as the limit including nested symbols and namePattern case-insensitivity. Baseline 3 is appropriate when the schema does the heavy lifting.
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?
States a specific resource and scope: symbols from one framework's navigator index, with name, link, and kind but no summaries. It distinguishes this from full-content retrieval by naming get_apple_doc_content, so an agent can tell it apart from siblings such as search_apple_docs.
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?
Provides clear context: use a framework identifier obtained from list_technologies, filter by symbolType, and use namePattern for wildcard matching. It also names get_apple_doc_content as the next step for reading a symbol. However, it does not explicitly say when to prefer this tool over search_apple_docs or other search siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_wwdc_contentSearch WWDC ContentARead-only
Full-text search of the bundled WWDC transcripts and code (no network). For each session that matches, most matches first: its title, link and year, and up to 3 matches, each a transcript paragraph or the code lines around the match, with the code example's title and the time it appears. searchIn picks transcripts, code or both; language filters the code.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Limit to specific year ("2025", "2024", etc.). Leave empty for all years. | |
| limit | No | Max results (default: 20). Results include context snippets. | |
| query | Yes | Search terms. Examples: "async await", "@Observable", "Vision Pro", "performance optimization". | |
| language | No | Code language filter ("swift", "objc", "javascript"). Only for code search. | |
| searchIn | No | Search scope. "transcript" = spoken content, "code" = code examples only, "both" = everything. Default: "both" | both |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint, so the description carries most of the behavioral burden and does well: it discloses that the corpus is local/bundled (no network), that results are ranked most-matches-first, and describes the actual return shape (title, link, year, up to 3 matches with snippets). It doesn't mention pagination or result limits beyond the schema, but the added disclosure is substantial.
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?
It is a single dense sentence that front-loads purpose before spilling into return-format detail. Nothing is wasted, though the return-format clause makes it longer than strictly needed for selection.
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?
With no output schema, the description usefully compensates by describing the result shape. All 5 parameters are covered and the offline nature is disclosed, leaving only sibling routing as an unaddressed gap.
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 baseline is 3. The description adds a small amount of meaning by clarifying that searchIn toggles transcript vs code and that language only applies to code, but this largely restates what the schema already documents.
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?
States a specific verb and resource ("Full-text search of the bundled WWDC transcripts and code") plus a scope qualifier ("no network") that separates it from sibling doc/symbol search tools. An agent can distinguish it from search_apple_docs or search_framework_symbols without opening the schema.
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 explains how searchIn and language shape the search, which is genuine usage guidance at the parameter level. However, it never states when to pick this tool over alternatives like search_apple_docs or find_related_wwdc_videos, so inter-tool routing is left to inference.
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.
19 tool updates
v0.1.0- 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_docs_map - First observed
search_framework_symbols - First observed
search_wwdc_content
TDQS
Scored across 19 tools
Several tools sit close together: search_apple_docs (Apple's live search), search_docs_map (local title search) and search_framework_symbols all search Apple material by different means, and the six WWDC tools (list_wwdc_videos, browse_wwdc_topics, search_wwdc_content, get_wwdc_video, get_wwdc_code_examples, find_related_wwdc_videos) overlap on listing/searching/fetching sessions. The extremely detailed descriptions do clarify boundaries (local vs network, links vs content), but an agent must read carefully to pick correctly, and get_related_apis/resolve_references_batch/find_similar_apis form another confusable cluster.
All 19 tools use lowercase snake_case with a predictable verb_noun shape (search_apple_docs, get_apple_doc_content, list_technologies, find_similar_apis, resolve_references_batch, browse_wwdc_topics). Verb choice varies semantically but the pattern is uniform and readable throughout.
At 19 tools this is on the heavy side of the rubric (16-25 feels heavy). The domain is genuinely broad (docs pages, symbol indices, API relationships, compatibility, sample code, and the full WWDC surface), so most tools earn their place, but the count is larger than an agent can hold comfortably and invites the noted overlap.
Coverage is strong for an Apple developer-docs server: live search, page rendering, symbol lookup, related/replacement APIs, compatibility, sample code, technology overviews, updates, and a full WWDC pipeline (list, browse, search transcripts/code, fetch video and examples). Only minor gaps remain, such as no cross-framework full-text doc search beyond titles and no explicit versioned-diff tooling.
Related MCP Connectors
Apple Developer Documentation with Semantic Search, RAG, and AI reranking for MCP clients
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
The documentation, as a tool your agent can call: 950+ AI-dev guides. Search + fetch tools.
SEC filings, Wikipedia, arXiv, US Census and more for AI agents, with every answer source-linked.
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-
- AlicenseAqualityDmaintenanceProvides access to Apple's official developer documentation, frameworks, APIs, and WWDC session transcripts across all Apple platforms. It enables AI assistants to search technical guides, sample code, and platform compatibility information using natural language queries.181,171 npm1,385MIT
- AlicenseNot gradedqualityBmaintenanceProvides access to Apple documentation and WWDC transcripts with semantic, keyword, and hybrid search capabilities, enabling developers to quickly find relevant code examples and technical information.120MIT