MCP Text Transform Server について
MCP Text Transform Serverは、テキストの大文字小文字変換を行うC# .NET 9製サーバーです。Capital Caseとsnake_caseに対応し、camelCaseやPascalCaseも処理します。
主な機能
- 01Capital Caseへの変換
- 02snake_caseへの変換
- 03camelCaseとPascalCaseの単語分割
- 04STDIOとJSON-RPCによる通信
活用シーン
- 01識別子をCapital Caseに整形
- 02識別子をsnake_caseに変換
- 03camelCaseやPascalCaseの入力を変換
MCP 対応
STDIO経由のJSON-RPCで、MCPクライアントにテキスト変換ツールを公開します。クライアントはMCPインターフェースからツールを検出して呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP テキスト変換サーバー
テキスト変換ツールを提供する、C# .NET 9 による Model Context Protocol(MCP)サーバーの実装です。このサーバーは Claude Desktop やその他の MCP クライアントと互換性があります。
📖 MCP について詳しく知る:包括的なガイドや例については、Model Context Protocol の公式ドキュメントをご覧ください。
✨ 特徴
この MCP サーバーは、強力なテキスト変換ツールを 2 つ提供します。
-
CapitalCase ツール(
capital_case)- テキストを Capital Case(タイトルケース)形式に変換します
- camelCase/PascalCase を処理し、適切にスペースを追加します
- 例:
"camelCaseExample"→"Camel Case Example"
-
SnakeCase ツール(
snake_case)- テキストを snake_case 形式に変換します
- camelCase、PascalCase、スペースを処理します
- 例:
"HelloWorld"→"hello_world"
🏗️ アーキテクチャ
このプロジェクトでは、公式の Model Context Protocol SDK を使用し、最新の C# プラクティスに従っています。
- MCP プロトコル準拠:
ModelContextProtocolNuGet パッケージを使用 - STDIO トランスポート:標準入力/出力(JSON-RPC)を介して通信
- 属性ベースのツール:シンプルな
[McpServerTool]デコレーション - 依存性注入:.NET 組み込みの DI コンテナー
- 構造化ログ:MCP との互換性を考慮して設定(stderr)
- 最新の C# 機能:.NET 9、null 許容参照型、非同期パターン
📁 プロジェクト構成
McpServer/
├── Tools/ # MCP tool implementations
│ └── TextTransformTools.cs # Capital case & snake case tools
├── Program.cs # MCP server entry point
├── McpServer.csproj # Project file with MCP SDK
└── README.md # This documentation
🚀 はじめに
前提条件
- .NET 9.0 SDK 以降
- Claude Desktop(MCP 連携のテスト用)
サーバーのビルド
# Clone and build
git clone <repository-url>
cd test-mcp-server
dotnet build
# Test the server
dotnet run
ツールのテスト
サーバーは次のテキスト変換機能を提供します。
Input: "camelCaseExample"
├── CapitalCase → "Camel Case Example"
└── SnakeCase → "camel_case_example"
Input: "Hello World"
├── CapitalCase → "Hello World"
└── SnakeCase → "hello_world"
🖥️ Claude Desktop との連携
この MCP サーバーを Claude Desktop で使用するには、次の設定を追加します。
ステップ 1:Claude Desktop の設定ファイルを確認する
Windows:%APPDATA%\Claude\claude_desktop_config.json
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Linux:~/.config/Claude/claude_desktop_config.json
ステップ 2:サーバーの設定を追加する
{
"mcpServers": {
"text-transform": {
"command": "dotnet",
"args": [
"run",
"--project",
"/path/to/your/test-mcp-server/McpServer.csproj",
"--no-build"
]
}
}
}
/path/to/your/test-mcp-server を実際のプロジェクトパスに置き換えてください。
Windows の例:
{
"mcpServers": {
"text-transform": {
"command": "dotnet",
"args": [
"run",
"--project",
"C:\\Users\\YourName\\projects\\test-mcp-server\\McpServer.csproj",
"--no-build"
]
}
}
}
macOS/Linux の例:
{
"mcpServers": {
"text-transform": {
"command": "dotnet",
"args": [
"run",
"--project",
"/home/username/projects/test-mcp-server/McpServer.csproj",
"--no-build"
]
}
}
}
重要な注意事項:
McpServer.csprojファイルには絶対パスを使用してください- Windows では、JSON のエスケープのためにバックスラッシュを 2 つ(
\\)使用してください - プロジェクトファイルのパスが存在することを確認してください
--no-buildフラグを指定するとサーバーの起動が速くなります(推奨)
ステップ 3:Claude Desktop を再起動する
設定を保存したら、Claude Desktop を再起動してください。会話でテキスト変換ツールを使用できるようになります。
ステップ 4:Claude Desktop でテストする
連携をテストするには、次のプロンプトを試してください。
"Please convert 'HelloWorldExample' to capital case"
"Transform 'My Example Text' to snake_case format"
"Convert 'camelCaseVariable' to title case"
🔧 開発
新しいツールの追加
新しい MCP ツールを追加するには、TextTransformTools クラスにメソッドを追加するだけです。
[McpServerTool]
[Description("Your tool description")]
public static string YourTool([Description("Input parameter")] string input)
{
// Your transformation logic
return transformedText;
}
ローカルでのテスト
# Build and run
dotnet run
# Test with JSON-RPC (the server expects MCP protocol messages)
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | dotnet run
🛠️ トラブルシューティング
Claude Desktop が MCP サーバーを検出しない
Claude Desktop にテキスト変換ツールが表示されない場合は、次の手順に従ってください。
1. サーバーがローカルで動作することを確認する
# Test the server responds to MCP commands:
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | dotnet run
2. Claude Desktop の設定を確認する
設定ファイルの場所:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
正確な設定形式:
{
"mcpServers": {
"text-transform": {
"command": "dotnet",
"args": [
"run",
"--project",
"/path/to/your/test-mcp-server/McpServer.csproj",
"--no-build"
]
}
}
}
/path/to/your/test-mcp-server を実際のプロジェクトパスに置き換えてください。
Windows:
"args": [
"run",
"--project",
"C:\\Users\\YourName\\projects\\test-mcp-server\\McpServer.csproj",
"--no-build"
]
macOS/Linux:
"args": [
"run",
"--project",
"/home/username/projects/test-mcp-server/McpServer.csproj",
"--no-build"
]
重要な注意事項:
McpServer.csprojファイルには絶対パスを使用してください- Windows では、JSON のエスケープのためにバックスラッシュを 2 つ(
\\)使用してください - プロジェクトファイルのパスが存在し、正しいことを確認してください
commandにはdotnetを指定してください(フルパスではありません)
3. よくある問題
-
Claude Desktop で「サーバーが見つかりません」と表示される
claude_desktop_config.json内のファイルパスが存在することを確認します- プロジェクトが正常にビルドされることを確認します(
dotnet build) - .NET 9 SDK がインストールされていることを確認します(
dotnet --version) - パスではバックスラッシュの代わりにスラッシュ
/を使ってみます
-
サーバーは起動するが、ツールを利用できない
- 設定を変更した後、Claude Desktop を完全に再起動します
- Claude Desktop のコンソール/ログにエラーメッセージがないか確認します
- 設定内のサーバー名が正確に一致していることを確認します(
text-transform)
-
ビルドエラー
dotnet restoreを実行して、すべての NuGet パッケージがインストールされていることを確認します- .NET 9.0 SDK 以降がインストールされていることを確認します
dotnet cleanを実行してからdotnet buildを実行します
4. 高度なデバッグ
手動で JSON-RPC をテストする:
# Initialize the server
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0.0"}}}' | dotnet run
# List available tools
echo '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}' | dotnet run
# Test tool execution
echo '{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "CapitalCase", "arguments": {"text": "hello world"}}}' | dotnet run
Claude Desktop のログを確認する:
- Windows:イベント ビューアーまたは Claude のアプリケーションデータフォルダーを確認します
- macOS:Console.app でログを表示します
- Linux:システムログを確認するか、ターミナルから Claude を起動します
MCP プロトコルの詳細
-
サーバーは起動するが、ツールを利用できない
- 設定を変更した後、Claude Desktop を再起動します
- Claude Desktop のコンソールでサーバーログを確認します
-
ビルドエラー
dotnet restoreを実行して、すべての NuGet パッケージがインストールされていることを確認します- .NET 9.0 SDK 以降がインストールされていることを確認します
MCP プロトコルの詳細
このサーバーは Model Context Protocol の仕様を実装しています:
- トランスポート:STDIO(stdin/stdout 経由の JSON-RPC)
- プロトコルバージョン:MCP クライアントに対応
- ツールの検出:
[McpServerTool]属性による自動検出 - エラー処理:標準的な JSON-RPC エラーレスポンス
MCP プロトコルの詳細については、公式ドキュメントを参照してください。
📚 技術的な詳細
使用する MCP SDK の機能
ModelContextProtocolv0.2.0-preview.2- Claude Desktop との互換性を実現する STDIO トランスポート
- 属性ベースのツール登録
- パラメーターの自動検証とドキュメント生成
依存関係
<PackageReference Include="ModelContextProtocol" Version="0.2.0-preview.2" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.0" />
📄 ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。
🤝 コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 新しい MCP ツールまたは機能強化を追加します
- 変更をコミットします(
git commit -m 'Add amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
🔮 ロードマップ
- テキスト変換ツールをさらに追加します(kebab-case、UPPER_CASE など)
- テキスト検証およびサニタイズツールを実装します
- テキストの一括処理をサポートします
- 包括的なテストスイートを作成します
- パフォーマンスベンチマークを追加します "ServerName": "Text Transform MCP Server", "Version": "1.0.0", "Port": 8080, "Logging": { "LogLevel": "Information", "EnableStructuredLogging": true } } }
## Health Check
A health check endpoint is available at `/health` to verify the server status.
## Development
### Code Style
The project uses `.editorconfig` for consistent code formatting and follows:
- PascalCase for classes, methods, properties
- camelCase for private fields and parameters
- Underscore prefix for private fields (`_fieldName`)
- File-scoped namespaces
- Nullable reference types enabled
### Logging
Structured logging is implemented using `ILogger<T>` with appropriate log levels:
- **Debug**: Detailed transformation steps
- **Information**: Tool execution and server lifecycle
- **Warning**: Invalid inputs or missing tools
- **Error**: Exceptions and failures
### Testing
The project structure supports unit testing with:
- Dependency injection for testability
- Interface-based programming
- Separation of concerns
## MCP Protocol
This server implements the Model Context Protocol for integration with MCP-compatible clients. The tools can be discovered and executed through the standard MCP tool calling interface.
## License
This project is provided as-is for educational and development purposes.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。