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
intentname. → _
descriptiondescriptionDirect mapping
required_parameters, optional_parametersinput_schema.propertiesTransform to JSON Schema
required_parameters[].nameinput_schema.requiredCollect names
action_typemetadata.action_typeDirect mapping
risk_levelmetadata.risk_levelDirect mapping
confirmation_requiredmetadata.confirmation_requiredDirect mapping
idempotentmetadata.idempotentDirect mapping

The full table, including scope, roles and conditions, is in the Tool Mapping Rules Reference.

Parameter Transformation​

Manifest parameters transform to JSON Schema properties:

Manifest parameter:

Manifest parameter definition
{ "required_parameters": [{ "name": "cart_id", "type": "string", "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 of the generated input_schema because it is a required parameter.

Tool Name Generation​

Tool names are derived from the intent field by replacing . with _:

  • product.search → product_search
  • checkout.begin → checkout_begin

Complete Example​

Manifest Operation:

Semantic Manifest — product.search
{
"intent": "product.search",
"entity": "product",
"action_type": "read",
"operation_id": "product_search",
"description": "Search the product catalog",
"required_parameters": [{ "name": "query", "type": "string", "description": "Search query" }],
"optional_parameters": [
{ "name": "category", "type": "string", "description": "Category filter" }
],
"risk_level": "none",
"idempotent": true,
"scope": "public"
}

Generated MCP Tool:

Generated MCP tool — product_search
{
"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"]
},
"metadata": {
"action_type": "read",
"risk_level": "none",
"idempotent": true,
"confirmation_required": false,
"approval_required": false,
"source_intent": "product.search",
"source_entity": "product"
}
}

Next Steps​