mcpField
M
MCP Text Transform Server

MCP Text Transform Server

ローカル
github.com/msv2017開発ツール074 週間前に更新

MCP Text Transform Server について

MCP Text Transform Serverは、テキストの大文字小文字変換を行うC# .NET 9製サーバーです。Capital Caseとsnake_caseに対応し、camelCaseやPascalCaseも処理します。

主な機能

  1. 01Capital Caseへの変換
  2. 02snake_caseへの変換
  3. 03camelCaseとPascalCaseの単語分割
  4. 04STDIOとJSON-RPCによる通信

活用シーン

  1. 01識別子をCapital Caseに整形
  2. 02識別子をsnake_caseに変換
  3. 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 つ提供します。

  1. CapitalCase ツール(capital_case)

    • テキストを Capital Case(タイトルケース)形式に変換します
    • camelCase/PascalCase を処理し、適切にスペースを追加します
    • 例:"camelCaseExample" → "Camel Case Example"
  2. SnakeCase ツール(snake_case)

    • テキストを snake_case 形式に変換します
    • camelCase、PascalCase、スペースを処理します
    • 例:"HelloWorld" → "hello_world"

🏗️ アーキテクチャ

このプロジェクトでは、公式の Model Context Protocol SDK を使用し、最新の C# プラクティスに従っています。

  • MCP プロトコル準拠:ModelContextProtocol NuGet パッケージを使用
  • 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. よくある問題
  1. Claude Desktop で「サーバーが見つかりません」と表示される

    • claude_desktop_config.json 内のファイルパスが存在することを確認します
    • プロジェクトが正常にビルドされることを確認します(dotnet build)
    • .NET 9 SDK がインストールされていることを確認します(dotnet --version)
    • パスではバックスラッシュの代わりにスラッシュ / を使ってみます
  2. サーバーは起動するが、ツールを利用できない

    • 設定を変更した後、Claude Desktop を完全に再起動します
    • Claude Desktop のコンソール/ログにエラーメッセージがないか確認します
    • 設定内のサーバー名が正確に一致していることを確認します(text-transform)
  3. ビルドエラー

    • 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 プロトコルの詳細
  1. サーバーは起動するが、ツールを利用できない

    • 設定を変更した後、Claude Desktop を再起動します
    • Claude Desktop のコンソールでサーバーログを確認します
  2. ビルドエラー

    • dotnet restore を実行して、すべての NuGet パッケージがインストールされていることを確認します
    • .NET 9.0 SDK 以降がインストールされていることを確認します
MCP プロトコルの詳細

このサーバーは Model Context Protocol の仕様を実装しています:

  • トランスポート:STDIO(stdin/stdout 経由の JSON-RPC)
  • プロトコルバージョン:MCP クライアントに対応
  • ツールの検出:[McpServerTool] 属性による自動検出
  • エラー処理:標準的な JSON-RPC エラーレスポンス

MCP プロトコルの詳細については、公式ドキュメントを参照してください。

📚 技術的な詳細

使用する MCP SDK の機能
  • ModelContextProtocol v0.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 ファイルを参照してください。

🤝 コントリビューション

  1. リポジトリをフォークします
  2. 機能ブランチを作成します(git checkout -b feature/amazing-feature)
  3. 新しい MCP ツールまたは機能強化を追加します
  4. 変更をコミットします(git commit -m 'Add amazing feature')
  5. ブランチにプッシュします(git push origin feature/amazing-feature)
  6. プルリクエストを作成します

🔮 ロードマップ

  • テキスト変換ツールをさらに追加します(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.

コメント

MCP は初めてですか?

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

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