{"slug":"oip-github-mcp","title":"What is an OIP GitHub MCP Object?","body":"## What this article explains\n\nThis article explains an OIP GitHub MCP object. An OIP GitHub MCP object connects the Object Invocation Protocol (OIP) to GitHub. It uses the Model Context Protocol (MCP).\n\nMCP is an open standard. An AI model connects to an MCP server over a session. A server is a computer program that provides services to other programs. The MCP server exposes tools, resources, and prompts. The model can call these.\n\nGitHub MCP lets an AI model interact with GitHub. It can read repositories. It can list issues. It can open pull requests. It can write comments. An OIP GitHub MCP object makes these GitHub actions available through OIP.\n\nOIP uses plain Uniform Resource Locators (URLs). A URL is a web address. OIP uses receipts. There is no persistent session. Any model that can open a URL can act with OIP.\n\n## OIP comparison\n\nGitHub MCP gives a model a tool surface for GitHub. OIP gives the miscsubjects.com build a proof-bearing object surface. An OIP object is a directory row on miscsubjects.com.\n\nYou invoke an OIP object. You use POST /api/dispatch {key, body}. Or you use GET /api/dispatch?invoke=KEY&body=... Every invocation lands in an append-only ledger. You get a receipt. The receipt is at /api/dispatch?receipt=inv_ID.\n\nAn MCP server is not a content-management system. An OIP object can use an MCP tool. The OIP object acts as a runner behind the MCP tool. OIP still needs its own article. It needs its own row contract. It needs an invocation record. It needs a receipt. It needs a replay path. It needs a repair path.\n\n## Machine shape\n\nAn OIP GitHub MCP object describes how to connect OIP to GitHub via MCP. It defines the MCP server. This is the address of the MCP server. It defines the tool name. This is the specific tool on the MCP server. It defines the input schema. This describes the data the tool expects. It uses JavaScript Object Notation (JSON) Schema for this. JSON is a standard format for sending data. It defines the GitHub resource. This is the specific part of GitHub to interact with. For example, a repository or an issue. It defines the output shape. This describes the data the tool will return. It also uses JSON Schema. It defines the auth boundary. This specifies how authentication works. An authentication token is a piece of data that proves your identity. It defines the OIP proof route. This is the URL where OIP records the invocation. An endpoint is a specific URL where an Application Programming Interface (API) receives requests.\n\nHere is an example of the machine-native JSON for an OIP GitHub MCP object:\n\n```json\n{\n  \"mcp_server\": \"https://mcp.github.com\",\n  \"tool_name\": \"github_repo_reader\",\n  \"input_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"repo_name\": {\n        \"type\": \"string\",\n        \"description\": \"The name of the GitHub repository\"\n      }\n    },\n    \"required\": [\"repo_name\"]\n  },\n  \"github_resource\": \"repository\",\n  \"output_shape\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"description\": {\n        \"type\": \"string\",\n        \"description\": \"Repository description\"\n      },\n      \"stars\": {\n        \"type\": \"integer\",\n        \"description\": \"Number of stars the repository has\"\n      },\n      \"url\": {\n        \"type\": \"string\",\n        \"format\": \"uri\",\n        \"description\": \"URL to the repository\"\n      }\n    }\n  },\n  \"auth_boundary\": \"github_app_token\",\n  \"oip_proof_route\": \"/api/dispatch\",\n  \"urls\": {\n    \"invocation_post\": \"https://miscsubjects.com/api/dispatch\",\n    \"invocation_get\": \"https://miscsubjects.com/api/dispatch?invoke=KEY&body=...\",\n    \"receipt\": \"https://miscsubjects.com/api/dispatch?receipt=inv_ID\",\n    \"article_view\": \"https://miscsubjects.com/a/oip-github-mcp\",\n    \"articles_list\": \"https://miscsubjects.com/api/articles\"\n  }\n}\n```\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-02 23:52 · model `@cf/meta/llama-3.3-70b-instruct-fp8-fast` · NEEDS WORK · JSON 9/10 · English 8/10 · zero-context human 6/10\n  - gaps named: MCP server; tool name; input schema; GitHub resource\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.","hero":null,"images":[],"style":{"accent":"#16324f","measure":860},"tags":["oip","object-invocation-protocol","protocol-specification","machine-native-json","primer"],"model":null,"ledger":null,"embeds":[],"widgets":[{"type":"stat","value":1,"label":"revision"},{"type":"note","title":"Zero-context rule","text":"A reader should understand the protocol unit, object contract, invocation route, receipt schema, and repair path from this page plus its machine bundle."},{"type":"note","title":"Machine-native rule","text":"The JSON is the executable map: object, routes, inputs, proof loop, ledger, and next article to open."}],"home":false,"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"}],"reviews":[],"extra":{"oip_virtual":true,"oip_type":"primer","count":1,"metric":"revision","primer":"oip-github-mcp","version":1,"author_model":"gemini/gemini-2.5-flash","revision_source":"revision"},"register":"oip_protocol","status":"published","revisions":0,"contributions":[],"provenance":[{"action":"generate","model":"system/oip_articles","ts":"2026-07-03T00:21:28-07:00","hash":"virtual-oip","tokens_in":0,"tokens_out":0}],"energy":{"passes":1,"tokens_in":0,"tokens_out":0,"tokens_total":0,"cost_usd":0,"models":{"system/oip_articles":1},"head":"virtual-oip"},"posted_at":"2026-07-02T00:00:00.000Z","created_at":"2026-07-02T00:00:00.000Z","updated_at":"2026-07-03T00:21:28-07:00"}