# SwiftMCP

> Model Context Protocol Server for Swift

- **URL**: https://www.freshcrate.ai/projects/SwiftMCP
- **Author**: Cocoanetics
- **Category**: Infrastructure
- **Latest version**: `v1.4.7` (2026-06-02)
- **License**: BSD-2-Clause
- **Source**: https://github.com/Cocoanetics/SwiftMCP
- **Language**: Swift
- **GitHub**: 146 stars, 15 forks
- **Registry**: github
- **Tags**: `swift`

## Description

Model Context Protocol Server for Swift

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `v1.4.7` | 2026-06-02 | High | This release brings SwiftMCP to Windows and Android, extracts a standalone `JSONValue` product, lets `@MCPExtension` attach to actor hosts, and hardens the streamable-HTTP client against session loss.  ## Highlights  **`@MCPExtension` on actor hosts (#124)** `@MCPExtension` now works when the host type is an `actor`, not just a class. Actor hosts get actor-isolated storage and metadata accessors (the executor serializes register / register-while-dispatch); class hosts keep their original non-iso |
| `v1.4.6` | 2026-05-19 | High | Widen the swift-syntax dependency range from `from: "602.0.0-latest"` (capped at `<603.0.0`) to `"602.0.0-latest"..<"604.0.0"` so SwiftMCP coexists with consumers on either major — notably SwiftScript, which requires swift-syntax 603.x.  ## Full Changelog  https://github.com/Cocoanetics/SwiftMCP/compare/v1.4.5...v1.4.6 |
| `v1.4.5` | 2026-05-16 | High | ## SwiftMCP 1.4.5  SwiftMCP 1.4.5 ships the `@MCPExtension` macro for splitting tools, resources, and prompts across files and targets, fixes a `@MCPServer` macro-expansion regression that broke any tool whose doc comments contained `*/` (re-tag of v1.4.5 — see below), and broadens platform reach.  ### Highlights  - **`@MCPExtension` — split a server across files and modules**   - Annotate an `extension <YourServer>` in any module with `@MCPExtension` to contribute tools, resources, and prompts |
| `v1.4.4` | 2026-04-30 | High | ## SwiftMCP 1.4.4  SwiftMCP 1.4.4 is a transport and protocol correctness release, with one deliberate cleanup: the experimental binary upload path has been removed now that custom HTTP routes cover that use case more cleanly.  ### Highlights - **Removed the experimental binary upload feature**   - removed `MCPFileUploadHandling`   - removed the built-in `/mcp/uploads/:cid` route and `cid:` placeholder flow   - removed `experimental.uploads`, proxy upload helpers, and related client-side argumen |
| `v1.4.3` | 2026-04-02 | High | ## SwiftMCP 1.4.3  SwiftMCP 1.4.3 is a focused follow-up release centered on HTTP transport internals and session metadata.  ### Highlights - **Refactored HTTP transport into routable units**   - split the previous monolithic HTTP handler into logical route-focused components   - introduced typed route request/response primitives   - clarified separation between MCP routes, legacy SSE, uploads, OpenAPI, and OAuth handling  - **Improved HTTP-layer testability**   - route behavior is easier to val |
| `v1.4.2` | 2026-03-24 | Medium | ## SwiftMCP 1.4.2  ### 🔄 Early-Arrival Upload Support (#103) - **Race-safe uploads**: binary `POST /mcp/uploads/{cid}` can now arrive *before* the tool call registers the CID expectation — the file is buffered and delivered when the tool call catches up - **`FulfillResult` enum**: `fulfill()` now returns `.fulfilled`, `.earlyArrival`, or `.missed` — callers only delete temp files on `.missed`, preserving early arrivals - **Expiry cleanup**: early arrivals older than 60 seconds are automatically |
| `v1.4.1` | 2026-03-22 | Low | ## SwiftMCP 1.4.1  Binary upload enhancements — zero-copy data delivery, streaming HTTP uploads, and a new file-based transport for local connections.  ### 🚀 Zero-Copy Binary Side Channel - **`ResolvedUploads` task-local**: uploaded `Data` is now delivered directly to tool functions via a side channel, **bypassing the base64 encode → JSON → decode round-trip entirely** - `extractData(named:)` checks the side channel first, falls back to base64 only for legacy paths - Applies to both local file |
| `v1.4.0` | 2026-03-17 | Low | ## SwiftMCP 1.4.0  A major feature release adding binary file upload, client notifications & subscriptions, Xcode MCP compatibility, a naming system, and proxy generator improvements.  ### 🆕 Binary File Upload (#73, #87) - **CID-based upload architecture**: clients send `cid:` placeholders in tool call arguments, upload files to `POST /mcp/uploads/{cid}` concurrently, and the server delivers data to the tool function transparently - **MCP progress notifications** during upload — uses the tool c |
| `v1.2.1` | 2026-03-15 | Low | ## Bug Fixes - #77: Fixed Bonjour listener retry with generation-based lifecycle to prevent mDNSResponder crashes - Restored bound port update on listener ready  ## Improvements - More resilient Bonjour discovery under network changes |
| `1.2.0` | 2026-03-11 | Low | ## SwiftMCP 1.2.0  This release expands the SwiftMCP client surface and tightens the core JSON/sendability model.  ### Highlights - **Client proxy improvements**   - Added proxy support for MCP **resources** and **prompts**   - Utility-generated proxies now emit the standard MCP resource/prompt APIs when supported - **Typed client notification pipeline**   - Added typed notification handling in `MCPServerProxy`   - Added first-class **progress notification** support   - Unified log handling with |

## Dependency audit

- **Score**: 100/100
- **Total deps**: 0
- **Resolved**: 0
- **Unresolved**: 0
- **License conflicts**: 0
- **Warnings**: 0
- **Scanned**: 2026-05-11

## Citation

- HTML: https://www.freshcrate.ai/projects/SwiftMCP
- Markdown: https://www.freshcrate.ai/projects/SwiftMCP.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/SwiftMCP/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
