Skip to main content

Protocol vs Runtime

MCP and IntentusNet operate at different layers. Understanding this distinction helps you design better integrations.

The Distinction​

Protocol Layer (MCP)​

MCP defines how to communicate:

Message Format​

{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "search_documents",
"arguments": {
"query": "climate change",
"limit": 10
}
}
}

Tool Discovery​

{
"tools": [
{
"name": "search_documents",
"description": "Search the document database",
"inputSchema": {
"type": "object",
"properties": {
"query": {"type": "string"},
"limit": {"type": "integer"}
}
}
}
]
}

What MCP Specifies​

ConcernMCP Specification
Message encodingJSON-RPC 2.0
Tool declarationSchema format
Context passingPredefined fields
Error formatJSON-RPC errors

What MCP Doesn't Specify​

ConcernNot Specified
Execution orderUp to implementation
Retry behaviorUp to implementation
RecordingUp to implementation
PolicyUp to implementation

Runtime Layer (IntentusNet)​

IntentusNet defines how to execute:

Routing Semantics​

# Deterministic agent selection
agents = registry.find_by_capability("search_documents")
ordered = sort_deterministically(agents)
selected = ordered[0] # Always the same for same input

Execution Recording​

# Every execution recorded
record = ExecutionRecord(
header=ExecutionHeader(
executionId="exec-123",
envelopeHash="sha256:...",
replayable=True
),
events=[...],
finalResponse={...}
)

Policy Enforcement​

# Policy checked before execution
if not policy_engine.allows(intent, agent, role):
return PolicyDenialError(...)

What IntentusNet Specifies​

ConcernIntentusNet Specification
Agent selectionDeterministic ordering
Execution recordingImmutable records
ReplayReturn recorded output
PolicyAllow/deny/filter
Error codesTyped enum

What IntentusNet Doesn't Specify​

ConcernNot Specified
Wire formatUse any transport
Tool schemaUse MCP or custom
Discovery protocolRegistry-based

Complementary Roles​

┌─────────────────────────────────────────────────────────────┐
│ Your Application │
├─────────────────────────────────────────────────────────────┤
│ │
│ MCP Client (Claude) │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ MCP Server │ │
│ │ • Handles JSON-RPC │ │
│ │ • Exposes tool schema │ │
│ │ • Parses requests │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ MCPAdapter │ │
│ │ • Maps MCP → IntentEnvelope │ │
│ │ • Maps AgentResponse → MCP │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ IntentusNet Runtime │ │
│ │ • Deterministic routing │ │
│ │ • Execution recording │ │
│ │ • Policy enforcement │ │
│ │ • Crash recovery │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Your Tools │ │
│ │ • Business logic │ │
│ │ • External API calls │ │
│ │ • Database operations │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

Decision Matrix​

NeedSolution
Expose tools to ClaudeMCP
Standard message formatMCP
Tool discoveryMCP
Deterministic routingIntentusNet
Execution recordingIntentusNet
Replay capabilityIntentusNet
Policy enforcementIntentusNet
Crash recoveryIntentusNet

Example: Using Both​

# MCP Server: Protocol handling
from mcp import Server

server = Server()

@server.list_tools()
async def list_tools():
# MCP: Tool discovery
return [
{"name": "search", "description": "Search docs", ...},
{"name": "create", "description": "Create doc", ...},
]

@server.call_tool()
async def call_tool(name: str, arguments: dict):
# IntentusNet: Execution semantics
result = adapter.handle_mcp_request({
"tool": name,
"parameters": arguments
})

# MCP: Response format
return {"content": [{"type": "text", "text": json.dumps(result)}]}

When You Need Which​

Need MCP Only​

  • Prototyping with Claude
  • Simple tool exposure
  • No audit requirements
  • Stateless tools

Need IntentusNet Only​

  • Internal agent systems
  • No external model clients
  • Strong execution guarantees needed
  • Custom wire protocols

Need Both​

  • Production Claude integration
  • Audit/compliance requirements
  • Complex multi-tool workflows
  • Fallback/reliability needs

Summary​

AspectMCPIntentusNet
FocusCommunicationExecution
ScopeProtocolRuntime
StandardsMessage formatExecution semantics
ComplementaryYesYes

They work together: MCP defines how to talk, IntentusNet defines how to execute reliably.

See Also​