apple-dev-docs · diff
git:20261002.1553c71 to v1.0.0
115 added, 103 removed. Audit A to A.
---
name: apple-dev-docs
description: >-
- Search and retrieve Apple's official developer documentation, WWDC video
- transcripts, and framework references using semantic RAG. Use when the user
- asks about Apple platforms (iOS, macOS, watchOS, tvOS, visionOS), frameworks
- (SwiftUI, UIKit, ARKit, Core Data, HealthKit, StoreKit, etc.), Swift language
- features, Xcode tooling, App Store guidelines, or any Apple developer API.
+ Answer Apple platform questions from Apple's official developer documentation
+ and WWDC session transcripts instead of guessing or web-searching. Use when
+ the user asks about iOS, iPadOS, macOS, watchOS, tvOS, or visionOS; Swift,
+ SwiftUI, UIKit, AppKit, StoreKit, SwiftData, RealityKit, or any Apple
+ framework; an API's signature, availability, or deprecation; an Xcode or build
+ error caused by Apple APIs; App Store review rules; or what a WWDC session
+ actually said — even when a quick web search seems close enough.
+ license: MIT
+ compatibility: Requires the free apple-rag-mcp MCP server (remote HTTP). No API key, account, or local install.
+ metadata:
+ version: "1.0.0"
+ source: https://github.com/BingoWon/apple-rag-mcp
---
# Apple Developer Documentation
- Provide authoritative guidance from Apple's official developer documentation and WWDC sessions using the apple-rag-mcp MCP server. Prioritize MCP tools over web search for Apple development questions.
+ Official Apple documentation and WWDC transcripts, retrieved with hybrid RAG
+ search and ranked for relevance. Prefer this over web search: Apple's docs are
+ JavaScript-rendered and indexed poorly by search engines, model knowledge drifts
+ a release or two behind, and WWDC transcripts are almost never in context.
- ## Quick start
+ ## Use this skill when
- - Use `search` to find relevant documentation and WWDC content.
- - Use `fetch` to retrieve the complete, cleaned content of a specific page by URL.
- - Always prefer MCP tools over web search for Apple-related questions.
+ - Looking up an API's signature, behavior, or constraints.
+ - Checking availability, deprecation, or platform support.
+ - Verifying what a WWDC session said before repeating it.
+ - Diagnosing a build error that names an Apple symbol.
+ - Checking App Store review rules or Human Interface Guidelines.
- ## Tool reference
+ ## Do not use it when
- ### search
+ - The question is not about Apple platforms.
+ - The user needs today's news or a release that shipped this week; the index
+ covers documentation and session transcripts, not press releases.
+ - The task is pure code generation with no API fact to check.
+ - The user wants Apple Developer account, billing, or App Store Connect
+ operations; those are not in this knowledge base.
- ```
- search(query: string, result_count?: number)
- ```
+ ## Check the connection first
- - `query` — **Must be in English.** Focus on technical concepts, API names, framework names, and version numbers. Avoid dates and temporal language.
- - `result_count` — Number of results (1–10, default 4). Use higher values for broad topics, lower for specific APIs.
+ Confirm the `search` and `fetch` tools are available before answering. If they
+ are missing, offer to add the server instead of silently falling back:
- ### fetch
+ | Client | Setup |
+ | --- | --- |
+ | Cursor | Add to MCP settings: `{"mcpServers":{"apple-rag-mcp":{"url":"https://mcp.apple-rag.com"}}}` |
+ | Claude Code | `claude mcp add --transport http apple-rag-mcp https://mcp.apple-rag.com` |
+ | Codex | `codex mcp add apple-rag-mcp --url https://mcp.apple-rag.com` |
+ | Others | Add a remote HTTP MCP server with URL `https://mcp.apple-rag.com` |
- ```
- fetch(url: string)
- ```
+ Ask before writing configuration. If the tools are still unavailable after the
+ user reconnects, say so and stop; do not answer Apple API questions from memory
+ while presenting them as documentation.
- Retrieve the full cleaned content of an Apple developer documentation page or WWDC video transcript by its URL.
+ The free tier covers 30 tool calls per week at 3 per minute, shared by `search`
+ and `fetch`. No key is required.
- ## Workflow
+ ## Tools
- 1. **Identify scope**: Determine which Apple framework, API, or platform the question targets.
- 2. **Search**: Run `search` with a precise English query using framework and API names.
- 3. **Evaluate results**: Check each result's completeness indicator:
- - `✅ Complete Document` — Full content, use directly.
- - `📄 Part X of Y` — Partial content. Run `fetch(url)` to get the complete document.
- - `📄 Parts merged` — Multiple sections merged. Run `fetch(url)` if you need the full document.
- 4. **Fetch when needed**: Use `fetch` for any result that is partial, or when Additional Related Documentation URLs look relevant.
- 5. **Answer with citations**: Reference the source URL so the user can verify.
+ ### `search(query, result_count?)`
- ## Query best practices
+ - `query` — English only. Use framework names, API names, and version numbers.
+ - `result_count` — 1 to 10, default 4. Use 6-8 for broad topics, 2-3 for an
+ exact symbol.
- **Good queries** — focus on technical terms and API names:
+ ### `fetch(url)`
- - `SwiftUI NavigationStack path binding`
- - `Core Data CloudKit sync NSPersistentCloudKitContainer`
- - `visionOS RealityKit entity component system`
- - `StoreKit 2 Transaction.currentEntitlements`
- - `UIKit UICollectionView compositional layout`
+ Returns the complete cleaned text of one documentation page or video transcript.
+ Use it whenever a search result is partial.
- **Avoid** — temporal language, vague terms, non-English:
+ ### Reading result markers
- - ~~`latest SwiftUI changes from WWDC26`~~ → `SwiftUI new APIs`
- - ~~`how to make an app`~~ → `iOS app lifecycle UIApplicationDelegate`
- - ~~`SwiftUI 导航`~~ → `SwiftUI navigation`
+ | Marker | Meaning | Next step |
+ | --- | --- | --- |
+ | `✅ Complete Document` | Full page | Answer directly |
+ | `📄 Part N of M` | One chunk only | Call `fetch` with that URL |
+ | `📄 Parts X, Y merged (M total)` | Partial merge | Call `fetch` for the full page |
- ## Coverage
+ Treat a partial result as a pointer, never as the full answer.
- The knowledge base covers:
+ ## Workflow
- - **Apple Developer Documentation**: All frameworks and APIs across iOS, iPadOS, macOS, watchOS, tvOS, visionOS, including current platform 27 documentation
- - **WWDC Sessions**: Video transcripts from WWDC26 and earlier WWDC presentations
- - **Design Guidelines**: Human Interface Guidelines
- - **Technical Articles**: Apple's official technical notes and guides
+ 1. **Scope it.** Identify platform, framework, and version constraint from the
+ question or the code in context.
+ 2. **Search.** One precise English query built from API and framework names.
+ 3. **Read the markers.** Decide whether `fetch` is required.
+ 4. **Fetch.** Retrieve the full page for any partial result or any page you will
+ quote.
+ 5. **Answer with citations.** Every factual claim gets the source URL.
- ## Access tiers
+ ## Common tasks
- | Tier | Weekly limit | Per-minute limit | How to get |
- |------|-------------|-----------------|------------|
- | **Anonymous** | Very limited | Very limited | No setup needed |
- | **Free** | 50/week | 5/min | Register at https://apple-rag.com |
- | **Pro** | 50,000/week | 50/min | $1/week at https://apple-rag.com |
+ ### Look up an API
- After registering, the user creates an MCP Token on the dashboard page and adds it to their MCP configuration as a Bearer token:
+ `search("SwiftUI NavigationStack path binding")` → if partial, `fetch` → answer
+ with signature, availability, and the URL.
- ```json
- {
- "mcpServers": {
- "apple-rag-mcp": {
- "type": "http",
- "url": "https://mcp.apple-rag.com",
- "headers": {
- "Authorization": "Bearer at_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- }
- }
- }
- }
- ```
+ ### Verify a WWDC claim
- ## When rate-limited
+ `search("WWDC session concurrency actors")` → `fetch` the transcript → quote the
+ session, not the docs, when the claim is about what was announced.
- If a search or fetch returns a rate limit error, tell the user directly:
+ ### Check availability or deprecation
- - **Anonymous** → Register a free account at https://apple-rag.com (30 seconds, unlocks 50/week).
- - **Free tier** → Upgrade to Pro for $1/week at https://apple-rag.com (unlocks 50,000/week, 50/min).
- - **Pro tier** → Retry after the reset time shown in the error message.
+ `search("AVAudioSession setActive deprecated")` → prefer the page's availability
+ section over release-note prose. If the answer is not in the result, say the
+ documentation does not state it.
- Do not silently swallow rate limit errors. The user needs to know their quota is exhausted and how to resolve it.
+ ### Diagnose a build error
- ## If MCP server is missing
+ Search the exact Apple symbol or error phrase, without file paths or line
+ numbers. Answer from the API page, then point at the specific requirement that
+ was violated.
- Install the MCP server with the appropriate command for your client:
+ ## Write good queries
- **Cursor**: Add to MCP settings:
- ```json
- {
- "mcpServers": {
- "apple-rag-mcp": {
- "url": "https://mcp.apple-rag.com"
- }
- }
- }
- ```
+ | Good | Bad |
+ | --- | --- |
+ | `SwiftUI NavigationStack path binding` | `latest SwiftUI changes` |
+ | `StoreKit 2 Transaction.currentEntitlements` | `how to make money with IAP` |
+ | `visionOS RealityKit entity component system` | `vision pro development` |
+ | `UIKit UICollectionView compositional layout` | `collection view 2026` |
- **Claude Code**:
- ```bash
- claude mcp add --transport http --scope user apple-rag-mcp 'https://mcp.apple-rag.com' --header 'Authorization: Bearer at_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
- ```
+ Avoid temporal words (`latest`, `new`, `2026`), product marketing names, and
+ non-English queries. The index matches technical vocabulary, not intent.
- **Codex**:
- ```toml
- [mcp_servers.apple-rag-mcp]
- url = "https://mcp.apple-rag.com"
+ ## Rules
- [mcp_servers.apple-rag-mcp.http_headers]
- Authorization = "Bearer at_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- ```
+ - Search in English even when the user writes in another language.
+ - One concept per query. Do not fan out ten broad searches.
+ - Never quote more than a short phrase; paraphrase and cite.
+ - Distinguish documentation from WWDC transcripts when both are available.
+ - Do not invent availability, deprecation dates, or parameters. If the result
+ does not contain it, say so.
+ - Do not present remembered API details as if they came from the documentation.
+ - Stay within about four tool calls per question.
- ## Quality rules
+ ## When things fail
- - Treat Apple documentation as the source of truth.
- - Keep quotes short; prefer paraphrase with URL citations.
- - If results seem incomplete, use `fetch` to get the full document before answering.
- - If no results are found, say so and suggest refining the query with more specific API or framework names.
- - Always use MCP tools before falling back to web search for Apple development questions.
+ | Situation | Response |
+ | --- | --- |
+ | No results | Say so, then retry once with a more specific API or framework name |
+ | Partial result | `fetch` the URL before answering |
+ | Rate limit | State the weekly or per-minute limit and stop; do not retry in a loop |
+ | Server error | Retry once, then report the failure instead of guessing |
+ | Tools missing | Offer the setup above; do not substitute web search silently |
+
+ ## Answer format
+
+ - Lead with the answer, then the evidence.
+ - Cite the documentation URL for every factual claim.
+ - Mention the platform and minimum version when behavior differs by OS.
+ - For WWDC claims, name the session alongside the quote.
+ - If the sources are silent or partial, say exactly what is missing.