MCP Structured Output バリデーター
コーディング中級
outputSchemaを宣言してツール出力を自動検証し、人間が読めるcontentと機械がパースできるstructuredContentを同時提供します。
トリガー
/mcp-output-schema使用頻度per tool
MCP Server Authorなら? Use /mcp-output-schema to add type-safe outputs to your tools
Integration Developerなら? Ensure downstream systems can parse tool results reliably
MCPStructured OutputJSON Schemaバリデーション
動作フロー
/mcp-output-schema [tool-name] run
↓
Phase 1: analyze tool output
output-analysis
Infer schema from current tool responses
schema-gen
Generate outputSchema definition
validator
Create runtime validation layer
↓
Wire schema into tool definition
↓
✓ Tool with outputSchema + structuredContent validation
スキルコード
# MCP Structured Output Validator
## Trigger: /mcp-output-schema [tool-name]
When invoked:
1. Define outputSchema on tool registration:
```typescript
server.tool(
"get-weather",
{
description: "Get current weather for a city",
inputSchema: {
type: "object",
properties: {
city: { type: "string" }
},
required: ["city"]
},
// NEW: declare structured output schema
outputSchema: {
type: "object",
properties: {
temperature: { type: "number" },
unit: { type: "string", enum: ["celsius", "fahrenheit"] },
condition: { type: "string" },
humidity: { type: "number" }
},
required: ["temperature", "unit", "condition"]
}
},
async ({ city }) => {
const data = await fetchWeather(city);
return {
// Human-readable content (always present)
content: [{
type: "text",
text: `It's ${data.temp}°C and ${data.condition} in ${city}`
}],
// Machine-readable structured output (validated against outputSchema)
structuredContent: {
temperature: data.temp,
unit: "celsius",
condition: data.condition,
humidity: data.humidity
}
};
}
);
```
2. Validation behavior:
- Server SDK auto-validates structuredContent against outputSchema
- Schema violations throw at runtime (fail-fast)
- structuredContent MUST be present when outputSchema is defined
- content[] is still required for human-readable fallback
3. Client consumption:
```typescript
const result = await client.callTool("get-weather", { city: "Seoul" });
// Type-safe access to structured data
const temp = result.structuredContent.temperature; // number
const condition = result.structuredContent.condition; // string
```
コピーしてCLAUDE.mdに貼り付ければ、すぐに使えます。
MCP Structured Output バリデーター の仕組み
MCP Structured Output Validatorは、既存ツールの応答パターンを分析してoutputSchemaを推論・生成し、structuredContentがスキーマに準拠するランタイム検証レイヤーを追加します。人間が読むcontent[]と機械が消費するstructuredContentの二重出力構造を保証します。
MCP Structured Output バリデーター が力を発揮する場面
MCPツールの結果を他のシステムがプログラム的に安定して消費する必要があるとき、またはツール応答の型安全性を保証したいときに最も強力です。
主な強み
- outputSchemaの自動推論と生成
- ランタイムスキーマ検証でfail-fastを保証
- human-readableとmachine-readableの二重出力
- ダウンストリームシステム統合の安定性確保