
MCP Swift SDK!
Swift implementation of the Model Context Protocol (MCP), providing both client and server capabilities for integrating with LLM surfaces.
Overview
The Model Context Protocol allows applications to provide context for LLMs in a standardized way, separating the concerns of providing context from the actual LLM interaction. This Swift SDK implements the full MCP specification for the client, making it easy to:
- Build MCP clients that can connect to any MCP server
- Use standard transports like stdio and SSE
- Handle all MCP protocol messages and lifecycle events
Installation
-
Xcode:
File → Add Package Dependencies…
and input the package URLhttps://github.com/gsabran/mcp-swift-sdk
-
SPM-based projects: Add the dependency to your package:
dependencies: [
.package(url: "https://github.com/gsabran/mcp-swift-sdk", from: "0.2.0")
]
And then add the product that you need to all targets that use the dependency:
.product(name: "MCPServer", package: "mcp-swift-sdk"),
// and/or
.product(name: "MCPClient", package: "mcp-swift-sdk"),
Quick Start
⚠️ When using stdio servers in a MacOS app, you need to disable sandboxing. This is because the app will need to run the processes for each server.
Creating a Server
import MCPServer
let server = try await MCPServer(
info: Implementation(name: "test-server", version: "1.0.0"),
capabilities: .init(...),
transport: .stdio())
// The client's roots, if available.
let roots = await server.roots.value
// Keep the process running until the client disconnects.
try await server.waitForDisconnection()
Tool calling
The tool input schema can be generated for you (thanks swift-json-schema!)
import JSONSchemaBuilder
@Schemable
struct ToolInput {
let text: String
}
let capabilities = ServerCapabilityHandlers(tools: [
Tool(name: "repeat") { (input: ToolInput) in
[.text(.init(text: input.text))]
},
])
Creating a Client
import MCPClient
let transport = try Transport.stdioProcess(
serverInfo.executable,
args: serverInfo.args,
env: serverInfo.env)
let client = try await MCPClient(
info: .init(name: "example-client", version: "1.0.0"),
transport: transport,
capabilities: .init(
roots: .init(info: .init(listChanged: true), handler: listRoots)))
// List available resources
let resources = await client.resources.value
// Read a specific resource
let resourceContent = try await client.readResource(uri: "file:///example.txt")
Documentation
License
This project is licensed under the MIT License—see the LICENSE file for details.
相关推荐
I find academic articles and books for research and literature reviews.
Confidential guide on numerology and astrology, based of GG33 Public information
Converts Figma frames into front-end code for various mobile frameworks.
Advanced software engineer GPT that excels through nailing the basics.
Take an adjectivised noun, and create images making it progressively more adjective!
Embark on a thrilling diplomatic quest across a galaxy on the brink of war. Navigate complex politics and alien cultures to forge peace and avert catastrophe in this immersive interstellar adventure.
Descubra la colección más completa y actualizada de servidores MCP en el mercado. Este repositorio sirve como un centro centralizado, que ofrece un extenso catálogo de servidores MCP de código abierto y propietarios, completos con características, enlaces de documentación y colaboradores.
Manipulación basada en Micrypthon I2C del expansor GPIO de la serie MCP, derivada de AdaFruit_MCP230xx
La aplicación AI de escritorio todo en uno y Docker con trapo incorporado, agentes de IA, creador de agentes sin código, compatibilidad de MCP y más.
Un poderoso complemento Neovim para administrar servidores MCP (protocolo de contexto del modelo)
Servidor MCP para obtener contenido de la página web con el navegador sin cabeza de dramaturgo.
Puente entre los servidores Ollama y MCP, lo que permite a LLM locales utilizar herramientas de protocolo de contexto del modelo
🧑🚀 全世界最好的 llM 资料总结(数据处理、模型训练、模型部署、 O1 模型、 MCP 、小语言模型、视觉语言模型) | Resumen de los mejores recursos del mundo.
Plataforma de automatización de flujo de trabajo de código justo con capacidades de IA nativas. Combine el edificio visual con código personalizado, auto-anfitrión o nube, más de 400 integraciones.
Una lista curada de servidores de protocolo de contexto del modelo (MCP)
Reviews

user_ANK09wVX
As a dedicated user of the mcp application, I am thoroughly impressed with the mcp-swift-sdk by gsabran. It significantly simplifies the integration of MCP functionalities into any Swift project, making development much smoother and more efficient. The comprehensive documentation and well-structured codebase are commendable. If you're looking to enhance your Swift app with powerful MCP features, I highly recommend checking it out. This SDK has certainly exceeded my expectations!