Discover Awesome MCP Servers

Extend your agent with 26,962 capabilities via MCP servers.

All26,962
Claude-LMStudio Bridge

Claude-LMStudio Bridge

LM Studioで動作するローカルLLMとClaudeを連携させ、ローカルモデルを通じてモデル一覧の表示、テキスト生成、チャット補完機能を利用できるようにするMCPサーバー。

OpenDota MCP Server

OpenDota MCP Server

鏡 (Kagami)

Specifai MCP Server

Specifai MCP Server

MCPサーバーは、Specifaiプロジェクトの要件やタスクなどを、Hai BuildやCursorのようなMCPをサポートするAIツールに提供します。

Example MCP Server + Client Implementation

Example MCP Server + Client Implementation

MCPサーバー(ダミーAPIを使用)と基本的なクライアントのデモ実装。

Unsplash MCP Server

Unsplash MCP Server

軽量サーバーで、Unsplashの画像ライブラリとのシームレスな統合を可能にし、開発者はCursorエディタから直接、様々なフィルターを使って高品質な写真を検索できます。

Meilisearch MCP Server (Go)

Meilisearch MCP Server (Go)

Meilisearch用のGo製MCPサーバーラッパー。ClaudeのようなLLMがModel Context Protocolを介して強力な検索機能にアクセスできるようにします。

Basecamp MCP Integration

Basecamp MCP Integration

MCPサーバーで、Basecamp 3+ APIと連携する

dicom-mcp: A DICOM Model Context Protocol Server

dicom-mcp: A DICOM Model Context Protocol Server

AIアシスタントが、DICOMサーバーから医療画像メタデータ(患者情報、スタディ、シリーズ、インスタンスなど)をクエリおよび分析できるようにし、さらにカプセル化されたPDFドキュメントからテキストを抽出できるようにします。

Swytchcode MCP server

Swytchcode MCP server

Swytchcodeは、API連携を加速させ、開発者がPostmanコレクションまたはOpenAPI仕様を使用して、あらゆるAPIをシームレスに統合できるようにします。Swytchcodeを使用することで、開発者は希望するプログラミング言語で、すぐに本番環境で使用できるコードを取得でき、統合時間を最大90%短縮できます。 Swytchcodeプラットフォームは、80以上のAPIのコード生成をサポートしており、必要に応じてAPIを追加できます。この効率化されたアプローチにより、開発者は面倒な統合タスクではなく、イノベーションに集中できます。 主な機能: APIサポート:Stripe、PayPal、Shopifyなどの人気のあるFinTechサービスを含む、80以上のAPIと統合。 コード生成:複数のプログラミング言語でコードを生成し、さまざまな開発環境との互換性を確保。 オンデマンドAPI追加:開発者は必要に応じて、追加のAPIのサポートをリクエスト可能。

MCP GitHub

MCP GitHub

GitHub MCPサーバーを使用してリポジトリが作成されました。

MCP SQL Server

MCP SQL Server

自然言語でMS SQLデータベースとやり取りできるFastMCPサーバー。会話型AIインターフェースを通じて、データのクエリ、テーブルの一覧表示、構造の説明、データベース操作の実行などが可能です。

SQL Server Agent - Modal Context Protocol

SQL Server Agent - Modal Context Protocol

LLMとSQL Server間の通信を可能にするModel Context Protocol (MCP) の実装。ユーザーは自然言語を使用してSQLデータベースにクエリを実行し、構造化されたSQL応答を得ることができます。

Flux Image Generator

Flux Image Generator

テキストプロンプトに基づいて画像を生成するMCPサーバー。Black Forest LabのFLUXモデルを使用し、画像の寸法、プロンプトのアップサンプリング、安全性設定、バッチ生成をカスタマイズできます。

Model Context Protocol (MCP) Example

Model Context Protocol (MCP) Example

LLMとアプリケーション間のシームレスなツール呼び出しを可能にする、Model Context Protocol (MCP) のリファレンス実装です。HTTP APIを備えたクライアント/サーバーアーキテクチャ、ローカルCLI実行、およびAWS Bedrock統合を、本番環境に対応した拡張可能なフレームワークで提供します。

Vercel MCP Server

Vercel MCP Server

Vercelのデプロイメントデータを扱うための9つのツールを定義する、MCP準拠のサーバー。

OpenSearch MCP Server

OpenSearch MCP Server

OpenSearchクラスターとの自然言語でのやり取りを可能にするModel Context Protocolサーバーの実装。ユーザーは簡単な会話形式のコマンドで、ドキュメントの検索、インデックスの分析、クラスターの管理を行うことができます。

APIMatic Validator MCP Server

APIMatic Validator MCP Server

