# Harness Context Protocol > Skills teach. MCP connects. HCP installs. Harness Context Protocol is the open standard for installing capabilities into any agent harness. A Harness Pack is three files (a manifest of named commands, a policy, and a skill) that a runtime can lint, authorise, and execute. Protocol version: HCP/1.1 (Draft). Vendor-neutral open specification. Agents should fetch markdown twins (`Accept: text/markdown` or `.md` URLs), or connect to the MCP server. ## Start here - [Documentation](https://harnesscontextprotocol.dev/docs.md): Entry to the docs. - [What is HCP](https://harnesscontextprotocol.dev/docs/introduction/what-is-hcp.md): The one-page answer. - [Quickstart](https://harnesscontextprotocol.dev/docs/quickstart.md): Build a pack, implement a runtime, adopt a host. - [Specification](https://harnesscontextprotocol.dev/docs/specification.md): Normative HCP/1. - [Glossary](https://harnesscontextprotocol.dev/docs/reference/glossary.md): Terms defined once. - [MCP server](https://harnesscontextprotocol.dev/mcp): list_pages, search, get_page. - [OpenAPI](https://harnesscontextprotocol.dev/openapi.json): HTTP surface. - [Full text](https://harnesscontextprotocol.dev/llms-full.txt): Every page concatenated. - [GitHub](https://github.com/harnesscontextprotocol): Source repositories. ## Introduction - [Architecture](https://harnesscontextprotocol.dev/docs/introduction/architecture.md): One pack, two isolated loops. Execute runs named commands inbound; Sense announces triggers outbound. Both share Policy, Binding, and Principal. - [Design principles](https://harnesscontextprotocol.dev/docs/introduction/design-principles.md): The twelve rules that every conforming pack, runtime, and host follows, and the reasoning behind each. - [Introduction](https://harnesscontextprotocol.dev/docs/introduction.md): What HCP is, why it exists, how the two loops fit together, and where it sits next to Skills, MCP, and Agent Plugins. - [Landscape](https://harnesscontextprotocol.dev/docs/introduction/landscape.md): How HCP relates to Agent Skills, MCP, Agent Plugins, A2UI, and A2A. What each standardises, and how they compose. - [Versioning](https://harnesscontextprotocol.dev/docs/introduction/versioning.md): How the protocol, packs, and the reference SDK are versioned, and what compatibility each promises. - [What is HCP?](https://harnesscontextprotocol.dev/docs/introduction/what-is-hcp.md): An open standard for installing a capability into any agent harness, as a portable pack that a runtime can authorise, sandbox, and execute. - [Why HCP exists](https://harnesscontextprotocol.dev/docs/introduction/why-hcp.md): Agent stacks solved teaching and transport. Nobody standardised install, so every product invented a private connector schema. ## Quickstart - [Adopt in a host](https://harnesscontextprotocol.dev/docs/quickstart/adopt-a-host.md): Give an agent product native pack intake. Activated packs become host-native tool catalogs, Skills, and rules, all generated from the packs. - [Build a pack](https://harnesscontextprotocol.dev/docs/quickstart/build-a-pack.md): Wrap a CLI you already have into a Harness Pack. Copy a gold pack, change four fields, write one policy row per command, lint, exec. - [Implement a runtime](https://harnesscontextprotocol.dev/docs/quickstart/implement-a-runtime.md): Build the thing that loads packs, enforces grants, mints Binding, sandboxes adapters, and reports availability, with the reference SDK or from scratch. - [Quickstart](https://harnesscontextprotocol.dev/docs/quickstart.md): Pick the path that matches what you are building (a pack, a runtime, or a host integration) and get to a working exec in minutes. ## Specification - [§9 Authorization](https://harnesscontextprotocol.dev/docs/specification/authorization.md): Normative authorisation model: Principal, scope, the five capabilities, evaluation order, denial reasons, and audit attribution. - [§8 Binding](https://harnesscontextprotocol.dev/docs/specification/binding.md): Normative rules for credential binding: one mode per pack, hubs, families, fail-closed mint, explicit mock, connect, and health. - [§14 Conformance](https://harnesscontextprotocol.dev/docs/specification/conformance.md): What it means to conform to HCP/1.1 as a pack, a runtime, or a host, and the executable vectors that back the claims. - [§6 Execute](https://harnesscontextprotocol.dev/docs/specification/execute.md): Normative definition of the inbound loop: the exec envelope, the fail-closed pipeline, wrap argv rendering, the result envelope, and the twin face. - [Specification](https://harnesscontextprotocol.dev/docs/specification.md): Harness Context Protocol HCP/1.1, the normative requirements for packs, runtimes, and hosts. Status, conformance language, and table of contents. - [§11 Lifecycle](https://harnesscontextprotocol.dev/docs/specification/lifecycle.md): Normative pack lifecycle (lint, install, activate, connect, exec), the four availability flags, and the store. - [§3 Manifest](https://harnesscontextprotocol.dev/docs/specification/manifest.md): Normative schema for surface.json (identity, adapter, Binding, commands, triggers, protocol metadata) and the validation a runtime performs. - [§2 Pack model](https://harnesscontextprotocol.dev/docs/specification/pack-model.md): Normative requirements for the pack directory, its three files, identity, planes, and the invariants every pack satisfies. - [§4 Policy](https://harnesscontextprotocol.dev/docs/specification/policy.md): Normative schema for policy.json (operation, land, confirm), with coverage rules and the semantics runtimes must enforce. - [§12 Projections](https://harnesscontextprotocol.dev/docs/specification/projections.md): Normative rules for how a pack appears on other surfaces: CLI grammar, host tool naming, the four-faces rule, and export to MCP or A2UI. - [§10 Sandbox](https://harnesscontextprotocol.dev/docs/specification/sandbox.md): Normative execution posture. Sandbox by default with bin allow-list, cwd jail, and no ambient credentials; native-local only by explicit opt-in. - [§7 Sense](https://harnesscontextprotocol.dev/docs/specification/sense.md): Normative definition of the outbound loop: trigger declaration, isolation from Execute, the sense.enable grant, activation, and what a runtime may and may not deliver. - [§5 Skill](https://harnesscontextprotocol.dev/docs/specification/skill.md): Normative requirements for HARNESS.md: presence, content constraints, the copy on activate, and drift with the manifest. - [§1 Terminology](https://harnesscontextprotocol.dev/docs/specification/terminology.md): Normative definitions of every object in the protocol, and what each is explicitly not. - [§13 Versioning](https://harnesscontextprotocol.dev/docs/specification/versioning.md): Normative versioning: the protocol version, the manifest's protocol pin, compatibility promises, and deprecation. ## Reference - [CLI](https://harnesscontextprotocol.dev/docs/reference/cli.md): Every hcp command, with its arguments, output shape, and exit codes, and the store the CLI manages. - [Errors](https://harnesscontextprotocol.dev/docs/reference/errors.md): Every lint issue kind and runtime error string the reference implementation emits, what causes it, and how to fix it. - [FAQ](https://harnesscontextprotocol.dev/docs/reference/faq.md): Short answers to the questions people ask first about HCP: how it relates to MCP and Skills, what a pack is, where credentials live, and what a runtime must do. - [Glossary](https://harnesscontextprotocol.dev/docs/reference/glossary.md): Every HCP term, one line each, with a link to where it is defined. - [Reference](https://harnesscontextprotocol.dev/docs/reference.md): CLI, SDK, JSON Schema, error strings, glossary, FAQ, and non-goals. - [Non-goals](https://harnesscontextprotocol.dev/docs/reference/non-goals.md): What HCP/1.x deliberately does not do, and why. Each item is a decision, revisable only by RFC. - [Schemas](https://harnesscontextprotocol.dev/docs/reference/schemas.md): JSON Schema for surface.json, policy.json, the exec envelope, the result envelope, and grants, derived from the reference SDK's Zod definitions. - [SDK](https://harnesscontextprotocol.dev/docs/reference/sdk.md): The TypeScript reference SDK: Hcp facade, runtime drivers, loaders and lints, grants, availability, generation, host adoption, and HarnessAgent. ## Documentation - [Harness Context Protocol](https://harnesscontextprotocol.dev/docs.md): The open standard for installing capabilities into any agent harness. Skills teach the agent, MCP connects it to tools, and HCP installs the capability. ## Optional ## Concepts - [Adapter](https://harnesscontextprotocol.dev/docs/concepts/adapter.md): How a command reaches the world, whether wrap, composite, openapi, or sense_only. An implementation detail beneath the pack, replaceable without changing identity. - [Binding](https://harnesscontextprotocol.dev/docs/concepts/binding.md): How a pack gets credentials without ever holding one. Modes, hubs, families, and the fail-closed mint. - [Command](https://harnesscontextprotocol.dev/docs/concepts/command.md): A named operation on the pack's CLI, with a twin face (CLI and JSON) that shares one Policy, one Binding, and one Adapter. - [Concepts](https://harnesscontextprotocol.dev/docs/concepts.md): The objects HCP names: pack, command, Policy, Binding, Sense, Skill, Adapter, Principal, Invoker, runtime, and lifecycle. - [Invoker](https://harnesscontextprotocol.dev/docs/concepts/invoker.md): Whoever runs a command, whether a human, an agent, an API, or a UI. All Invokers run the same command under one Policy and one Binding, and none redefines either. - [Lifecycle](https://harnesscontextprotocol.dev/docs/concepts/lifecycle.md): A pack moves through observable states (lint, install, activate, connect, availability, exec), and each one fails closed. - [Pack](https://harnesscontextprotocol.dev/docs/concepts/pack.md): The Harness Pack is the install unit of HCP, a directory of three files that declares commands, rules, and teaching, and never executes anything itself. - [Policy](https://harnesscontextprotocol.dev/docs/concepts/policy.md): Two axes and a confirm flag per command and per trigger. Pack-local rules that runtime grants scale, kept deliberately small. - [Principal](https://harnesscontextprotocol.dev/docs/concepts/principal.md): The acting identity on every exec, answering who asked. Distinct from Binding, which answers which credentials. A runtime concept that packs never embed. - [Runtime](https://harnesscontextprotocol.dev/docs/concepts/runtime.md): The harness is the runtime. It loads packs, authorises, mints Binding, executes Adapters in a sandbox, routes Sense, and reports availability. Open format; runtime may be proprietary. - [Sense](https://harnesscontextprotocol.dev/docs/concepts/sense.md): The outbound loop. A pack may announce that the world changed, under Policy and a separate grant, without the power to mint or act. - [Skill](https://harnesscontextprotocol.dev/docs/concepts/skill.md): HARNESS.md is one screen that teaches humans and agents how to invoke the pack's commands correctly. It is required and is copied to SKILL.md on activate. ## Packs - [Best practices](https://harnesscontextprotocol.dev/docs/packs/best-practices.md): What separates a pack agents use correctly from one they fumble. Naming, scoping, Policy, Skill, Binding, and the mistakes that show up in review. - [Pack classes](https://harnesscontextprotocol.dev/docs/packs/classes.md): Five shapes almost every pack falls into (public read, gated write, linked channel, emit-only, control). Pick one, copy the sample, change four fields. - [CLI projection](https://harnesscontextprotocol.dev/docs/packs/cli-projection.md): The CLI face of every command. Grammar, agent-safe rules, how cli[] renders from JSON args, and the four-faces naming rule. - [Examples](https://harnesscontextprotocol.dev/docs/packs/examples.md): The gold packs that ship with the reference implementation (transit, ledger, echo, and the hcp-cli bootstrap pack) and what each one proves. - [Build packs](https://harnesscontextprotocol.dev/docs/packs.md): How to author a Harness Pack: layout, manifest, policy, skill, classes, wrap, CLI projection, triggers, and tests. - [Pack layout](https://harnesscontextprotocol.dev/docs/packs/layout.md): Three files in one flat directory. Copy a gold pack; change id, bin, commands, and Binding mode. Nothing else is required. - [Manifest](https://harnesscontextprotocol.dev/docs/packs/manifest.md): surface.json field by field. Identity, adapter, Binding, named commands, triggers, and the optional metadata HCP/1.1 adds. - [Policy file](https://harnesscontextprotocol.dev/docs/packs/policy-file.md): policy.json field by field. One row per command and per trigger, with operation, land, and the confirm gate. - [Skill file](https://harnesscontextprotocol.dev/docs/packs/skill-file.md): How to write HARNESS.md so an agent invokes your pack correctly on the first try. Structure, the lead, examples, anti-patterns, and a checklist. - [Testing](https://harnesscontextprotocol.dev/docs/packs/testing.md): Lint rules, the proof script every pack ships, the twin-face check, and how the conformance vectors run in CI. - [Triggers](https://harnesscontextprotocol.dev/docs/packs/triggers.md): Authoring Sense. When to declare a trigger, how to name and police it, and how it composes with Execute on the same pack. - [Wrap a CLI](https://harnesscontextprotocol.dev/docs/packs/wrap-a-cli.md): Turn a domain CLI you already ship into a conforming pack. Installer family, connect, doctor, gated writes, entity arguments, and the control/runtime split. ## Runtimes - [Authorization](https://harnesscontextprotocol.dev/docs/runtimes/authorization.md): How HCP scales from a local demo to multi-tenant RBAC without packing ACL tables into packs. Principals, lands, five capability grants, evaluation order, audit. - [Runtime conformance](https://harnesscontextprotocol.dev/docs/runtimes/conformance.md): The executable vectors a runtime must pass, the checklist behind them, and how to run them against your own driver. - [Execution](https://harnesscontextprotocol.dev/docs/runtimes/execution.md): The Execute loop from the runtime's side. The exec envelope, the fail-closed pipeline, wrap argv rendering, and the result shape. - [Build runtimes](https://harnesscontextprotocol.dev/docs/runtimes.md): What a conforming HCP runtime owns (load, lint, authorise, gate, mint, execute, sandbox, audit, report, route Sense) and what it is free to keep private. - [Proprietary runtimes](https://harnesscontextprotocol.dev/docs/runtimes/proprietary-runtimes.md): Any company can ship a private HCP runtime with its own catalog, credential hub, RBAC, and sink on the open pack format, without forking it or publishing internals. - [Sandbox](https://harnesscontextprotocol.dev/docs/runtimes/sandbox.md): Sandbox is the default execution posture, with a bin allow-list, a cwd jail, and no ambient credentials. Native-local is an explicit trust decision. - [Sense delivery](https://harnesscontextprotocol.dev/docs/runtimes/sense-delivery.md): The runtime side of the outbound loop. Activation independent of Execute, route selection, sinks, and which delivery mechanisms are and are not HCP types. ## Hosts - [AI SDK](https://harnesscontextprotocol.dev/docs/hosts/ai-sdk.md): HarnessAgent wraps the runtime as a Vercel AI SDK ToolLoopAgent with grant-filtered tools, write approvals, and progressive Skills. Activate packs; never hand-register tools. - [Context optimization](https://harnesscontextprotocol.dev/docs/hosts/context-optimization.md): How hosts load packs into an agent's context without flooding it, using a stable prefix, Skill leads, on-demand full Skills, grant filtering, and step compaction. - [Cursor](https://harnesscontextprotocol.dev/docs/hosts/cursor.md): Adopt HCP into Cursor as a native surface with a session pointer, generated Skills per pack, and an always-on rule. Packs stay the source of record. - [Adopt in hosts](https://harnesscontextprotocol.dev/docs/hosts.md): HCP is the native install surface for agent hosts. One generation pipeline turns activated packs into host-native tool catalogs, Skills, and rules, with no MCP bridge in between. - [OpenCode](https://harnesscontextprotocol.dev/docs/hosts/opencode.md): Adopt HCP into OpenCode natively with an hcp block in opencode.json, the plugin, and generated tools that call hcp exec under the hood. ## Community - [Governance](https://harnesscontextprotocol.dev/docs/community/governance.md): Who decides what in HCP: the repositories, the roles, how decisions are made, and the licence terms that keep the protocol open. - [Implementations](https://harnesscontextprotocol.dev/docs/community/implementations.md): Known runtimes, hosts, SDKs, and packs that implement HCP, with the protocol version and conformance target each claims. - [Community](https://harnesscontextprotocol.dev/docs/community.md): Governance, the RFC process, roadmap, known implementations, and how to report a vulnerability. - [RFC process](https://harnesscontextprotocol.dev/docs/community/rfc-process.md): How to propose a change to the protocol: when an RFC is needed, the template, the lifecycle from Draft to Accepted, and what happens after. - [Roadmap](https://harnesscontextprotocol.dev/docs/community/roadmap.md): Where HCP is going: what is shipped, what is proposed for 1.2, what is reserved for 2.0, and what mature protocols have that HCP still needs. - [Security](https://harnesscontextprotocol.dev/docs/community/security.md): The HCP threat model, what the protocol guarantees and what it leaves to runtimes, and how to report a vulnerability.