Landscape
Where HCP sits beside Agent Skills, MCP, Agent Plugins, A2UI and A2A, the question each one answers, and how they fit together in one stack.
HCP sits beside five other open agent standards, each of which answers one question well, and trouble starts when one is stretched to answer the others. HCP answers the install question (why that needs a standard) and composes with the rest, which the sections below lay out standard by standard.
The map#
| Standard | Question it answers | Unit | Governance |
|---|---|---|---|
| Agent Skills | How does an agent learn to use a capability? | SKILL.md directory | Open spec, multi-vendor clients |
| MCP | How does a model call a tool over a wire? | MCP server (stdio / Streamable HTTP) | Open spec, steering committee |
| Agent Plugins | How are Skills and MCP servers packaged so clients can load them consistently? | Plugin directory (plugin.json, skills/, mcp.json) | Open spec, TSC |
| A2UI | How does an agent render generative UI? | UI messages / catalogs | Open spec |
| A2A | How do agents talk to each other? | Agent cards, tasks | Open spec |
| HCP | How does a harness install, authorise, bind, sandbox, and execute a capability, and hear from it? | Harness Pack | Open spec, RFC process |
How they compose#
Agent Skill (SKILL.md) teach
│
▼
Harness Pack (HCP) install
commands · Policy · Binding · Sense · Skill · Adapter
│ │
▼ ▼
CLI / JSON face optional MCP export transport
│
▼
host agent loop · UI (A2UI) · other agents (A2A)A pack's Skill (HARNESS.md) follows the Agent Skills principles (short lead,
examples, anti-patterns, pointers) and is narrower on purpose, because it
teaches how to invoke this pack's commands correctly. hcpx activate copies it
to $HCP_HOME/skills/<id>/SKILL.md, so hosts that already speak Agent Skills
get progressive disclosure with no extra work. A Skill without a pack still
teaches, but a pack without a Skill fails lint.
A runtime can expose packs to MCP-only hosts through the
reference export, a single MCP tool hcp that forwards to the runtime, so every
call still passes Policy and Binding and the pack stays the source of record. A
UI host speaking A2UI invokes pack commands the same way an agent does and may
subscribe to Sense for chrome, but it never owns mint or Policy.
Projections holds the normative rules for
these generated surfaces and exports.
HCP and MCP#
| MCP | HCP | |
|---|---|---|
| Category | Transport between model and tool server | Install unit for a harness |
| You ship | A server process (stdio or HTTP) | Three files describing an existing CLI or API |
| Identity of a capability | Tool name on a server | pack_id + verb_key, projected to CLI, JSON, Skill, and optionally MCP |
| Authorisation | OAuth 2.1 between client and server | Runtime capability grants per Principal; pack declares only effect class and land |
| Credentials | Server holds them | Runtime hub mints them; pack names a mode and never holds a secret |
| Writes | Tool annotations (hints) | Policy operation: write + confirm enforced by the runtime before any adapter runs |
| Outbound events | Notifications within a session | Sense: declared triggers, separate grant, cannot mint or act |
| Human at a terminal | Not a first-class path | The CLI face is the primary face |
| Sandbox | Client's concern | Default; bin allow-list and cwd jail are part of the profile |
The reverse does not hold: an MCP server cannot be the unit you install, because it carries no Policy, Binding mode, Sense declaration or CLI face.
HCP and Agent Plugins#
Agent Plugins defines a portable directory for Skills and MCP servers, and HCP defines one for an executable capability with rules. Both are vendor neutral, and both say "put these files here and clients will find them".
| Agent Plugins | HCP | |
|---|---|---|
| Manifest | plugin.json (name, version, metadata) | surface.json (id, adapter, Binding mode, commands) |
| Teaching | skills/*/SKILL.md | HARNESS.md (copied to a SKILL.md on activate) |
| Execution | mcp.json pointing at servers | Named commands run through an Adapter under Policy |
| Permissions | Left to each client | Policy rows + five capability grants, enforced by the runtime |
| Outbound | None | Sense |
A plugin's directory could carry an HCP pack next to its Skills and MCP servers, with the pack as what the harness installs and the plugin as how a client discovers it. That nesting is a proposal on the Roadmap and has not shipped.
Name disambiguation#
These names mean something narrower here than elsewhere, and the glossary defines the rest.
| Term | Meaning here |
|---|---|
| Harness | The thing driving an agent; in HCP, the runtime that installs packs |
| Skill | HARNESS.md, the pack's teaching file; or an Agent Skill in general |
| Surface | Legacy filename surface.json = the pack manifest. Not a UI surface |
| Agent teaching pack | An agent's identity and instructions. Invokes HCP; is not an HCP pack |
| Connector | Not an HCP type. Vendor SDK glue inside a product runtime |