APIMaticのAPIとMCPを使用してOpenAPI仕様を検証するためのAPIMatic Validator MCPサーバー

Mcp Server Test

Mcp Server Test

n8n MCP Server

n8n MCP Server

AIアシスタントが自然言語を通じてn8nワークフローとやり取りできるようにする、モデルコンテキストプロトコルサーバー。ワークフローのリスト表示、作成、更新、実行、監視などのアクションをサポートします。

Nekzus MCP Server

Nekzus MCP Server

開発とテストのためのユーティリティツールを提供するモデルコンテキストプロトコルサーバー。パーソナライズされた挨拶、ランダムなカードのドロー、拡張可能なアーキテクチャによる日時フォーマットなどの機能を提供します。

Babashka MCP Server

Babashka MCP Server

鏡 (Kagami)

MCP Language Server

MCP Language Server

言語サーバーを起動し、それと通信するためのツールを提供します。言語サーバーは、LLMが苦手とする、型を正確に理解したり、関係性を理解したり、正確なシンボル参照を提供したりするタスクに優れています。

OpenSCAD MCP Server

OpenSCAD MCP Server

鏡 (Kagami)

Linear MCP Server

Linear MCP Server

ClaudeをLinearプロジェクト管理システムに接続します。課題やプロジェクトの取得、作成、管理をシームレスに行います。

MCP Client Example ☀️

MCP Client Example ☀️

