Discover Awesome MCP Servers
Extend your agent with 84,517 capabilities via MCP servers.
- All84,517
- Developer Tools3,867
- Search1,714
- Research & Data1,557
- AI Integration Systems229
- Cloud Platforms219
- Data & App Analysis181
- Database Interaction177
- Remote Shell Execution165
- Browser Automation147
- Databases145
- Communication137
- AI Content Generation127
- OS Automation120
- Programming Docs Access109
- Content Fetching108
- Note Taking97
- File Systems96
- Version Control93
- Finance91
- Knowledge & Memory90
- Monitoring79
- Security71
- Image & Video Processing69
- Digital Note Management66
- AI Memory Systems62
- Advanced AI Reasoning59
- Git Management Tools58
- Cloud Storage51
- Entertainment & Media43
- Virtualization42
- Location Services35
- Web Automation & Stealth32
- Media Content Processing32
- Calendar Management26
- Ecommerce & Retail18
- Speech Processing18
- Customer Data Platforms16
- Travel & Transportation14
- Education & Learning Tools13
- Home Automation & IoT13
- Web Search Integration12
- Health & Wellness10
- Customer Support10
- Marketing9
- Games & Gamification8
- Google Cloud Integrations7
- Art & Culture4
- Language Translation3
- Legal & Compliance2
gomcptest: Proof of Concept for MCP with Custom Host
カスタム構築されたホストが、OpenAI互換API、関数呼び出し、およびMCPサーバーとの連携を実装した、Google Vertex AIを用いた概念実証。
feishu-tools-mcp
MCPサーバーは、カーソル飛書MCPプラグインのようなAIエンコーディングエージェントに、Feishu(ラーク)関連の操作を提供します。
GenAIScript MCP Demo 🚀
GenAIScript の MCP サーバー機能のデモ
XACHE - Crypto Trader Website
Goose AI と MCP サーバー
Binance MCP Server
鏡 (Kagami)
Confluence Communication Server MCP Server
鏡 (Kagami)
spring-mcp-server-sample
MCPサーバーサンプル
dice-thrower
MCP Host Project
## Spring AI での MCP (Model Context Protocol) の Spring Boot アプリケーションへの統合 このドキュメントでは、Spring AI の MCP (Model Context Protocol) サポートを Spring Boot アプリケーションに統合する方法を、サーバーサイドとクライアントサイドの両方の実装をカバーして説明します。 **MCP (Model Context Protocol) とは?** MCP は、大規模言語モデル (LLM) との対話を標準化するためのプロトコルです。これにより、LLM にコンテキスト情報を提供し、より正確で関連性の高い応答を得ることができます。Spring AI は MCP をサポートしており、Spring Boot アプリケーションで LLM をより効果的に活用できます。 **前提条件** * Java 17 以上 * Maven または Gradle * Spring Boot 3.1 以上 * Spring AI 0.8.0 以上 * LLM API キー (例: OpenAI, Azure OpenAI) **1. プロジェクトのセットアップ** Spring Initializr (https://start.spring.io/) を使用して、必要な依存関係を含む Spring Boot プロジェクトを作成します。 以下の依存関係を含めることを推奨します。 * Spring Web * Spring AI * Lombok (オプション) **2. 依存関係の追加 (pom.xml)** ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-spring-boot-starter</artifactId> <version>0.8.0</version> </dependency> <!-- 使用する LLM プロバイダーの依存関係を追加 (例: OpenAI) --> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai</artifactId> <version>0.8.0</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> ``` **3. 設定 (application.properties または application.yml)** LLM プロバイダーの API キーとモデルを設定します。 ```properties spring.ai.openai.api-key=YOUR_OPENAI_API_KEY spring.ai.openai.model=gpt-3.5-turbo ``` または (application.yml): ```yaml spring: ai: openai: api-key: YOUR_OPENAI_API_KEY model: gpt-3.5-turbo ``` **4. サーバーサイドの実装 (MCP を使用して LLM にコンテキストを渡す)** ```java import org.springframework.ai.chat.ChatClient; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.prompt.PromptTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.Map; @RestController public class AiController { @Autowired private ChatClient chatClient; @GetMapping("/ai/generate") public String generate(@RequestParam("topic") String topic, @RequestParam("context") String context) { // プロンプトテンプレートを作成 String template = "以下のコンテキストに基づいて、{topic} について説明してください。\n\nコンテキスト: {context}"; PromptTemplate promptTemplate = new PromptTemplate(template); // コンテキストをマップに格納 Map<String, Object> model = Map.of("topic", topic, "context", context); // プロンプトを生成 String prompt = promptTemplate.render(model); // LLM にリクエストを送信 ChatResponse response = chatClient.call(prompt); // 応答を抽出 Generation generation = response.getResult(); return generation.getOutput().getContent(); } } ``` この例では、`@RequestParam` を使用してクライアントから `topic` と `context` を受け取ります。 `PromptTemplate` を使用して、コンテキストをプロンプトに組み込みます。 `ChatClient` は、生成されたプロンプトを LLM に送信し、応答を受け取ります。 **5. クライアントサイドの実装 (サーバーにコンテキストを送信)** クライアントサイドでは、サーバーに `topic` と `context` を含むリクエストを送信する必要があります。 以下は、JavaScript (fetch API) を使用した例です。 ```javascript async function generateText(topic, context) { const url = `/ai/generate?topic=${topic}&context=${context}`; try { const response = await fetch(url); const data = await response.text(); return data; } catch (error) { console.error("Error:", error); return "An error occurred."; } } // 使用例 const topic = "Spring AI"; const context = "Spring AI は、大規模言語モデル (LLM) を使用したアプリケーションを構築するためのフレームワークです。"; generateText(topic, context) .then(result => { console.log(result); }); ``` この例では、`generateText` 関数は、指定された `topic` と `context` を含む GET リクエストを `/ai/generate` エンドポイントに送信します。 サーバーからの応答はコンソールに記録されます。 **6. 実行とテスト** Spring Boot アプリケーションを実行し、ブラウザまたは API クライアント (例: Postman) を使用して `/ai/generate` エンドポイントにリクエストを送信します。 例: `http://localhost:8080/ai/generate?topic=Spring%20AI&context=Spring%20AI%E3%81%AF%E3%80%81%E5%A4%A7%E8%A6%8F%E6%A8%A1%E8%A8%80%E8%AA%9E%E3%83%A2%E3%83%87%E3%83%AB%20(LLM)%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%A7%E3%81%99%E3%80%82` **7. より高度な MCP の使用** Spring AI は、より高度な MCP の使用をサポートしています。例えば、`ChatRequest` オブジェクトを使用して、システムメッセージ、ユーザーメッセージ、アシスタントメッセージなど、複数のメッセージを LLM に送信できます。 ```java import org.springframework.ai.chat.ChatClient; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.SystemMessage; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.PromptTemplate; import org.springframework.ai.chat.prompt.SystemPromptTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; @RestController public class AiController { @Autowired private ChatClient chatClient; @GetMapping("/ai/generate-advanced") public String generateAdvanced(@RequestParam("topic") String topic, @RequestParam("context") String context) { // システムメッセージのテンプレート String systemTemplate = "あなたは {topic} について説明するアシスタントです。以下のコンテキストを考慮してください: {context}"; SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemTemplate); Map<String, Object> systemModel = Map.of("topic", topic, "context", context); SystemMessage systemMessage = systemPromptTemplate.createMessage(systemModel); // ユーザーメッセージ UserMessage userMessage = new UserMessage("Spring AI について教えてください。"); // メッセージリストを作成 List<Message> messages = List.of(systemMessage, userMessage); // LLM にリクエストを送信 ChatResponse response = chatClient.call(messages); // 応答を抽出 Generation generation = response.getResult(); return generation.getOutput().getContent(); } } ``` この例では、`SystemMessage` を使用して LLM にコンテキストと指示を提供し、`UserMessage` を使用してユーザーの質問を送信します。 **8. まとめ** このドキュメントでは、Spring AI の MCP サポートを Spring Boot アプリケーションに統合する方法を説明しました。 `PromptTemplate` を使用してコンテキストをプロンプトに組み込む方法、`ChatRequest` オブジェクトを使用して複数のメッセージを送信する方法など、さまざまな方法で MCP を活用できます。 これらのテクニックを使用することで、LLM との対話を改善し、より正確で関連性の高い応答を得ることができます。 **補足** * このドキュメントは基本的な例を示しています。 実際のアプリケーションでは、エラー処理、ロギング、セキュリティなどの要素を考慮する必要があります。 * Spring AI は、さまざまな LLM プロバイダーをサポートしています。 使用するプロバイダーに応じて、設定と依存関係を調整する必要があります。 * MCP は進化し続けているプロトコルです。 Spring AI の最新バージョンを使用し、公式ドキュメントを参照して、最新の機能とベストプラクティスを確認してください。 この翻訳が、Spring AI での MCP の Spring Boot アプリケーションへの統合を理解するのに役立つことを願っています。
MCP_claude
これは、Claude Desktop MCPクライアント用にMCPサーバーを構築する方法を示すためのものです。
cursor_agents
「MCPサーバーを使用して、専門家チームをエージェントフローに追加する」
mcp-edge-search
Claude DesktopのようなMCPクライアントにウェブ検索機能を提供する、モデルコンテキストプロトコルサーバー
Bear MCP Server
鏡 (Kagami)
Symbol MCP Server (REST API tools)
シンボル MCP サーバー (REST API ツール)
Mcp Server Python
Modes MCP Server
鏡 (Kagami)
Prometheus Alertmanager MCP Server
Prometheus Alertmanager と統合された Model Context Protocol (MCP) サーバー
NYT MCP Server
ニューヨーク・タイムズ(NYT)のAPI群に対して、統一されたシンプルなインターフェースを提供するメッセージ集中プロトコル(MCP)サーバー。このサーバーは、単一のエンドポイントを通じて複数のNYT APIとのやり取りを簡素化します。
MCP Adobe Experience Platform Server
Adobe Experience Platform API 連携のための MCP サーバー
DNSDumpster - MCP Server
DNSDumpsterサービスのMCPサーバー
@shortcut/mcp
ショートカットのMCPサーバー
Solana Agent Kit MCP Server
ShotGrid MCP Server
Autodesk ShotGrid/Flow Production Tracking (FPT) 用のモデルコンテキストプロトコル (MCP) サーバー。包括的な CRUD 操作とデータ管理機能を備えています。
Oura MCP Server
Oura用のMCPサーバー
LinkedInMCP: Revolutionizing LinkedIn API Interactions
LinkedIn API連携のためのモデルコンテキストプロトコル(MCP)サーバー
MCP Server
MCPサーバー実装のテスト
Everything MCP Server
MCPサーバー実装。ファイル操作、HTTPリクエスト、コマンド実行など、システム全体の機能を提供します。
Glean
鏡 (Kagami)
Standardizing LLM Interaction with MCP Servers
了解しました。以下に、Tools、Resources、Promptsのための、短く簡潔なMCPサーバー/クライアント実装例を示します。 **サーバー (Python):** ```python from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/process', methods=['POST']) def process_request(): data = request.get_json() tool = data.get('tool') resource = data.get('resource') prompt = data.get('prompt') # ここで、tool, resource, prompt を使って処理を行う # 例: tool を使って resource を処理し、prompt に基づいて結果を生成する result = f"Tool: {tool}, Resource: {resource}, Prompt: {prompt}" # ダミーの結果 return jsonify({'result': result}) if __name__ == '__main__': app.run(debug=True) ``` **クライアント (Python):** ```python import requests import json url = 'http://localhost:5000/process' # サーバーのアドレス data = { 'tool': 'ImageGenerator', 'resource': 'ImageDescription.txt', 'prompt': 'Generate an image based on the description.' } headers = {'Content-type': 'application/json'} response = requests.post(url, data=json.dumps(data), headers=headers) if response.status_code == 200: result = response.json()['result'] print(f"Result: {result}") else: print(f"Error: {response.status_code}") ``` **説明:** * **サーバー:** * Flaskフレームワークを使用。 * `/process` エンドポイントでPOSTリクエストを受け付ける。 * リクエストから `tool`, `resource`, `prompt` を取得。 * (例として) 受け取った値を文字列として結合した結果をJSON形式で返す。 * **クライアント:** * `requests` ライブラリを使用。 * サーバーの `/process` エンドポイントにPOSTリクエストを送信。 * `tool`, `resource`, `prompt` をJSON形式で送信。 * サーバーからのレスポンスを受け取り、結果を表示。 **使い方:** 1. サーバーのコードを `server.py` などとして保存。 2. クライアントのコードを `client.py` などとして保存。 3. サーバーを起動: `python server.py` 4. クライアントを実行: `python client.py` **重要な点:** * これは非常に基本的な例です。実際のアプリケーションでは、エラー処理、認証、より複雑なデータ構造、そして `tool`, `resource`, `prompt` を使った実際の処理が必要になります。 * `tool`, `resource`, `prompt` の具体的な意味と処理内容は、アプリケーションの要件によって大きく異なります。 * この例では、ローカルホスト (localhost) でサーバーを実行しています。本番環境では、適切なサーバーにデプロイする必要があります。 この例が、MCPサーバー/クライアントの実装の出発点として役立つことを願っています。
Aws Service Authorization Reference