{"slug":"oip-mcp-comparison","title":"OIP and MCP Comparison","body":"OIP (Object Invocation Protocol) defines a stateless interaction model for invoking work objects.\nMCP (Model Context Protocol) defines a stateful session model for connecting an AI model to a server.\nOIP invocations are proven by receipts.\nMCP sessions manage tools, resources, and prompts.\nThis article specifies the distinct interaction models of OIP and MCP.\n\n## OIP (Object Invocation Protocol)\nOIP (Object Invocation Protocol) defines a stateless protocol for invoking work objects. An OIP invocation uses `POST /api/dispatch {key, body}` or `GET /api/dispatch?invoke=KEY&body=...` to dispatch a work object. Every OIP invocation appends to the ledger and returns a receipt at `/api/dispatch?receipt=inv_ID`. The OIP unit is the work object. The OIP proof is the receipt. The OIP loop is object, invoke, ledger, receipt, replay, repair.\n\n## MCP (Model Context Protocol)\nMCP (Model Context Protocol) defines a stateful protocol where a model connects to a server that exposes tools, resources, and prompts over a session. An MCP session manages the context for an AI model's interactions. An MCP server provides an Application Programming Interface (API) for model interaction. Further details on MCP are available in the [MCP documentation](/a/mcp-documentation-placeholder).\n\n## OIP and MCP Interaction Models\nOIP and MCP define distinct interaction models. OIP uses plain Uniform Resource Locators (URLs) for invocation; MCP uses a persistent session for interaction. OIP interactions are stateless; MCP interactions are stateful. OIP invocations are proven by receipts; MCP sessions manage context. Any entity capable of opening a URL performs an OIP invocation; an AI model connects to an MCP server over a session.\n\n## OIP Invocation Example\nAn OIP-conformant client performs an invocation by sending a `POST /api/dispatch {key, body}` or `GET /api/dispatch?invoke=KEY&body=...` request. This example demonstrates an OIP invocation using `curl`:\n\n```bash\ncurl -X POST https://miscsubjects.com/api/dispatch \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"key\": \"example-object\", \"body\": {\"message\": \"Hello, OIP!\"}}'\n```\n\n## OIP Receipt Rule\nAn OIP invocation generates a receipt. The receipt for an invocation is retrieved from `/api/dispatch?receipt=inv_ID`. A receipt proves the successful dispatch and ledger append of an OIP work object. This example demonstrates retrieving an OIP receipt using `curl`:\n\n```bash\ncurl https://miscsubjects.com/api/dispatch?receipt=inv_ID_12345\n```\n\n## OIP and MCP Conformance Rule\nAn OIP-conformant client performs an invocation by sending a `POST /api/dispatch {key, body}` or `GET /api/dispatch?invoke=KEY&body=...` request. An OIP-conformant server appends the invocation to a ledger and returns a receipt at `/api/dispatch?receipt=inv_ID`. An MCP-conformant model establishes a persistent session with an MCP server. An MCP-conformant server exposes tools, resources, and prompts to the connected model.\n## Latest clarity reviews (live)\n\nFresh models are sent this article's bundle and asked two separate questions: how clear is the machine JSON, and how clear is the English body. Scores are 0 to 10. The full history is in the append-only ledger.\n\n- 2026-07-03 02:35 · model `@cf/meta/llama-3.3-70b-instruct-fp8-fast` · NEEDS WORK · JSON 9/10 · English 8/10 · zero-context human 7/10\n  - gaps named: Detailed explanation of MCP; Comparison of OIP and MCP in different scenarios\n\nHow the loop self-corrects: a failing review queues a model revision of this article (a new append-only version). A missing concept named by a reviewer queues a brand-new machine-written article, which then enters the same review cycle.","register":"oip_protocol","tags":["oip","object-invocation-protocol","protocol-specification","machine-native-json","dynamic"],"style":{"accent":"#16324f","measure":860},"claims":[{"id":"oip-c1","tier":"system","text":"The OIP article layer is generated from live directory rows, so it documents the objects that actually run the reference implementation.","who_claims":"system/oip_articles","source_ids":["oip-s3","oip-s4"]},{"id":"oip-c2","tier":"system","text":"The OIP operating path is caller to directory object to dispatch runner to invocation ledger to receipt.","who_claims":"system/oip_articles","source_ids":["oip-s1"]},{"id":"oip-c3","tier":"system","text":"Every executable capability in the reference implementation is reachable as an OIP object with a human article, a machine document, invocation history, and receipt path.","who_claims":"system/oip_articles","source_ids":["oip-s2","oip-s3"]},{"id":"oip-c4","tier":"system","text":"Tap & Go is the copy primitive: one drop carries credential, protocol, tree, search, execute, and receipt instructions without a separate token-map-bundle assembly step.","who_claims":"system/oip_articles","source_ids":["oip-s2"]},{"id":"oip-c5","tier":"system","text":"OIP receipts are the proof object for actions: they record request, response, actor, links, replay, repair, and lineage.","who_claims":"system/oip_articles","source_ids":["oip-s2","oip-s5"]}],"sources":[{"id":"oip-s1","type":"protocol","title":"BUILD_SPEC object invocation path","url":"https://miscsubjects.com/api/file/docs/BUILD_SPEC.md","summary":"Defines directory rows, dispatch, ledger, and the escalation path for changing the build.","quote":"Run anything: POST https://miscsubjects.com/api/dispatch {key, body}","claim_ids":["oip-c2"],"link_status":"ok","hash":"oipbuildspec0001"},{"id":"oip-s2","type":"protocol","title":"Object Invocation Protocol spec","url":"https://miscsubjects.com/api/file/docs/OIP.md","summary":"Defines OIP surfaces, invariant loop, receipt/replay/repair, and invocation envelopes.","quote":"identify, explain, invoke, ledger, yield","claim_ids":["oip-c3","oip-c4","oip-c5"],"link_status":"ok","hash":"oipspec00000002"},{"id":"oip-s3","type":"protocol","title":"Live OIP capability tree","url":"https://miscsubjects.com/api/dispatch?map=1&format=markdown","summary":"Public recursive capability tree.","quote":"root > shelf > system article > capability article > receipt","claim_ids":["oip-c1","oip-c3"],"link_status":"ok","hash":"oipmap0000000002"},{"id":"oip-s4","type":"protocol","title":"Directory row documentation","url":"https://miscsubjects.com/api/dispatch?key=OIP_TREE&format=markdown","summary":"Capability articles are generated from live rows.","quote":"Machine Contract","claim_ids":["oip-c1"],"link_status":"ok","hash":"oiprow0000000003"},{"id":"oip-s5","type":"protocol","title":"Invocation ledger","url":"https://miscsubjects.com/api/invocations","summary":"Append-only invocation records and receipt links.","quote":"invocations","claim_ids":["oip-c5"],"link_status":"ok","hash":"oipinvocations0005"}],"prov":{"model":"system/oip_articles","action":"generate"}}