Oh My Posh Validator について
Oh My Posh Validatorは、oh-my-poshの設定を扱う開発者向けのMCPサーバーです。JSON、YAML、TOMLの全体設定や個別セグメントを検証し、詳細なエラーと警告を返します。
主な機能
- 01設定全体の検証
- 02個別セグメントの検証
- 03JSON、YAML、TOMLに対応
- 04パス付きエラーと警告の表示
活用シーン
- 01設定を使う前の有効性確認
- 02セグメントを設定に加える前の個別テスト
MCP 対応
HTTP経由で、MCPクライアントに`validate_config`と`validate_segment`ツールを公開します。サーバー情報とツール一覧も取得できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://ohmyposh.dev/api/mcpclaude mcp add --transport http dev-ohmyposh-validator https://ohmyposh.dev/api/mcp{"mcpServers":{"dev-ohmyposh-validator":{"type":"http","url":"https://ohmyposh.dev/api/mcp"}}}Cursor で開く{"servers":{"dev-ohmyposh-validator":{"type":"http","url":"https://ohmyposh.dev/api/mcp"}}}VS Code で開く{"mcpServers":{"dev-ohmyposh-validator":{"type":"http","url":"https://ohmyposh.dev/api/mcp"}}}{"mcpServers":{"dev-ohmyposh-validator":{"serverUrl":"https://ohmyposh.dev/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
2| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| format | enum | いいえ | 設定の形式(指定されていない場合は自動検出)json | yaml | toml | auto |
| content | string | はい | 文字列形式の設定内容(JSON、YAML、または TOML) |
詳細
title: MCP バリデーター関数 description: 'oh-my-posh 設定を検証する Model Context Protocol サーバーを実装した Azure Function'
概要
このディレクトリには、oh-my-posh 設定を検証する Model Context Protocol(MCP)サーバーを実装した Azure Function が含まれています。
エンドポイント
POST /api/mcp- 検証リクエストを処理する MCP サーバーエンドポイントGET /api/mcp- サーバー情報と利用可能なツールを返します
対応ツール
validate_config
oh-my-posh 設定を検証します。
- JSON、YAML、TOML 形式に対応しています
- JSON パスを含む詳細な検証エラーを返します
validate_segment
セグメントのスニペット(個別のプロンプトセグメント)を検証します。
- セグメントスキーマ定義に照らして検証します
- 完全な設定に追加する前に、個々のセグメントをテストするのに便利です
- JSON、YAML、TOML 形式に対応しています
使用方法
MCP サーバーとして使用する
このサーバーに接続するよう、MCP クライアントを設定します。
{
"mcpServers": {
"oh-my-posh-validator": {
"type": "http",
"url": "https://ohmyposh.dev/api/mcp"
}
}
}
HTTP リクエストを直接送信する
サーバー情報を取得する
curl https://ohmyposh.dev/api/mcp
利用可能なツールを一覧表示する
curl -X POST https://ohmyposh.dev/api/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'
設定を検証する
curl -X POST https://ohmyposh.dev/api/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "validate_config",
"arguments": {
"content": "{\"$schema\":\"https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/
themes/schema.json\",\"blocks\":[]}",
"format": "json"
}
},
"id": 1
}'
セグメントのスニペットを検証する
curl -X POST https://ohmyposh.dev/api/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "validate_segment",
"arguments": {
"content": "{\"type\":\"path\",\"style\":\"powerline\",\"foreground\":\"#ffffff\",\"background\":\"#61AFEF\",\"template\":\" {{ .Path }} \"}",
"format": "json"
}
},
"id": 2
}'
応答形式
検証結果には、以下が含まれます。
valid:設定が有効かどうかを示すブール値errors:検証エラーの配列(ある場合)warnings:警告の配列(ベストプラクティス、非推奨事項)detectedFormat:検出または指定された形式parsedConfig:解析済みの設定オブジェクト(デバッグ用)
応答の例:
{
"jsonrpc": "2.0",
"result": {
"content": [
{
"type": "text",
"text": "{
\"valid\": true,
\"errors\": [],
\"warnings\": [
{
\"path\": \"$schema\",
\"message\": \"Consider adding \\\"$schema\\\" property for better editor support.\",
\"type\": \"recommendation\"
}
],
\"detectedFormat\": \"json\",
\"parsedConfig\": {...}
}"
}
]
},
"id": 1
}
開発
ローカルでテストするには:
cd website/api
npm install
npm start
次に、http://localhost:7071/api/mcp にリクエストを送信します。
MCP Registry への公開
このサーバーは GitHub Actions を使用して MCP Registry に公開されます。
公開
oh-my-posh のリリースと同様に、バージョンタグをプッシュすると自動的に公開が開始されます。
git tag v9.0.0
git push origin v9.0.0
ワークフローでは、以下の処理が行われます。
- タグからバージョンを抽出します(例:
v9.0.0→9.0.0) server.jsonのバージョンを一致するように更新しますserver.jsonファイルを検証します- GitHub OIDC を使用して MCP Registry で認証します
- サーバーをレジストリに公開します
注記:MCP サーバーのバージョンは、oh-my-posh のバージョンと自動的に同期されます。
ファイル
server.json- MCP Registry のサーバー設定server.schema.json- 検証用の JSON スキーマvalidate-server.js- 検証スクリプト.github/workflows/publish-mcp.yml- GitHub Actions ワークフロー
server.json をローカルで検証する
cd website/api
npm install
cd mcp
node validate-server.js
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。