Skip to main content

Mapping Rules

This section defines the rules for transforming Semantic Manifest operations into MCP-compatible tool definitions.

Core Mapping

Manifest FieldMCP Tool FieldTransformation
operation_idtool_nameDirect mapping
descriptiondescriptionDirect mapping
parametersinput_schema.propertiesTransform to JSON Schema
Required parameter namesinput_schema.requiredExtract required field names
action_typesafety.execution_typeDirect mapping
risk_levelsafety.risk_levelDirect mapping
confirmation_requiredsafety.confirmation_requiredDirect mapping
idempotentsafety.idempotentDirect mapping

Parameter Transformation

Manifest parameters transform to JSON Schema properties:

Manifest parameter:

Manifest parameter definition
{
"cart_id": {
"type": "string",
"required": true,
"description": "The cart identifier"
}
}

Generated JSON Schema property:

Generated JSON Schema
{
"cart_id": {
"type": "string",
"description": "The cart identifier"
}
}

"cart_id" is added to the "required" array in the generated inputSchema.

Tool Name Generation

Tool names are derived from the intent field:

  • Replace . with _
  • Convert to snake_case
  • Example: checkout.beginbegin_checkout (verb-first for action clarity)

Complete Example

Manifest Operation:

Semantic Manifest — product.search
{
"intent": "product.search",
"entity": "product",
"operation_id": "product_search",
"description": "Search the product catalog",
"action_type": "read",
"parameters": {
"query": { "type": "string", "required": true, "description": "Search query" },
"category": { "type": "string", "required": false, "description": "Category filter" }
},
"scope": "catalog",
"risk_level": "none",
"idempotent": true
}

Generated MCP Tool:

Generated MCP tool — product_search
{
"tool_name": "product_search",
"description": "Search the product catalog",
"input_schema": {
"type": "object",
"properties": {
"query": { "type": "string", "description": "Search query" },
"category": { "type": "string", "description": "Category filter" }
},
"required": ["query"]
},
"safety": {
"execution_type": "read",
"risk_level": "none",
"idempotent": true,
"confirmation_required": false
}
}

Next Steps