GS

gavinaboulhosn/swiftmcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

11 stars 5 forks Качество 44 Тренд 8MIT

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:

  1. File > Add Package Dependencies
  2. 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 */
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →