mcpField
M
MCPServerApp

MCPServerApp

ローカル
github.com/ewdlopAI・エージェント074 週間前に更新

MCPServerApp について

MCPServerAppは、テキスト処理、執筆、分析、ビジネスコンテンツ向けの.NET 9製MCPサーバーです。テキストユーティリティから創作・教育コンテンツ生成まで、50以上のツールを提供します。

主な機能

  1. 0150以上のテキスト・AIツール
  2. 02感情・バイアス・可読性の分析
  3. 03創作とコンテンツ生成
  4. 04ビジネス・教育向けツール
  5. 05翻訳とテキスト処理

活用シーン

  1. 01文章のトーン、感情、可読性の評価
  2. 02物語、詩、キャラクター設定の作成
  3. 03スローガン、製品名、メール件名の生成
  4. 04概念説明、チュートリアル、討論論点の作成

MCP 対応

互換性のあるクライアントに、MCP経由でツールを公開します。多くの文章生成・分析ツールはIChatClientを利用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"MCPServerApp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocibuild

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCPServerApp

.NET 9 で構築された包括的な Model Context Protocol(MCP)サーバーアプリケーションです。テキスト処理、クリエイティブライティング、分析、ビジネスアプリケーション向けの、AI を活用した 50 以上のツールを備えています。

🚀 特長

  • AI を活用した 50 以上のツール:さまざまなタスクに対応する、IChatClient を利用した幅広いツール群
  • テキスト分析:感情分析、バイアス検出、読みやすさの評価、文章の改善
  • クリエイティブライティング:物語の生成、詩の作成、キャラクター開発、対話のシミュレーション
  • ビジネスツール:メール件名の生成、お客様の声、スローガン、商品名
  • 教育:概念の説明、チュートリアルの概要、ディベートの論点、記憶を助ける工夫
  • 言語処理:翻訳、韻の生成、単語の連想、代替案の提案
  • コミュニケーション:会話のきっかけ、アイスブレイク、面接の質問

🛠️ 技術スタック

  • .NET 9:最新の .NET フレームワーク
  • Model Context Protocol(MCP):AI ツール向けの通信プロトコル
  • Microsoft.Extensions.AI:AI の抽象化機能とチャットクライアントのサポート
  • Docker:コンテナー化のサポート
  • C#:主要なプログラミング言語

📋 前提条件

  • .NET 9 SDK
  • Docker(任意。コンテナー化したデプロイに使用)
  • AI サービスプロバイダー(IChatClient の機能に必要)

🏃‍♂️ クイックスタート

1. クローンとビルド
git clone <repository-url>
cd MCPServerApp
dotnet build
2. アプリケーションの実行
dotnet run
3. Docker でのデプロイ(任意)
docker build -t mcpserverapp .
docker run -p 8080:8080 mcpserverapp

🔧 設定

このアプリケーションは、標準的な .NET の設定パターンを使用します。以下を設定できます。

  • AI サービスのエンドポイント
  • ログレベル
  • サーバー設定

設定は、以下を通じて指定できます。

  • appsettings.json
  • 環境変数
  • コマンドライン引数
  • ユーザーシークレット(開発用)

📚 利用可能なツール

テキスト分析と処理
  • AnalyzeSentiment:テキストの感情的な傾向を分析します
  • AnalyzeWritingTone:文章の内容のトーンとスタイルを評価します
  • AnalyzeReadability:テキストの読みやすさを評価し、改善案を提案します
  • AnalyzeBiasInText:潜在的なバイアスや偏りのある表現を特定します
  • AnalyzeEmotionalTone:感情的なニュアンスや雰囲気を分析します
  • AnalyzeArgumentStructure:議論の論理構造を調べます
  • ImproveWriting:文章をより良くするための提案を行います
  • TranslateText:言語間でテキストを翻訳します
クリエイティブライティングとコンテンツ
  • GeneratePoem:さまざまなスタイル(俳句、ソネット、自由詩、リメリック)で詩を作成します
  • GenerateStory:指定したパラメーターに基づいて短編小説を生成します
  • CreateCharacterProfile:創作向けの詳細なキャラクタープロフィールを作成します
  • SimulateDialogue:登場人物同士のリアルな会話を作成します
  • GenerateJoke:さまざまなスタイル(しゃれ、一言ジョーク、ノックノック・ジョーク、親父ギャグ)でユーモアを作成します
  • GenerateMotivationalQuote:人を励ます名言を作成します
  • GenerateCreativePrompts:さまざまなメディア向けの創作のヒントを提供します
  • CreateMetaphors:概念を表すメタファーや類推を生成します
ビジネスと専門分野
  • GenerateSlogan:印象に残るスローガンやタグラインを作成します
  • GenerateProductNames:商品やサービスの創造的な名前を考案します
  • GenerateEmailSubjects:目を引くメールの件名を作成します
  • GenerateTestimonials:現実味のあるお客様の声を作成します
  • CreateUserPersonas:デザインやマーケティング向けの詳細なユーザーペルソナを作成します
  • GenerateHashtags:関連性の高いソーシャルメディア用ハッシュタグを作成します
教育と解説
  • ExplainConcept:対象者のレベルに合わせて概念を説明します
  • GenerateQuestions:さまざまな状況に応じた、考えを深める質問を作成します
  • CreateTutorialOutline:体系的な学習概要を生成します
  • GenerateDebatePoints:ディベートのテーマに対する論点を考案します
  • CreateMemoryDevice:記憶術や記憶を助ける方法を作成します
  • CreateAnalogyChain:複雑な概念を段階的に説明する類推の連鎖を構築します
言語とコミュニケーション
  • GenerateRhyme:入力された単語と韻を踏む単語を検索します
  • CreateWordAssociations:意味的な単語のつながりを生成します
  • GenerateAlternatives:代替となる単語、フレーズ、またはアプローチを提示します
  • CreateConversationStarters:さまざまな状況に合わせた会話のきっかけを生成します
  • GenerateIcebreakers:グループ向けのアイスブレイク活動を作成します
  • CreateAcronym:覚えやすい頭字語を作成するか、既存の頭字語を展開します
ユーティリティとヘルパーツール
  • Echo:基本的なメッセージのエコー機能
  • ReverseEcho:テキストを逆順にして返します
  • Yell:テキストを大文字に変換します
  • WordCount:テキスト内の単語数を数えます
  • CharCount:文字数を数えます(スペースを除く)
  • VowelCount:テキスト内の母音を数えます
  • Repeat:メッセージを複数回繰り返します
  • IsPalindrome:テキストが回文かどうかを確認します
  • TitleCase:テキストをタイトルケースに変換します
  • ExtractDigits:テキストから数字を抽出します
  • LongestWord:テキスト内で最も長い単語を検索します
  • Replace:テキスト内の部分文字列を置換します
  • ToLowerCase:小文字に変換します
  • ToUpperCase:大文字に変換します
  • Trim:先頭と末尾の空白を削除します
  • Contains:部分文字列が含まれているか確認します
  • SplitIntoWords:テキストを単語の配列に分割します
  • JoinWords:単語の配列を結合して文字列にします
  • SummarizeContentFromUrl:ウェブコンテンツをダウンロードして要約します
データと専門分野
  • GetMonkey:名前からサルの情報を取得します
  • GetMonkeys:利用可能なサルの一覧を表示します

🎯 ツールカテゴリの概要

カテゴリツール数主なユースケース
テキスト分析8コンテンツの評価、改善案の提示、バイアスの検出
クリエイティブライティング12物語の作成、詩、キャラクター開発、ユーモア
ビジネスツール6マーケティング文案、ブランディング、顧客向けコンテンツ
教育6学習教材、解説、記憶補助
言語処理8翻訳、言葉遊び、意味分析
コミュニケーション6社交、ビジネスネットワーキング
ユーティリティ関数18テキスト操作、基本的な処理
専門分野2専門的なデータ取得

🔍 ツールの使用例

感情分析
var result = await AnalyzeSentiment(server, "I absolutely love this new feature!", cancellationToken);
// Returns: Sentiment Analysis: Positive (95% confidence) - Expresses strong enthusiasm...
クリエイティブライティング
var poem = await GeneratePoem(server, "autumn leaves", "haiku", cancellationToken);
// Returns: HAIKU - autumn leaves: Golden leaves falling...
ビジネスコンテンツ
var slogans = await GenerateSlogan(server, "eco-friendly water bottles", "inspirational", 3, cancellationToken);
// Returns: INSPIRATIONAL Slogans for eco-friendly water bottles: ...

🏗️ アーキテクチャ

プロジェクト構成
MCPServerApp/
├── Tools/
│   ├── EchoTool.cs          # Main tool collection (50+ tools)
│   └── MonkeyTools.cs       # Domain-specific tools
├── Models/
│   └── Monkey.cs            # Data models
├── Services/
│   └── MonkeyService.cs     # Business logic services
├── Contexts/
│   └── MonkeyContext.cs     # Data context
└── Program.cs               # Application entry point
主なコンポーネント
  • McpServerTool 属性:メソッドを利用可能な MCP ツールとして指定します
  • IChatClient 統合:テキスト処理に AI の機能を活用します
  • 依存性注入:サービス管理に .NET DI コンテナーを活用します
  • 構成システム:複数の構成ソースに対応します

🧪 開発

新しいツールの追加
  1. 適切なツールクラスに新しい静的メソッドを作成します
  2. 名前と説明を指定して [McpServerTool] 属性を追加します
  3. [Description] 属性を使ってパラメーターの説明を記述します
  4. 適切な場合は IChatClient を使ってツールのロジックを実装します

例:

[McpServerTool(Name = "MyNewTool"), Description("Description of what the tool does")]
public static async Task<string> MyNewTool(
    IMcpServer thisServer,
    [Description("Input parameter description")] string input,
    CancellationToken cancellationToken = default)
{
    // Tool implementation
    ChatMessage[] messages = [
        new(ChatRole.System, "System prompt for the AI"),
        new(ChatRole.User, $"User prompt with {input}")
    ];
    
    ChatOptions options = new()
    {
        MaxOutputTokens = 200,
        Temperature = 0.5f,
    };
    
    var response = await thisServer.AsSamplingChatClient().GetResponseAsync(messages, options, cancellationToken);
    return $"Result: {response}";
}
テスト
# Run tests
dotnet test

# Build and run
dotnet build
dotnet run

📄 ライセンス

このプロジェクトは、LICENSE.txt に記載された条件に基づいてライセンスされています。

🤝 貢献

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 変更を加えます
  4. 該当する場合はテストを追加します
  5. プルリクエストを送信します

📞 サポート

質問、問題、貢献については、プロジェクトのイシュートラッカーまたはドキュメントを参照してください。


.NET 9 と Model Context Protocol を使用して ❤️ を込めて構築

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。