Discover Awesome MCP Servers

Extend your agent with 15,905 capabilities via MCP servers.

All15,905
MCP Agent Platform

MCP Agent Platform

複数のエージェントが連携する人間とコンピュータのインタラクションシステムで、統合された画像認識、音声認識、音声合成機能を通じて自然なインタラクションを実現します。

DatahubMCP

DatahubMCP

Enables Claude to query MySQL databases and access Google Workspace (Sheets, Forms, Drive) for education program management, with built-in templates for data analysis and report generation.

AI Pull Request Generator

AI Pull Request Generator

An AI-powered FastMCP server tool that automates the process of planning tasks, generating code, and creating GitHub pull requests.

TheHive MCP Server

TheHive MCP Server

TheHive MCP Server

MCP2Brave

MCP2Brave

Brave API を使用してウェブ検索機能を提供する、MCP プロトコルに基づいたサーバー。

Laravel Forge MCP Server

Laravel Forge MCP Server

A minimalist MCP server that integrates with Laravel Forge, allowing users to manage their Laravel Forge servers, sites, and deployments through AI assistants like Claude Desktop, Windsurf, or Cursor.

facebook-mcp-server

facebook-mcp-server

facebook-mcp-server

Remote MCP Server with Bearer Auth

Remote MCP Server with Bearer Auth

A Cloudflare Workers-based MCP server implementation that supports OAuth/bearer token authentication, enabling secure remote interaction with Model Context Protocol tools.

WhatsApp MCP Server

WhatsApp MCP Server

A WhatsApp MCP (Message Control Protocol) Server implementation

Google Calendar MCP Server

Google Calendar MCP Server

モデルコンテキストプロトコル (MCP) サーバー (Google Calendar API と統合)

AI Agent with MCP

AI Agent with MCP

