Sosumi

ai.sosumi由 sosumi.ai 发布官方发布者v1.1.0更新于 Nov 7, 2026

Search and read Apple developer documentation, HIG, and WWDC transcripts as Markdown.

已验证Streamable HTTP可网页运行知识与记忆开发者工具

概览

AI 生成的概览

远程 MCP 服务器,让助手搜索 Apple 开发者文档,并以 Markdown 读取文档、HIG 页面、WWDC 字幕稿和 Swift-DocC 页面。

可以做什么
  • 搜索 Apple 开发者文档,返回含标题、链接、描述、面包屑和标签的结构化结果
  • 按路径获取 Apple API 参考文档与人机界面指南(HIG)页面,输出为 Markdown
  • 按路径获取 WWDC 等 Apple 开发者视频的字幕稿,输出为 Markdown
  • 按绝对 HTTPS 网址获取公开的第三方 Swift-DocC 文档站点页面,输出为 Markdown
适用场景
适合在开发 Apple 平台代码时,让助手查阅最新的 API 参考、设计指南或 WWDC 演讲内容,而不是凭记忆作答。也适合阅读第三方 Swift-DocC 文档站点。
运行要求
需要远程 MCP 端点 sosumi.ai/mcp,支持 Streamable HTTP 或 SSE;不支持这两种传输的客户端可用 npx mcp-remote 通过 stdio 代理。未声明需要账号、API 密钥或环境变量。需要能访问 sosumi.ai 的网络。
安装前请注意
服务器说明 Apple 数据中的一致性条件(conformance 条件)可能缺失或有误,重要细节应到 SDK 的 .swiftinterface 声明中核对。该项目为非官方项目,与 Apple 无隶属关系,使用者需自行遵守 Apple 的使用条款,不得用于再分发内容。传入的外部 Swift-DocC 网址会由该服务代为抓取。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Sosumi,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/ai.sosumi%2Fsosumi/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "sosumi": {
      "type": "http",
      "url": "https://sosumi.ai/mcp"
    }
  }
}

README

sosumi.ai

Making Apple docs AI-readable.

sosumi.ai provides Apple Developer documentation in an AI-readable format by converting JavaScript-rendered pages into Markdown.

Usage

HTTP API

Replace developer.apple.com with sosumi.ai in any Apple Developer documentation URL:

Original:

https://developer.apple.com/documentation/swift/array

AI-readable:

https://sosumi.ai/documentation/swift/array

This works for all API reference docs, as well as Apple's Human Interface Guidelines (HIG).

WWDC session transcripts are also supported by replacing the same host for video URLs:

Original:

https://developer.apple.com/videos/play/wwdc2021/10133/

AI-readable:

https://sosumi.ai/videos/play/wwdc2021/10133

Sosumi can also proxy public non-Apple Swift-DocC pages using:

Original:

https://swiftlang.github.io/swift-docc-plugin/documentation/swiftdoccplugin

AI-readable:

https://sosumi.ai/external/https://swiftlang.github.io/swift-docc-plugin/documentation/swiftdoccplugin

[!NOTE] Sosumi resolves the URL to the site's underlying DocC JSON endpoint and renders Markdown, preserving any base path from the original URL. External hosts can opt out via robots.txt by disallowing user-agent sosumi-ai (full UA: sosumi-ai/1.0 (+https://sosumi.ai/#bot)). See /bot for the crawler policy and contact details.

MCP Integration

Sosumi's MCP server supports Streamable HTTP and Server-Sent Events (SSE) transport. If your client supports either of these, configure it to connect directly to https://sosumi.ai/mcp.

Otherwise, you can run this command to proxy over stdio:

json
{  "mcpServers": {    "sosumi": {      "command": "npx",      "args": ["-y", "mcp-remote", "https://sosumi.ai/mcp"]    }  }}

See the website for client-specific instructions.

Plugin

The plugin folder packages the MCP server and the agent skill for Claude Code, Cursor, and Agent Plugins clients such as ChatGPT and Codex.

In Claude Code, run:

text
/plugin marketplace add NSHipster/sosumi.ai/plugin install sosumi@sosumi-ai

public/SKILL.md is the source of the skill. After you edit it, copy it into the plugin:

bash
cp public/SKILL.md plugin/skills/sosumi/SKILL.md

A test fails when the two files differ.