Okay, here's a basic example of a Python MCP (Memcached Client Protocol) client and server. Keep in mind that this is a *very* simplified example for demonstration purposes. A real-world Memcached server is significantly more complex. Also, for production use, you should use a well-established Memcached library like `pymemcache` or `python-memcached`. **Important Considerations:** * **Security:** This example is *not* secure. It doesn't handle authentication or encryption. Do not use it in a production environment without adding proper security measures. * **Error Handling:** The error handling is minimal. A real implementation would need much more robust error handling. * **Concurrency:** The server uses basic threading. For high-performance, consider using asynchronous I/O (e.g., `asyncio`). * **Protocol Completeness:** This example only implements the `set` and `get` commands. Memcached has many more commands. * **Data Serialization:** This example stores data as strings. You'll likely want to use a serialization library like `pickle` or `json` to store more complex data types. **1. Server (mcp_server.py):** ```python import socket import threading class MCPRequestHandler(threading.Thread): def __init__(self, client_socket, client_address, cache): threading.Thread.__init__(self) self.client_socket = client_socket self.client_address = client_address self.cache = cache print(f"Connection from {client_address}") def run(self): try: while True: data = self.client_socket.recv(1024).decode('utf-8').strip() if not data: break parts = data.split() command = parts[0].lower() if command == 'set': if len(parts) < 3: self.client_socket.sendall(b"ERROR: Invalid SET command\r\n") continue key = parts[1] value = " ".join(parts[2:]) # Handle values with spaces self.cache[key] = value self.client_socket.sendall(b"STORED\r\n") elif command == 'get': if len(parts) != 2: self.client_socket.sendall(b"ERROR: Invalid GET command\r\n") continue key = parts[1] if key in self.cache: value = self.cache[key] self.client_socket.sendall(f"VALUE {key} {len(value)}\r\n{value}\r\nEND\r\n".encode('utf-8')) else: self.client_socket.sendall(b"END\r\n") else: self.client_socket.sendall(b"ERROR: Unknown command\r\n") except Exception as e: print(f"Error handling client: {e}") finally: print(f"Closing connection from {self.client_address}") self.client_socket.close() class MCPServer: def __init__(self, host, port): self.host = host self.port = port self.cache = {} # In-memory cache self.server_socket = None def start(self): self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Allow reuse of address self.server_socket.bind((self.host, self.port)) self.server_socket.listen(5) # Listen for up to 5 connections print(f"MCP Server listening on {self.host}:{self.port}") try: while True: client_socket, client_address = self.server_socket.accept() handler = MCPRequestHandler(client_socket, client_address, self.cache) handler.start() except KeyboardInterrupt: print("Server shutting down...") finally: if self.server_socket: self.server_socket.close() if __name__ == "__main__": HOST = "127.0.0.1" # Standard loopback interface address (localhost) PORT = 11211 # Standard Memcached port server = MCPServer(HOST, PORT) server.start() ``` **2. Client (mcp_client.py):** ```python import socket class MCPClient: def __init__(self, host, port): self.host = host self.port = port self.socket = None def connect(self): self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: self.socket.connect((self.host, self.port)) return True except socket.error as e: print(f"Connection error: {e}") self.socket = None return False def set(self, key, value): if not self.socket: if not self.connect(): return False command = f"set {key} {value}\r\n" try: self.socket.sendall(command.encode('utf-8')) response = self.socket.recv(1024).decode('utf-8').strip() return response == "STORED" except socket.error as e: print(f"Set error: {e}") return False def get(self, key): if not self.socket: if not self.connect(): return None command = f"get {key}\r\n" try: self.socket.sendall(command.encode('utf-8')) response = self.socket.recv(1024).decode('utf-8').strip() if response.startswith("VALUE"): parts = response.split() # key = parts[1] # Unused in this example, but available length = int(parts[2]) value = self.socket.recv(length).decode('utf-8') self.socket.recv(2) # Consume the "\r\n" after the value end_response = self.socket.recv(5).decode('utf-8').strip() # Expect "END" if end_response == "END": return value else: print(f"Unexpected response after value: {end_response}") return None elif response == "END": return None else: print(f"Unexpected response: {response}") return None except socket.error as e: print(f"Get error: {e}") return None def close(self): if self.socket: self.socket.close() self.socket = None if __name__ == "__main__": HOST = "127.0.0.1" PORT = 11211 client = MCPClient(HOST, PORT) if client.connect(): print("Connected to server.") # Set a value if client.set("mykey", "Hello, Memcached!"): print("Set 'mykey' successfully.") else: print("Failed to set 'mykey'.") # Get the value value = client.get("mykey") if value: print(f"Value for 'mykey': {value}") else: print("Key 'mykey' not found.") # Get a non-existent key value = client.get("nonexistent_key") if value: print(f"Value for 'nonexistent_key': {value}") else: print("Key 'nonexistent_key' not found.") client.close() print("Connection closed.") else: print("Failed to connect to server.") ``` **How to Run:** 1. **Save:** Save the code as `mcp_server.py` and `mcp_client.py`. 2. **Run the Server:** Open a terminal and run `python mcp_server.py`. The server will start listening on `127.0.0.1:11211`. 3. **Run the Client:** Open another terminal and run `python mcp_client.py`. The client will connect to the server, set a key, get the key, and then close the connection. **Explanation:** * **Server:** * `MCPServer` class: Handles the server socket, listening for connections, and creating a new thread for each client. * `MCPRequestHandler` class: Handles the communication with a single client. It receives data, parses the command (currently only `set` and `get`), and interacts with the in-memory `cache` (a Python dictionary). * The server uses a simple in-memory dictionary (`self.cache`) to store the data. * The server sends back responses like "STORED", "VALUE", and "END" according to the basic Memcached protocol. * **Client:** * `MCPClient` class: Handles the connection to the server and provides `set` and `get` methods. * The `set` method sends a "set" command to the server. * The `get` method sends a "get" command and parses the response from the server. * The client handles the basic protocol format, including the "VALUE", length, and "END" markers. **To Translate to Japanese:** Here's a translation of the comments and print statements in the code to Japanese. I'll provide the translated code snippets. You can replace the English text in the original code with these translations. **mcp_server.py (Japanese):** ```python import socket import threading class MCPRequestHandler(threading.Thread): def __init__(self, client_socket, client_address, cache): threading.Thread.__init__(self) self.client_socket = client_socket self.client_address = client_address self.cache = cache print(f"{client_address} からの接続") # Connection from {client_address} def run(self): try: while True: data = self.client_socket.recv(1024).decode('utf-8').strip() if not data: break parts = data.split() command = parts[0].lower() if command == 'set': if len(parts) < 3: self.client_socket.sendall(b"ERROR: 無効なSETコマンド\r\n") # ERROR: Invalid SET command continue key = parts[1] value = " ".join(parts[2:]) # Handle values with spaces self.cache[key] = value self.client_socket.sendall(b"STORED\r\n") elif command == 'get': if len(parts) != 2: self.client_socket.sendall(b"ERROR: 無効なGETコマンド\r\n") # ERROR: Invalid GET command continue key = parts[1] if key in self.cache: value = self.cache[key] self.client_socket.sendall(f"VALUE {key} {len(value)}\r\n{value}\r\nEND\r\n".encode('utf-8')) else: self.client_socket.sendall(b"END\r\n") else: self.client_socket.sendall(b"ERROR: 不明なコマンド\r\n") # ERROR: Unknown command except Exception as e: print(f"クライアント処理中にエラーが発生しました: {e}") # Error handling client: {e} finally: print(f"{self.client_address} からの接続を閉じます") # Closing connection from {self.client_address} self.client_socket.close() class MCPServer: def __init__(self, host, port): self.host = host self.port = port self.cache = {} # In-memory cache self.server_socket = None def start(self): self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Allow reuse of address self.server_socket.bind((self.host, self.port)) self.server_socket.listen(5) # Listen for up to 5 connections print(f"MCPサーバーは {self.host}:{self.port} でリッスンしています") # MCP Server listening on {self.host}:{self.port} try: while True: client_socket, client_address = self.server_socket.accept() handler = MCPRequestHandler(client_socket, client_address, self.cache) handler.start() except KeyboardInterrupt: print("サーバーをシャットダウンしています...") # Server shutting down... finally: if self.server_socket: self.server_socket.close() if __name__ == "__main__": HOST = "127.0.0.1" # Standard loopback interface address (localhost) PORT = 11211 # Standard Memcached port server = MCPServer(HOST, PORT) server.start() ``` **mcp_client.py (Japanese):** ```python import socket class MCPClient: def __init__(self, host, port): self.host = host self.port = port self.socket = None def connect(self): self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: self.socket.connect((self.host, self.port)) return True except socket.error as e: print(f"接続エラー: {e}") # Connection error: {e} self.socket = None return False def set(self, key, value): if not self.socket: if not self.connect(): return False command = f"set {key} {value}\r\n" try: self.socket.sendall(command.encode('utf-8')) response = self.socket.recv(1024).decode('utf-8').strip() return response == "STORED" except socket.error as e: print(f"Setエラー: {e}") # Set error: {e} return False def get(self, key): if not self.socket: if not self.connect(): return None command = f"get {key}\r\n" try: self.socket.sendall(command.encode('utf-8')) response = self.socket.recv(1024).decode('utf-8').strip() if response.startswith("VALUE"): parts = response.split() # key = parts[1] # Unused in this example, but available length = int(parts[2]) value = self.socket.recv(length).decode('utf-8') self.socket.recv(2) # Consume the "\r\n" after the value end_response = self.socket.recv(5).decode('utf-8').strip() # Expect "END" if end_response == "END": return value else: print(f"値の後に予期しない応答: {end_response}") # Unexpected response after value: {end_response} return None elif response == "END": return None else: print(f"予期しない応答: {response}") # Unexpected response: {response} return None except socket.error as e: print(f"Getエラー: {e}") # Get error: {e} return None def close(self): if self.socket: self.socket.close() self.socket = None if __name__ == "__main__": HOST = "127.0.0.1" PORT = 11211 client = MCPClient(HOST, PORT) if client.connect(): print("サーバーに接続しました。") # Connected to server. # Set a value if client.set("mykey", "Hello, Memcached!"): print("'mykey' を正常に設定しました。") # Set 'mykey' successfully. else: print("'mykey' の設定に失敗しました。") # Failed to set 'mykey'. # Get the value value = client.get("mykey") if value: print(f"'mykey' の値: {value}") # Value for 'mykey': {value} else: print("キー 'mykey' は見つかりませんでした。") # Key 'mykey' not found. # Get a non-existent key value = client.get("nonexistent_key") if value: print(f"'nonexistent_key' の値: {value}") # Value for 'nonexistent_key': {value} else: print("キー 'nonexistent_key' は見つかりませんでした。") # Key 'nonexistent_key' not found. client.close() print("接続を閉じました。") # Connection closed. else: print("サーバーへの接続に失敗しました。") # Failed to connect to server. ``` **How to Use the Translated Code:** 1. Replace the English comments and `print` statements in `mcp_server.py` with the corresponding Japanese translations from the `mcp_server.py (Japanese)` section above. 2. Replace the English comments and `print` statements in `mcp_client.py` with the corresponding Japanese translations from the `mcp_client.py (Japanese)` section above. 3. Save the modified files. 4. Run the server and client as described earlier. The output will now be in Japanese. **Important Notes about Japanese:** * **Encoding:** Make sure your editor saves the files in UTF-8 encoding to properly display Japanese characters. * **Terminal Support:** Your terminal needs to support UTF-8 encoding to display Japanese characters correctly. Most modern terminals do, but you might need to configure it. * **Variable Names:** I've only translated the comments and print statements. You *could* also translate variable names (e.g., `client_socket` to `クライアントソケット`), but this is generally not recommended unless you are working on a project specifically for Japanese speakers. Keeping variable names in English makes the code more accessible to a wider audience. This provides a basic, functional MCP client and server example in Python, along with the Japanese translations you requested. Remember to use a proper Memcached library for production applications.

Searxngmcp

Searxngmcp

AIアシスタントが、プライバシーを尊重するメタ検索エンジンであるSearXNGを使ってウェブ検索を実行できるようにする、Model Context Protocolサーバー。

Agent.ai MCP Server

Agent.ai MCP Server

ClickHouse MCP Server

ClickHouse MCP Server

ClickHouseデータベースの統合、スキーマ検査とクエリ機能付き

Shopify MCP Server

Shopify MCP Server

Insight MCP Server

Insight MCP Server

開発用ユーティリティのためのMCPサーバー