Okay, here's a basic outline and code snippets to help you create your first MCP (Model Context Protocol) server in a Playground environment. This will be a simplified example to get you started. Keep in mind that a full MCP implementation can be quite complex depending on the features you want to support. **Conceptual Overview** The Model Context Protocol (MCP) is a protocol that allows a client (e.g., a code editor, IDE, or other tool) to interact with a language server or other process that provides information about a code model. It's similar in spirit to the Language Server Protocol (LSP), but often focuses on more general model information rather than just language-specific features. **Simplified Example Structure** For this Playground example, we'll create a very basic server that responds to a single request: 1. **Client Request:** The client sends a request to the server asking for information about a specific "model element" (e.g., a variable, function, class). We'll represent this with a simple string identifier. 2. **Server Processing:** The server receives the request, looks up information about the model element (in our case, from a hardcoded dictionary), and sends a response back to the client. 3. **Client Response:** The client receives the response and displays the information. **Playground Code (Swift)** ```swift import Foundation // 1. Define the data structures struct MCPRequest: Codable { let elementId: String } struct MCPResponse: Codable { let elementId: String let description: String } // 2. Simulated Model Data (Replace with your actual model) let modelData: [String: String] = [ "myVariable": "This is a variable that stores an integer.", "myFunction": "This is a function that calculates the square of a number.", "MyClass": "This is a class that represents a user.", "anotherVariable": "This is another variable used for counting." ] // 3. Server Logic (Simplified) func handleRequest(requestData: Data) -> Data? { do { let decoder = JSONDecoder() let request = try decoder.decode(MCPRequest.self, from: requestData) guard let description = modelData[request.elementId] else { print("Element not found: \(request.elementId)") return nil // Or return an error response } let response = MCPResponse(elementId: request.elementId, description: description) let encoder = JSONEncoder() return try encoder.encode(response) } catch { print("Error decoding/encoding: \(error)") return nil // Or return an error response } } // 4. Simulate Client-Server Communication (in the same Playground) // Simulate a client request let clientRequest = MCPRequest(elementId: "myFunction") do { let encoder = JSONEncoder() let requestData = try encoder.encode(clientRequest) // Simulate sending the request to the server (in reality, this would be over a network connection) if let responseData = handleRequest(requestData: requestData) { let decoder = JSONDecoder() let response = try decoder.decode(MCPResponse.self, from: responseData) print("Received response for element: \(response.elementId)") print("Description: \(response.description)") } else { print("No response received or error occurred.") } } catch { print("Error creating request: \(error)") } // Example of a request for a non-existent element let clientRequest2 = MCPRequest(elementId: "nonExistentElement") do { let encoder = JSONEncoder() let requestData = try encoder.encode(clientRequest2) // Simulate sending the request to the server (in reality, this would be over a network connection) if let responseData = handleRequest(requestData: requestData) { let decoder = JSONDecoder() let response = try decoder.decode(MCPResponse.self, from: responseData) print("Received response for element: \(response.elementId)") print("Description: \(response.description)") } else { print("No response received or error occurred for non-existent element.") } } catch { print("Error creating request: \(error)") } ``` **Explanation:** 1. **Data Structures:** `MCPRequest` and `MCPResponse` define the structure of the messages exchanged between the client and server. They use `Codable` to make it easy to serialize and deserialize them to/from JSON. 2. **Model Data:** `modelData` is a dictionary that simulates your code model. In a real application, this would be replaced with a more sophisticated representation of your code. 3. **`handleRequest` Function:** This function is the core of the server. It receives the request data, decodes it, looks up the information in `modelData`, creates a response, encodes it, and returns the response data. Error handling is included. 4. **Client Simulation:** The code simulates a client sending a request to the server and receiving the response. In a real application, this would involve network communication (e.g., using sockets or a framework like `NIO`). **How to Run:** 1. Open Xcode. 2. Create a new Playground (File -> New -> Playground). 3. Copy and paste the code into the Playground. 4. Run the Playground (Shift + Command + Enter). **Important Considerations and Next Steps:** * **Network Communication:** This example uses in-memory communication. To create a real server, you'll need to use sockets or another networking mechanism to allow clients to connect to the server. Consider using SwiftNIO for asynchronous network handling. * **Error Handling:** The error handling in this example is basic. You should implement more robust error handling, including sending error responses to the client. * **Model Representation:** The `modelData` dictionary is a very simple representation of a code model. In a real application, you'll need a more sophisticated data structure to represent the code, including information about types, scopes, relationships between elements, etc. Consider using a graph database or a custom data structure. * **Request Types:** This example only handles one type of request. You'll need to define different request types for different operations (e.g., getting the type of a variable, finding all references to a function, etc.). * **Asynchronous Operations:** Many operations in a language server can be time-consuming (e.g., parsing code, performing static analysis). You should use asynchronous operations to avoid blocking the server's main thread. * **Concurrency:** If you want to handle multiple client requests concurrently, you'll need to use concurrency mechanisms (e.g., threads, dispatch queues, actors). * **JSON RPC:** MCP often uses JSON RPC as the underlying communication protocol. Consider using a library that provides JSON RPC support. * **Real-World MCP Implementations:** Look at existing MCP implementations (if any are publicly available) for inspiration. The Language Server Protocol (LSP) is a good starting point, as MCP is often inspired by it. **Example using SwiftNIO (Illustrative - Requires Setup)** This is a very basic example to show how you *might* use SwiftNIO. You'll need to add SwiftNIO as a dependency to your project (using Swift Package Manager). This code *won't* run directly in a Playground without extra setup. ```swift // **This is illustrative and requires SwiftNIO setup** import NIO import NIOFoundationCompat // ... (MCPRequest, MCPResponse, modelData, handleRequest from above) class MCPHandler: ChannelInboundHandler { typealias InboundIn = ByteBuffer typealias OutboundOut = ByteBuffer func channelRead(context: ChannelHandlerContext, data: NIOAny) { var buffer = self.unwrapInboundIn(data) let requestData = Data(buffer: buffer) if let responseData = handleRequest(requestData: requestData) { var responseBuffer = context.channel.allocator.buffer(capacity: responseData.count) responseBuffer.writeBytes(responseData) context.writeAndFlush(self.wrapOutboundOut(responseBuffer), promise: nil) } else { // Handle error (e.g., send an error response) print("Error handling request") } } func channelReadComplete(context: ChannelHandlerContext) { context.flush() } func errorCaught(context: ChannelHandlerContext, error: Error) { print("error: ", error) context.close(promise: nil) } } let group = MultiThreadedEventLoopGroup(numberOfThreads: 1) // Or more threads let bootstrap = ServerBootstrap(group: group) // Specify backlog and enable SO_REUSEADDR for the server itself .serverChannelOption(ChannelOptions.backlog, value: 256) .serverChannelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1) // Set the handlers that are applied to the accepted Channels .childChannelInitializer { channel in channel.pipeline.addHandler(MCPHandler()) } // Enable SO_REUSEADDR for the accepted Channels .childChannelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1) .childChannelOption(ChannelOptions.maxMessagesPerRead, value: 16) .childChannelOption(ChannelOptions.recvAllocator, value: AdaptiveRecvByteBufferAllocator()) defer { try! group.syncShutdownGracefully() } do { let channel = try bootstrap.bind(host: "localhost", port: 8888).wait() print("Server started and listening on \(channel.localAddress!)") // This will block. try channel.closeFuture.wait() } catch { fatalError("Failed to start server: \(error)") } ``` **Explanation of SwiftNIO Example:** 1. **`MCPHandler`:** This is a `ChannelInboundHandler` that receives data from the client, processes it using the `handleRequest` function, and sends the response back to the client. 2. **`ServerBootstrap`:** This sets up the server to listen for incoming connections. 3. **Event Loop Group:** SwiftNIO uses an event loop group to handle asynchronous operations. 4. **Binding:** The `bind` function starts the server listening on a specific host and port. **To use the SwiftNIO example:** 1. Create a new Xcode project (not a Playground). 2. Add SwiftNIO as a dependency using Swift Package Manager (File -> Add Packages...). 3. Copy and paste the code into your project. 4. Run the project. You would then need to write a client application (also using SwiftNIO or another networking library) to connect to the server and send requests. This is a complex topic, and this is just a starting point. Good luck! Remember to break down the problem into smaller, manageable steps.

