
gavinaboulhosn/swiftmcp
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Swift Implementation of the Model Context Protocol (MCP)
Обзор
SwiftMCP - это работающая реализация протокола Model Context Protocol (MCP), направленная на обеспечение надежного и безопасного способа интеграции возможностей языковой модели в приложения Swift. Примечание: SDK находится в стадии активной разработки. API могут меняться по мере того, как мы работаем над паритетом функций с реализацией TypeScript. - s - Построено с использованием актерской модели Swift и async/await - s - Полная безопасность типа для всех сообщений и операций MCP - s - Поддержка стрио и серверных сообщений (SSE) - s️ - Эффективная обработка сообщений с поддержкой тайм-аута и повторного использования - s - Поддержка ресурсов, подсказок, инструментов и многое другое - s - Легкая интеграция через менеджер пакетов Swift Или добавьте его в свой проект Xcode: 1. File > Add Package Dependencies 2. Enter: https://github.com/gavinaboulhosn/SwiftMCP.
Обзор (машинный перевод)
SwiftMCP - это работающая реализация протокола Model Context Protocol (MCP), направленная на обеспечение надежного и безопасного способа интеграции возможностей языковой модели в приложения Swift.
Примечание: этот SDK находится в активной разработке. API могут меняться по мере того, как мы работаем над паритетом функций с реализацией TypeScript.
Особенности
s * * Современная Свифт-конкурентность * * - Построена с актерской моделью Свифта и асинком / ожиданием peType-Safe - Полная безопасность типа для всех сообщений и операций MCP Множественные транспортные средства - поддержка стипендий и серверных сообщений (SSE) Performance - Эффективная обработка сообщений с поддержкой тайм-аута и повторного использования ** Богатые возможности** - Поддержка ресурсов, подсказок, инструментов и многого другого
- **SwiftPM Удобная интеграция через Swift Package Manager
##Установка
Добавьте SwiftMCP в пакет Swift:
Добавьте его в свой проект Xcode:
1.Файл > Добавить зависимые пакеты
2. Введите: https://github.com/gavinaboulhosn/SwiftMCP.git
Базовое использование
###Создание клиента
###Хостинг Хосты используются для управления клиентскими соединениями и предоставляют API более высокого уровня для обработки запросов и уведомлений:
Базовая настройка
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
README
Показан фрагмент оригинального README. Открыть оригинал.
SwiftMCP
SwiftMCP is a work-in-progress Swift implementation of the Model Context Protocol (MCP), aiming to provide a robust and type-safe way to integrate Language Model capabilities into Swift applications.
⚠️ Note: This SDK is under active development. APIs may change as we work towards feature parity with the TypeScript implementation.
Features
- 🏃 Modern Swift Concurrency - Built with Swift’s actor model and async/await
- 🔒 Type-Safe - Full type safety for all MCP messages and operations
- 🔌 Multiple Transports - Support for stdio and Server-Sent Events (SSE)
- ⚡️ Performance - Efficient message handling with timeout and retry support
- 🛠 Rich Capabilities - Support for resources, prompts, tools, and more
- 📦 SwiftPM Ready - Easy integration through Swift Package Manager
Installation
Add SwiftMCP to your Swift package:
dependencies: [
.package(url: "https://github.com/gavinaboulhosn/SwiftMCP.git", branch: "main")
]
Or add it to your Xcode project:
- File > Add Package Dependencies
- Enter:
https://github.com/gavinaboulhosn/SwiftMCP.git
Basic Usage
Creating a Client
import SwiftMCP
// Initialize client
let client = MCPClient(
clientInfo: .init(name: "MyApp", version: "1.0.0"),
capabilities: .init(
roots: .init(listChanged: true) // Enable roots with change notifications
)
)
// Connect using stdio transport
let transport = StdioTransport(
options: .init(
command: "npx",
arguments: ["-y", "@modelcontextprotocol/server-memory"]
)
)
// Start the client
try await client.start(transport)
// Make requests
let resources = try await client.listResources()
print("Found \(resources.resources.count) resources")
// Listen for notifications
for await notification in await client.notifications {
switch notification {
case let resourceUpdate as ResourceUpdatedNotification:
print("Resource updated: \(resourceUpdate.params?.uri ?? "")")
default:
break
}
}
Hosts
Hosts are used to manage client connections and provide a higher-level API for handling requests and notifications:
Basic Setup
To get started, you need to create an MCPHost instance and connect to a server using a transport layer:
import SwiftMCP
// Basic host - assumes app name and version via Bundle properties
let host = MCPHost()
// or more advanced configuration
let host = MCPHost(config:
.init(
roots: .list([Root(uri: "file:///some/root")]),
sampling: .init(
handler: { request in
/** Use your llm to fulfill the server's sampling request */
Установка
This server does not publish a one-line install command.
Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →