mcpengine/infra/factory-tools/mcp-validator/schema/mcp_schema_2025-06-18.json
Jake Shore f3c4cd817b Add all MCP servers + factory infra to MCPEngine — 2026-02-06
=== NEW SERVERS ADDED (7) ===
- servers/closebot — 119 tools, 14 modules, 4,656 lines TS (Stage 7)
- servers/google-console — Google Search Console MCP (Stage 7)
- servers/meta-ads — Meta/Facebook Ads MCP (Stage 8)
- servers/twilio — Twilio communications MCP (Stage 8)
- servers/competitor-research — Competitive intel MCP (Stage 6)
- servers/n8n-apps — n8n workflow MCP apps (Stage 6)
- servers/reonomy — Commercial real estate MCP (Stage 1)

=== FACTORY INFRASTRUCTURE ADDED ===
- infra/factory-tools — mcp-jest, mcp-validator, mcp-add, MCP Inspector
  - 60 test configs, 702 auto-generated test cases
  - All 30 servers score 100/100 protocol compliance
- infra/command-center — Pipeline state, operator playbook, dashboard config
- infra/factory-reviews — Automated eval reports

=== DOCS ADDED ===
- docs/MCP-FACTORY.md — Factory overview
- docs/reports/ — 5 pipeline evaluation reports
- docs/research/ — Browser MCP research

=== RULES ESTABLISHED ===
- CONTRIBUTING.md — All MCP work MUST go in this repo
- README.md — Full inventory of 37 servers + infra docs
- .gitignore — Updated for Python venvs

TOTAL: 37 MCP servers + full factory pipeline in one repo.
This is now the single source of truth for all MCP work.
2026-02-06 06:32:29 -05:00

608 lines
18 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://example.com/mcp-schema-2025-06-18.json",
"title": "MCP Protocol Schema (2025-06-18)",
"description": "JSON Schema for the MCP (Model Context Protocol) version 2025-06-18",
"type": "object",
"additionalProperties": false,
"required": ["jsonrpc"],
"properties": {
"jsonrpc": {
"type": "string",
"const": "2.0",
"description": "JSON-RPC version, must be 2.0"
},
"id": {
"type": ["string", "number"],
"description": "Request identifier (required for requests, not allowed for notifications)"
},
"method": {
"type": "string",
"description": "The method to invoke"
},
"params": {
"type": "object",
"description": "Method parameters"
},
"result": {
"type": ["object", "array", "string", "number", "boolean", "null"],
"description": "Result of the method invocation"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Error code"
},
"message": {
"type": "string",
"description": "Error message"
},
"data": {
"description": "Additional error data"
}
},
"required": ["code", "message"],
"description": "Error object"
}
},
"oneOf": [
{
"type": "object",
"required": ["jsonrpc", "method", "id"],
"description": "A request object (batching not supported in 2025-06-18)"
},
{
"type": "object",
"required": ["jsonrpc", "method"],
"not": {
"required": ["id"]
},
"description": "A notification object"
},
{
"type": "object",
"required": ["jsonrpc", "result", "id"],
"description": "A successful response object"
},
{
"type": "object",
"required": ["jsonrpc", "error", "id"],
"description": "An error response object"
}
],
"definitions": {
"initialize_request": {
"type": "object",
"required": ["protocolVersion", "capabilities", "clientInfo"],
"properties": {
"protocolVersion": {
"type": "string",
"const": "2025-06-18",
"description": "The protocol version the client supports"
},
"capabilities": {
"type": "object",
"description": "The capabilities of the client",
"properties": {
"tools": {
"type": "object",
"description": "Tool-related capabilities",
"properties": {
"listChanged": {
"type": "boolean",
"description": "Whether the client supports tools/list notifications"
},
"asyncSupported": {
"type": "boolean",
"description": "Whether the client supports async tool execution"
}
}
},
"resources": {
"type": "object",
"description": "Resource-related capabilities",
"properties": {
"subscribe": {
"type": "boolean",
"description": "Whether the client supports resource subscriptions"
},
"listChanged": {
"type": "boolean",
"description": "Whether the client supports resource list change notifications"
}
}
},
"roots": {
"type": "object",
"description": "Root-related capabilities",
"properties": {
"listChanged": {
"type": "boolean",
"description": "Whether the client supports root list change notifications"
}
}
},
"sampling": {
"type": "object",
"description": "Sampling-related capabilities"
},
"elicitation": {
"type": "object",
"description": "Elicitation-related capabilities (new in 2025-06-18)"
},
"logging": {
"type": "object",
"description": "Logging-related capabilities"
}
}
},
"clientInfo": {
"type": "object",
"description": "Information about the client",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description": "Name of the client"
},
"version": {
"type": "string",
"description": "Version of the client"
}
}
}
}
},
"initialize_response": {
"type": "object",
"required": ["protocolVersion", "capabilities", "serverInfo"],
"properties": {
"protocolVersion": {
"type": "string",
"const": "2025-06-18",
"description": "The protocol version the server selected"
},
"capabilities": {
"type": "object",
"description": "The capabilities of the server",
"properties": {
"tools": {
"type": "object",
"description": "Tool-related capabilities",
"properties": {
"listChanged": {
"type": "boolean",
"description": "Whether the server supports tools/list notifications"
}
}
},
"resources": {
"type": "object",
"description": "Resource-related capabilities",
"properties": {
"subscribe": {
"type": "boolean",
"description": "Whether the server supports resource subscriptions"
},
"listChanged": {
"type": "boolean",
"description": "Whether the server supports resource list change notifications"
}
}
},
"prompts": {
"type": "object",
"description": "Prompt-related capabilities",
"properties": {
"listChanged": {
"type": "boolean",
"description": "Whether the server supports prompt list change notifications"
}
}
},
"elicitation": {
"type": "object",
"description": "Elicitation-related capabilities (new in 2025-06-18)"
},
"logging": {
"type": "object",
"description": "Logging-related capabilities"
}
}
},
"serverInfo": {
"type": "object",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description": "Name of the server"
},
"version": {
"type": "string",
"description": "Version of the server"
}
}
}
}
},
"tools_list_request": {
"type": "object",
"properties": {}
},
"tools_list_response": {
"type": "object",
"required": ["tools"],
"properties": {
"tools": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "description", "inputSchema"],
"properties": {
"name": {
"type": "string",
"description": "Name of the tool"
},
"title": {
"type": "string",
"description": "Human-friendly display name for the tool (new in 2025-06-18)"
},
"description": {
"type": "string",
"description": "Description of the tool"
},
"inputSchema": {
"type": "object",
"description": "JSON Schema for tool input parameters (renamed from 'parameters' in 2025-06-18)"
},
"outputSchema": {
"type": "object",
"description": "JSON Schema for structured tool output (new in 2025-06-18)"
}
}
}
}
}
},
"tools_call_request": {
"type": "object",
"required": ["name", "arguments"],
"properties": {
"name": {
"type": "string",
"description": "Name of the tool to call"
},
"arguments": {
"type": "object",
"description": "Arguments to pass to the tool"
}
}
},
"tools_call_response": {
"type": "object",
"required": ["content", "isError"],
"properties": {
"content": {
"type": "array",
"items": {
"type": "object",
"required": ["type"],
"properties": {
"type": {
"type": "string",
"enum": ["text", "image", "audio", "resource", "resource_link"],
"description": "Type of content"
},
"text": {
"type": "string",
"description": "Text content (for text type)"
},
"data": {
"type": "string",
"description": "Base64-encoded data (for image/audio types)"
},
"mimeType": {
"type": "string",
"description": "MIME type of the content"
},
"uri": {
"type": "string",
"description": "URI of the resource (for resource/resource_link types)"
}
}
},
"description": "Array of content items returned by the tool"
},
"isError": {
"type": "boolean",
"description": "Whether the tool call resulted in an error"
},
"structuredContent": {
"type": "object",
"description": "Structured output conforming to outputSchema (new in 2025-06-18)"
}
}
},
"resources_list_request": {
"type": "object",
"properties": {}
},
"resources_list_response": {
"type": "object",
"required": ["resources"],
"properties": {
"resources": {
"type": "array",
"items": {
"type": "object",
"required": ["uri", "name"],
"properties": {
"uri": {
"type": "string",
"description": "URI of the resource"
},
"name": {
"type": "string",
"description": "Name of the resource"
},
"title": {
"type": "string",
"description": "Human-friendly display name for the resource"
},
"description": {
"type": "string",
"description": "Description of the resource"
},
"mimeType": {
"type": "string",
"description": "MIME type of the resource"
}
}
}
}
}
},
"resources_read_request": {
"type": "object",
"required": ["uri"],
"properties": {
"uri": {
"type": "string",
"description": "URI of the resource to read"
}
}
},
"resources_read_response": {
"type": "object",
"required": ["contents"],
"properties": {
"contents": {
"type": "array",
"items": {
"type": "object",
"required": ["uri"],
"properties": {
"uri": {
"type": "string",
"description": "URI of the content"
},
"text": {
"type": "string",
"description": "Text content (if applicable)"
},
"blob": {
"type": "string",
"description": "Base64-encoded binary content (if applicable)"
},
"mimeType": {
"type": "string",
"description": "MIME type of the content"
}
}
}
}
}
},
"prompts_list_request": {
"type": "object",
"properties": {}
},
"prompts_list_response": {
"type": "object",
"required": ["prompts"],
"properties": {
"prompts": {
"type": "array",
"items": {
"type": "object",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description": "Name of the prompt"
},
"title": {
"type": "string",
"description": "Human-friendly display name for the prompt"
},
"description": {
"type": "string",
"description": "Description of the prompt"
},
"arguments": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "description"],
"properties": {
"name": {
"type": "string",
"description": "Name of the argument"
},
"description": {
"type": "string",
"description": "Description of the argument"
},
"required": {
"type": "boolean",
"description": "Whether the argument is required"
}
}
},
"description": "Arguments accepted by the prompt"
}
}
}
}
}
},
"elicitation_create_request": {
"type": "object",
"required": ["schema", "prompt"],
"properties": {
"schema": {
"type": "object",
"description": "JSON Schema for the expected response (must be flat object with primitive properties)"
},
"prompt": {
"type": "string",
"description": "Human-readable prompt for the user"
}
},
"description": "Elicitation request (new in 2025-06-18)"
},
"elicitation_create_response": {
"type": "object",
"required": ["action"],
"properties": {
"action": {
"type": "string",
"enum": ["accept", "reject", "cancel"],
"description": "User's response to the elicitation request"
},
"content": {
"type": "object",
"description": "User-provided content (if action is 'accept')"
}
},
"description": "Elicitation response (new in 2025-06-18)"
},
"oauth_error_response": {
"type": "object",
"required": ["code", "message"],
"properties": {
"code": {
"type": "integer",
"const": -32001,
"description": "OAuth 2.1 authentication error code"
},
"message": {
"type": "string",
"description": "Error message"
},
"data": {
"type": "object",
"properties": {
"www_authenticate": {
"type": "string",
"description": "WWW-Authenticate header value as required by OAuth 2.1"
},
"scheme": {
"type": "string",
"const": "Bearer",
"description": "Authentication scheme"
},
"realm": {
"type": "string",
"description": "Authentication realm"
},
"scope": {
"type": "string",
"description": "Required OAuth scopes"
},
"error": {
"type": "string",
"description": "OAuth error code"
},
"error_description": {
"type": "string",
"description": "Human-readable error description"
}
},
"description": "OAuth 2.1 authentication error details"
}
},
"description": "OAuth 2.1 authentication error (new in 2025-06-18)"
},
"http_headers": {
"type": "object",
"properties": {
"Authorization": {
"type": "string",
"pattern": "^Bearer [A-Za-z0-9\\-._~+/]+=*$",
"description": "OAuth 2.1 Bearer token (required for authenticated requests)"
},
"MCP-Protocol-Version": {
"type": "string",
"const": "2025-06-18",
"description": "MCP protocol version header (required for 2025-06-18 HTTP requests)"
},
"Mcp-Session-Id": {
"type": "string",
"pattern": "^[\\x21-\\x7E]+$",
"description": "Session ID header (visible ASCII characters only)"
},
"Content-Type": {
"type": "string",
"const": "application/json",
"description": "Content type must be application/json"
},
"Accept": {
"type": "string",
"description": "Accept header for content negotiation"
},
"Origin": {
"type": "string",
"description": "Origin header (validated by server to prevent DNS rebinding attacks)"
}
},
"description": "HTTP headers for 2025-06-18 protocol"
},
"protocol_metadata": {
"type": "object",
"properties": {
"protocol_version": {
"type": "string",
"const": "2025-06-18"
},
"features": {
"type": "array",
"items": {
"type": "string",
"enum": [
"structured_tool_output",
"oauth_2_1_compliance",
"elicitation_support",
"no_json_rpc_batching",
"resource_links",
"protocol_version_headers",
"enhanced_security"
]
},
"description": "Features supported in 2025-06-18"
},
"breaking_changes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Breaking changes from previous versions"
}
},
"description": "Protocol metadata for 2025-06-18"
}
}
}