Apple developer intelligence for agents: WWDC26, docs, HIG, Swift, App Review, and app audits.
Ground Codex, Claude, Cursor, VS Code, Windsurf, Zed, and other MCP clients in Apple source material before they change your Swift code.
WWDC MCP indexes WWDC20–WWDC26 sessions, Apple Developer Documentation, tutorials, Human Interface Guidelines, Swift Evolution, The Swift Programming Language, and App Store Review Guidelines into a local SQLite search layer. It exposes 45 read-only MCP tools for search, API history, deprecations, transcripts, source-grounded app audits, and trust metadata.
Unofficial community project. Not affiliated with or endorsed by Apple. Apple content remains subject to Apple's terms and source-site availability.
I just want my coding agent to use Apple knowledge
swift_app_audit; you do not need to learn all 45 tools.I am a power user
Use the focused tools directly for transcripts, API history, HIG, Swift Evolution, App Review, source freshness, and trust metadata. See Agent Guide for recommended tool chains and prompt recipes.
I am an agent working in this repository
Read AGENTS.md first. Client-specific repository instructions are also provided for Cursor and GitHub Copilot.
Coding agents are excellent at writing Swift, but Apple APIs, platform guidance, App Review rules, and WWDC recommendations change quickly. WWDC MCP gives an agent a source-grounded way to answer questions like:
The promoted entry point for repo-level Apple work is swift_app_audit. The promoted trust entry point is wwdc_security_manifest.
You do not need to learn 45 tool names first. Start with the job you are trying to finish:
swift_app_audit with the repo's actual feature/API/problem, then follow its evidence into the focused WWDC, HIG, documentation, and API tools.wwdc_what_changed or wwdc_search with a framework/API and a year range, then open the strongest session/transcript evidence.appstore_guidelines_search, API availability/deprecation tools, and wwdc_ingest_status before treating a recommendation as current.The server instructions teach connected agents this routing automatically; the catalog remains available when you need a narrower source.
--year.swift_app_audit combines WWDC, HIG, tutorials, Swift Evolution, pathways, Apple doc hints, caveats, and validation steps.WWDC_MCP_PUBLIC_READ_ONLY=1 to allow anonymous access to the same read-only tool surface; without that flag or bearer auth, HTTP fails closed.Choose the path that matches what you value. Do not confuse “local-first” with “everyone must self-host.”
| Path | User work | Best for | Status |
|---|---|---|---|
| Hosted remote MCP | paste/connect one HTTPS MCP URL | ChatGPT, cloud/remote agents, fastest evaluation | endpoint prepared; not advertised live until verification passes |
| MCPB / MCP Registry | install published bundle | clients with bundle/Registry support | v0.2.1 active |
| Local stdio | clone/package + ingest + local client config | privacy, offline-ish retrieval, full local control | supported and tested |
| Self-hosted HTTP | deploy + choose auth + TLS/edge | teams controlling their own infrastructure | supported and tested |
When the hosted endpoint is live, the intended public URL is:
https://wwdc-mcp.smatdesigns.com/mcp
For ChatGPT/custom remote MCP clients, that removes the local Node/index/config-path requirement. For Cursor, the same remote URL can be placed in mcp.json and can later back a one-click install/deeplink. Local stdio remains a first-class option rather than a fallback.
A newcomer should be able to reach the first source-grounded answer with as few decisions as possible:
If a new distribution method adds steps before the first useful answer, treat that as an adoption regression unless it buys a clear privacy/security capability.
Use this path when you want the corpus and server on your own machine. For hosted/Registry paths, use the scorecard above.
Distribution status (October 7, 2026): the official MCP Registry namespace is
io.github.jabbertones-cloud/wwdc, distributed through a GitHub-hosted MCPB release asset. v0.2.1 is the current patch line. npm publication is optional secondary distribution and is not required for Registry or Cursor installs.
git clone https://github.com/jabbertones-cloud/wwdc-mcp-server.git
cd wwdc-mcp-server
npm ci
npm run build
The release package exposes two executables:
wwdc-mcp-server # stdio MCP server
wwdc-mcp-ingest # build/update the local Apple knowledge index
Run the immutable GitHub release package directly:
PKG="https://github.com/jabbertones-cloud/wwdc-mcp-server/releases/download/v0.2.1/wwdc-mcp-server-0.2.1.tgz"
npm exec --yes --allow-remote=all --package="$PKG" -- wwdc-mcp-ingest --source wwdc --year 2026
npm exec --yes --allow-remote=all --package="$PKG" -- wwdc-mcp-server
Clients that support MCP Bundles can use the WWDC-MCP-v0.2.1.mcpb asset from the GitHub v0.2.1 release / official MCP Registry.
For the full core corpus:
npm run ingest:all
For a faster WWDC26-first setup:
npm run ingest:wwdc -- --year 2026
npm run ingest:docs
npm run ingest:hig
npm run ingest:evolution
npm run ingest:appstore
ingest:all covers the core sources: WWDC, tutorials, pathways, HIG, Swift Evolution, Apple docs, Swift Book, and App Store Review Guidelines. Additional optional enrichment sources are documented below.
npm test
That exercises parser/security checks, all 45 tools over stdio, search regressions, package metadata, and authenticated Streamable HTTP.
Generic stdio configuration:
{
"mcpServers": {
"wwdc": {
"command": "node",
"args": ["/absolute/path/to/wwdc-mcp-server/dist/index.js"]
}
}
}
Then ask your agent:
Use WWDC MCP to audit this app against current Apple guidance before changing code.
The highest-leverage setup is a short repository instruction so the agent reaches for WWDC MCP without being reminded every prompt:
For Apple-platform work, use WWDC MCP before material code changes.
Start with swift_app_audit for repo-level work, verify API availability/deprecation,
cite the strongest Apple/Swift source evidence, and separate evidence from inference.
Ready-made versions are included in AGENTS.md, Cursor rules, and GitHub Copilot instructions.
After connecting the server, ask your client to:
Use WWDC MCP. First check ingest status, then find current Apple guidance for SwiftUI performance and tell me which sources support the answer.
A healthy setup should be able to see the wwdc server, call its tools, and return source-grounded results. For repository-level work, follow with:
Audit this repository with swift_app_audit before proposing Apple-platform changes.
The HTTP transport is deliberately fail-closed by default.
Private/self-hosted bearer mode:
WWDC_MCP_HTTP_HOST=0.0.0.0 \
WWDC_MCP_BEARER_TOKEN='<secret>' \
npm run start:http
Explicit anonymous read-only mode for a public MCP directory/connector:
WWDC_MCP_HTTP_HOST=0.0.0.0 \
WWDC_MCP_PUBLIC_READ_ONLY=1 \
npm run start:http
In public mode, the MCP endpoint exposes the existing 45 read-only tools without requiring a shared bearer token. This mode is opt-in. If neither bearer authentication nor WWDC_MCP_PUBLIC_READ_ONLY=1 is configured, /mcp returns 503 auth_not_configured.
For an internet-facing deployment, put the server behind TLS/reverse-proxy controls, keep the corpus/source policy unchanged, and monitor/rate-limit at the edge. The repo does not claim a hosted public endpoint until one is independently deployed and verified.
Codex CLI and the Codex IDE extension share MCP configuration. Add this to ~/.codex/config.toml:
[mcp_servers.wwdc]
command = "node"
args = ["/absolute/path/to/wwdc-mcp-server/dist/index.js"]
Verify the server appears with:
codex mcp list
For reliable tool selection, add a project rule such as this to AGENTS.md:
Use WWDC MCP before Apple-platform code changes. Start with swift_app_audit for repo-level work, use Apple/WWDC source tools for evidence, and distinguish retrieved source text from inference.
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"wwdc": {
"command": "node",
"args": ["/absolute/path/to/wwdc-mcp-server/dist/index.js"]
}
}
}
Use your normal MCP configuration flow and point the server command at:
node /absolute/path/to/wwdc-mcp-server/dist/index.js
.vscode/mcp.json:
{
"servers": {
"wwdc": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/wwdc-mcp-server/dist/index.js"]
}
}
}
~/.cursor/mcp.json:
{
"mcpServers": {
"wwdc": {
"command": "node",
"args": ["/absolute/path/to/wwdc-mcp-server/dist/index.js"]
}
}
}
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"wwdc": {
"command": "node",
"args": ["/absolute/path/to/wwdc-mcp-server/dist/index.js"]
}
}
}
.zed/settings.json:
{
"context_servers": {
"wwdc": {
"command": {
"path": "node",
"args": ["/absolute/path/to/wwdc-mcp-server/dist/index.js"]
}
}
}
}
| If you are… | Read |
|---|---|
| Installing for the first time | this README → Quick start → Client setup |
| Driving a coding agent | Agent Guide |
| Understanding design/trust boundaries | Architecture |
| Diagnosing a failure | Troubleshooting |
| Checking clients/runtimes/transports | Compatibility |
| An agent modifying this repo | AGENTS.md |
| Self-hosting / deploying HTTP | Deployment guide |
| Contributing code or sources | CONTRIBUTING.md |
| Contributing with an AI coding agent | AI-assisted contributions |
| Reviewing trust/security | SECURITY.md |
| Publishing a release | Release guide |
The core index can include:
| Source | What you get |
|---|---|
| WWDC 2020–2026 | Sessions, descriptions, topics, platforms, speakers, transcripts, chapters, sample-code links, related docs |
| Apple Developer Documentation | Framework and symbol documentation from public DocC data |
| Apple tutorials | Public DocC tutorial content |
| Human Interface Guidelines | Platform design guidance |
| Swift Evolution | Proposal status, authors, versions, implementation links, and full proposal text |
| The Swift Programming Language | Swift language reference chapters |
| App Store Review Guidelines | Searchable guideline sections |
| Optional enrichment | Apple release notes, Swift Forums, Apple Developer Forums, generated summaries, cross-reference graph |
Most query tools read from the local SQLite index. apple_doc_lookup is intentionally a live Apple Developer Documentation lookup and therefore uses the network.
wwdc_search, apple_search_allwwdc_list_years, wwdc_list_topics, wwdc_list_sessionswwdc_topics_by_year, wwdc_speaker_search, wwdc_what_changedwwdc_list_pathways, wwdc_get_pathwaywwdc_get_session, wwdc_session_summary, wwdc_related_sessionswwdc_transcript_search, wwdc_session_transcript_fullwwdc_session_deep_linkwwdc_list_session_code, wwdc_sample_code_list, wwdc_sample_code_grepapple_doc_lookup, apple_doc_get, apple_doc_list_frameworkapple_tutorial_getapple_hig_search, apple_hig_listapple_swift_book_getapple_swift_evolution_get, apple_swift_evolution_list, apple_swift_evolution_filterswift_forum_search, apple_forum_searchwwdc_find_api_introduction, wwdc_sessions_for_apiapple_api_availability, apple_api_deprecation, apple_what_replacedapple_release_notes_searchappstore_guidelines_search, appstore_guideline_getswift_app_auditapple_swift_pattern_find, apple_cross_referenceswwdc_ingest_status, wwdc_export_statuswwdc_security_manifestThe test suite asserts that both stdio and Streamable HTTP expose exactly 45 tools.
wwdc_search supports year ranges, topics, platforms, transcript requirements, output detail, and conservative judgment metadata.
{
"query": "SwiftUI performance",
"kinds": ["session"],
"year_min": 2025,
"year_max": 2026,
"topics": ["SwiftUI"],
"require_transcript": true,
"judgment": true,
"detail": "detailed"
}
Platform-only queries such as “macOS” intentionally receive conservative judgment. Better audit queries name a framework, API, feature, symptom, or goal.
npm run ingest:wwdc
npm run ingest:tutorials
npm run ingest:hig
npm run ingest:evolution
npm run ingest:docs
npm run ingest:swiftbook
npm run ingest:appstore
npm run ingest:all
Restrict WWDC years by repeating --year:
npm run ingest:wwdc -- --year 2025 --year 2026
npm run ingest -- --source release-notes
npm run ingest -- --source swift-forums
npm run ingest -- --source apple-dev-forums
npm run ingest -- --source session-summaries --limit 50
npm run ingest -- --source cross-reference
npm run ingest -- --source deprecation-backfill
npm run ingest -- --source export-deprecation-qa
session-summaries is the one optional enrichment lane that uses an external model API. It runs only when ANTHROPIC_API_KEY is set, sends bounded WWDC session metadata/transcript excerpts to Anthropic, and may incur API cost. Core ingest, search, audits, and local semantic reranking do not require that key.
During WWDC week, re-run the WWDC ingest periodically to pick up newly published sessions.
FTS5 keyword search works immediately. When semantic reranking is enabled, WWDC MCP lazily loads nomic-ai/nomic-embed-text-v1.5 through @huggingface/transformers and runs the ONNX model locally. The model is cached under ~/.cache/huggingface/hub; the first semantic use may need network access to download model files.
If the model cannot initialize, search falls back to FTS5 for that process. To force keyword-only behavior:
export WWDC_SKIP_EMBEDDINGS=1
| Variable | Default | Purpose |
|---|---|---|
WWDC_MCP_DATA_DIR | OS app-data directory | Database/cache directory |
WWDC_MCP_DB | <data-dir>/wwdc.db | SQLite database path |
WWDC_SKIP_EMBEDDINGS | unset | Set to 1 to disable local model loading and semantic reranking |
WWDC_DOCS_MAX_PAGES | 2500 | Bound Apple Developer Documentation crawl size |
WWDC_TUTORIAL_MAX_PAGES | 250 | Bound Apple tutorial crawl size |
Stdio remains the default and simplest local transport. The same 45-tool server can also run as a stateless Streamable HTTP MCP in either private bearer-authenticated mode or an explicitly enabled public read-only mode.
export WWDC_MCP_BEARER_TOKEN="$(openssl rand -hex 32)"
export WWDC_MCP_HTTP_HOST=127.0.0.1
export WWDC_MCP_HTTP_PORT=8789
npm run start:http
Routes:
GET /healthzPOST /mcpFor a deliberately public, read-only connector endpoint:
export WWDC_MCP_PUBLIC_READ_ONLY=1
export WWDC_MCP_HTTP_HOST=0.0.0.0
export WWDC_MCP_HTTP_PORT=8789
npm run start:http
The MCP route fails closed with 503 auth_not_configured unless either bearer authentication is configured or WWDC_MCP_PUBLIC_READ_ONLY=1 is explicitly enabled. Public mode does not add write capabilities: it exposes the same 45 read-only tools.
To mount the service behind a shared reverse proxy without path rewriting:
export WWDC_MCP_PATH_PREFIX=/wwdc
Routes become /wwdc/healthz and /wwdc/mcp.
The built-in HTTP server does not terminate TLS. If you expose it outside localhost, put it behind a TLS edge/reverse proxy, rate-limit and monitor it, and treat bearer tokens as secrets.
A Cloudflare-backed public endpoint is being prepared at:
https://wwdc-mcp.smatdesigns.com/mcp
It will be marked live here only after the deployed endpoint passes health, MCP initialize, tool-catalog, and source-grounding verification. Until then, use the GitHub release/MCP Registry or self-hosted modes above.
See docs/DEPLOY.md for the full runbook.
content_safety metadata.wwdc_security_manifest reports the canonical tool surface, manifest hash, read-only posture, and prompt-injection handling.WWDC_MCP_PUBLIC_READ_ONLY=1.apple_doc_lookup performs live public Apple documentation requests.session-summaries sends bounded session metadata/transcript excerpts to Anthropic only when ANTHROPIC_API_KEY is explicitly configured.For vulnerability reporting and deployment cautions, see SECURITY.md.
npm run build
npm test
npm audit --audit-level=high
npm test covers smoke tests, ingest parsing, security evaluation, stdio MCP E2E, search regression, package smoke, and Streamable HTTP MCP E2E.
The protocol tests verify the 45-tool catalog and exercise the trust manifest over both supported transports.
nomic-ai/nomic-embed-text-v1.5 via Hugging Face Transformers/ONNXWWDC MCP is intentionally read-only: it helps your agent understand current Apple APIs, design guidance, platform changes, and App Review requirements without holding App Store Connect credentials.
When the research is done and you need to execute the release workflow, AiSCent is the companion product: App Store Connect automation for release operations such as localization, screenshots, metadata, TestFlight readiness, and submission workflows.
A useful agent workflow:
WWDC MCP = know what Apple expects. AiSCent = help get the release through App Store Connect.
Issues and PRs are welcome. If you change the MCP tool surface, ingest behavior, transport behavior, or public claims, update the matching tests and docs in the same change.
See CONTRIBUTING.md.
MIT
This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.
https://github.com/jabbertones-cloud/wwdc-mcp-server/releases/download/v0.2.1/WWDC-MCP-v0.2.1.mcpbotherWWDC MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.