focus_mcp_data

focus_mcp_data

DataFocusのインテリジェントデータクエリプラグインは、複数ラウンドの会話をサポートし、プラグアンドプレイのChatBI機能を提供します。

PDF Reader MCP Server (@shtse8/pdf-reader-mcp)

PDF Reader MCP Server (@shtse8/pdf-reader-mcp)

Node.js/TypeScript で構築された MCP サーバー。AI エージェントが PDF ファイル (ローカルまたは URL) を安全に読み込み、テキスト、メタデータ、またはページ数を抽出できます。pdf-parse を使用。

MySQL MCP Server

MySQL MCP Server

A Model Context Protocol server that provides secure, multi-database MySQL access with configurable security levels, enabling SQL queries across multiple databases directly from VS Code.

GitHub MCP Bridge

GitHub MCP Bridge

A Model Context Protocol server that enables AI agents to securely access and interact with GitHub Enterprise data, providing access to enterprise users, organizations, emails, and license information.

YouTube Data API MCP Server

YouTube Data API MCP Server

A FastAPI server that enables interaction with YouTube's data through search, video details, channel information, and comment retrieval endpoints.

Flutter MCP Server

Flutter MCP Server

A TypeScript-based MCP server that implements a simple notes system, enabling users to manage text notes with creation and summarization functionalities through structured prompts.

This is my package laravel-mcp-server

This is my package laravel-mcp-server

Fetch MCP Server

Fetch MCP Server

シンプルなAPI呼び出しを通じて、様々な形式(HTML、JSON、プレーンテキスト、Markdown)のウェブコンテンツを取得・変換する機能を提供します。

inked

inked

inked

MCP AI Service Platform

MCP AI Service Platform

A powerful AI service platform that provides complete MCP tool calling capabilities and RAG knowledge base functionality, enabling users to connect to multiple MCP servers and perform intelligent document search.

Basic MCP

Basic MCP

A simple MCP server built with FastMCP for experimentation and learning purposes. Includes basic web tools like article fetching and serves as a human-readable template for building custom MCP servers.

Remote MCP Server Authless

Remote MCP Server Authless

A deployable MCP server on Cloudflare Workers that provides tools without requiring authentication, allowing users to connect from Cloudflare AI Playground or Claude Desktop.

Weather MCP Server

Weather MCP Server

Provides weather forecasts and alerts for US locations using the National Weather Service API. Supports getting detailed forecasts by coordinates and active weather alerts by state code.

MCP Protocol Validator

MCP Protocol Validator

MCPプロトコル仕様に対するMCPサーバー実装を検証するためのテストスイートです。開発者がプロトコル準拠と相互運用性を確保するのに役立ちます。

Alfresco MCP Server

Alfresco MCP Server

Python-based server that provides AI-native access to Alfresco content management operations through the Model Context Protocol, enabling search, document lifecycle management, version control, and other content operations.

Kollektiv

Kollektiv

Kollektiv

Docker MCP Server

Docker MCP Server

Enables natural language management of Docker containers, images, networks, and volumes with support for both local and remote Docker engines. Features automated container composition, debugging capabilities, and persistent data management through an intuitive conversational interface.

Mastercard BIN Table MCP Server

Mastercard BIN Table MCP Server

An MCP server that provides access to Mastercard's BIN Table Resource API, allowing users to look up and interact with Bank Identification Number data through natural language queries.

YouTube MCP Server

YouTube MCP Server

Model Context Protocol を介して YouTube データとのインタラクションを可能にするサーバー。ユーザーは動画の検索、動画/チャンネルに関する詳細情報の取得、コメントの取得などを行うことができます。