Available Tools
  • searchAppleDocumentation - Searches Apple Developer documentation

    • Parameters: query (string)
    • Returns structured results with titles, URLs, descriptions, breadcrumbs, and tags
  • fetchAppleDocumentation - Fetches Apple Developer documentation and Human Interface Guidelines by path

    • Parameters: path (string) - Documentation path (e.g., '/documentation/swift', '/documentation/swiftui/view', '/design/human-interface-guidelines/foundations/color')
    • Returns content as Markdown
  • fetchAppleVideoTranscript - Fetches video transcripts, including WWDC sessions

    • Parameters: path (string) - video path (e.g., /videos/play/wwdc2021/10133)
    • Returns transcript content as Markdown
  • fetchExternalDocumentation - Fetches external Swift-DocC documentation by absolute HTTPS URL

    • Parameters: url (string) - External URL (e.g., https://swiftlang.github.io/swift-docc-plugin/documentation/swiftdoccplugin)
    • Returns content as Markdown

CLI

Sosumi also provides a CLI that complements MCP:

bash
npx @nshipster/sosumi fetch https://developer.apple.com/documentation/swift/array

If you use it regularly, install once:

bash
npm i -g @nshipster/sosumi

Then use sosumi directly:

bash
sosumi fetch https://developer.apple.com/documentation/swift/array

You can fetch all content types covered by MCP tools:

bash
# Apple documentation / HIG / videossosumi fetch /documentation/swift/arraysosumi fetch /design/human-interface-guidelines/colorsosumi fetch /videos/play/wwdc2021/10133
# External Swift-DocC pagessosumi fetch https://swiftlang.github.io/swift-docc-plugin/documentation/swiftdoccplugin
# Apple documentation searchsosumi search "SwiftData"

Run a local server from the published package:

bash
sosumi servesosumi serve --port 8787

By default, output is plain text / Markdown. Use JSON output for scripts:

bash
sosumi fetch https://developer.apple.com/documentation/swift/array --jsonsosumi search "SwiftData" --json

AI Agent Skill

Want your AI coding assistant to use Sosumi consistently? Use the hosted skill file: https://sosumi.ai/SKILL.md

Spec-compliant clients can also install it with:

bash
npx skills add https://sosumi.ai

Chrome Extension

You can also use Sosumi from a community-contributed Chrome extension, which adds a "Copy sosumi Link" button to Apple Developer documentation pages. Source code is available on GitHub.

Self-Hosting

This project is designed to be easily run on your own machine or deployed to a hosting provider.

Sosumi.ai is currently hosted by Cloudflare Workers.

[!NOTE]
The application is built with Hono, making it compatible with various runtimes.

See the Hono docs for more information about deploying to different platforms.

Prerequisites

  • Node.js 20+
  • npm

Quick Start

  1. Clone the repository:

    bash
    git clone https://github.com/nshipster/sosumi.ai.gitcd sosumi.ai
  2. Install dependencies:

    bash
    npm install
  3. Start development server:

    bash
    npm run dev

Once the application is up and running, press the b to open the URL in your browser.

To configure MCP clients to use your development server, replace sosumi.ai with the local server address (http://localhost:8787 by default).

External Host Restrictions

You can restrict which external Swift-DocC hosts are reachable with two environment variables (both newline-delimited):

  • EXTERNAL_DOC_HOST_ALLOWLIST — only listed hosts are permitted
  • EXTERNAL_DOC_HOST_BLOCKLIST — listed hosts are always denied

[!IMPORTANT] Hostname-based private-network checks cannot fully prevent DNS rebinding. Set an explicit EXTERNAL_DOC_HOST_ALLOWLIST in production.

Web Bot Auth

Sosumi identifies itself when it fetches from external Swift-DocC hosts on a user's behalf using Web Bot Auth, so those hosts can cryptographically verify the traffic.

To enable signing on your own deployment, provide an Ed25519 private key (as a JSON Web Key) via the WEB_BOT_AUTH_KEY secret.

Generate a key (the JSON Web Key is the format WEB_BOT_AUTH_KEY expects), then paste the printed value when wrangler secret put prompts for it:

bash
node -e 'crypto.subtle.generateKey({name:"Ed25519"},true,["sign","verify"]).then(async k=>{const j=await crypto.subtle.exportKey("jwk",k.privateKey);console.log(JSON.stringify({kty:j.kty,crv:j.crv,x:j.x,d:j.d}))})'npx wrangler secret put WEB_BOT_AUTH_KEY

Or generate and upload in a single step, which avoids writing the key to disk or shell history:

bash
node -e 'crypto.subtle.generateKey({name:"Ed25519"},true,["sign","verify"]).then(async k=>{const j=await crypto.subtle.exportKey("jwk",k.privateKey);console.log(JSON.stringify({kty:j.kty,crv:j.crv,x:j.x,d:j.d}))})' \  | npx wrangler secret put WEB_BOT_AUTH_KEY

The matching public key and its kid (JWK thumbprint) are derived automatically, so no key material lives in the repository. Set the optional SIGNATURE_AGENT var to override the advertised origin (defaults to https://sosumi.ai). When no key is configured, requests are simply sent unsigned.

Cloudflare provides built-in verification for these signatures.

Development

Testing

This project uses vitest for unit and integration testing.

bash
npm run test          # Run testsnpm run test:ui       # Run tests with UInpm run test:run      # Run tests once

[!TIP] When running the CLI through npm scripts during local development, use -s (--silent) to suppress npm's script preamble so output pipes cleanly:

bash
npm run -s cli -- fetch https://developer.apple.com/documentation/swift/array | bat -l md

Code Quality

This project uses Biome for code formatting, linting, and import organization.

  • npm run format - Format all code files
  • npm run lint - Lint and fix code issues
  • npm run check - Format, lint, and organize imports (recommended)
  • npm run check:ci - Check code without making changes (for CI)

Editor Integration

For the best development experience, install the Biome extension for your editor:

Cloudflare Workers

Whenever you update your wrangler.toml or change your Worker bindings, be sure to re-run:

bash
npm run cf-typegen

Publishing

Publishing is handled by .github/workflows/release.yml.

  • Trigger: pushed tags matching v* or manual dispatch with tag
  • Release step: gh release create "$TAG_NAME" --generate-notes
  • Publish auth: npm trusted publishing via OIDC (id-token: write)
  • Publish command: npm publish --provenance --access public
  • MCP Registry: after npm publish, the workflow publishes server.json to the MCP Registry as ai.sosumi/sosumi.

Keep version in server.json equal to version in package.json; a test fails when they differ.

The registry step uses HTTP authentication for the sosumi.ai domain. It skips with a notice until the MCP_REGISTRY_PRIVATE_KEY secret is set. To set it up, generate an Ed25519 key pair with OpenSSL 3 (macOS's LibreSSL does not support Ed25519):

bash
openssl genpkey -algorithm Ed25519 -out key.pem# Public key: add to "vars" in wrangler.jsonc as MCP_REGISTRY_PUBLIC_KEY, then deployopenssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64# Private key (hex): save as the MCP_REGISTRY_PRIVATE_KEY repository secretopenssl pkey -in key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n'

The Worker then serves v=MCPv1; k=ed25519; p=<public key> at /.well-known/mcp-registry-auth. Without the variable, that path returns 404. Delete key.pem after you save both values.

License

This project is available under the MIT license. See the LICENSE file for more info.

Legal

This is an unofficial, independent project and is not affiliated with or endorsed by Apple Inc. "Apple", "Xcode", and related marks are trademarks of Apple Inc.

This service is an accessibility-first, on‑demand renderer. It converts a single Apple Developer page to Markdown only when requested by a user. It does not crawl, spider, or bulk download; it does not attempt to bypass authentication or security; and it implements rate limiting to avoid imposing unreasonable load.

For external Swift-DocC hosts, access can be denied by robots.txt and opt-out response directives such as X-Robots-Tag: noai.

Content is fetched transiently and may be cached briefly to improve performance. No permanent archives are maintained. All copyrights and other rights in the underlying content remain with Apple Inc. Each page links back to the original source.

Your use of this service must comply with Apple's Terms of Use and applicable law. You are solely responsible for how you access and use Apple's content through this tool. Do not use this service to circumvent technical measures or for redistribution.

Contact: [email protected]

来源:README.md,提交 80f5c0f

工具

4

searchAppleDocumentation

Search Apple Documentation

Search Apple Developer documentation (https://developer.apple.com/documentation) and return structured results

输入参数query必填

fetchAppleDocumentation

Fetch Apple Documentation

Fetch a page of Apple Developer documentation (https://developer.apple.com/documentation) or the Human Interface Guidelines (https://developer.apple.com/design/human-interface-guidelines) by path and return it as Markdown

输入参数path必填

fetchExternalDocumentation

Fetch External Documentation

Fetch a page from a public Swift-DocC documentation site (https://www.swift.org/documentation/docc/) by absolute HTTPS URL and return it as Markdown

输入参数url必填

fetchAppleVideoTranscript

Fetch Apple Video Transcript

Fetch the transcript of an Apple Developer video (https://developer.apple.com/videos) by path and return it as Markdown

输入参数path必填

版本历史

1
  1. v1.1.0最新Nov 7, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分