.md

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.

On this page

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#

StandardQuestion it answersUnitGovernance
Agent SkillsHow does an agent learn to use a capability?SKILL.md directoryOpen spec, multi-vendor clients
MCPHow does a model call a tool over a wire?MCP server (stdio / Streamable HTTP)Open spec, steering committee
Agent PluginsHow are Skills and MCP servers packaged so clients can load them consistently?Plugin directory (plugin.json, skills/, mcp.json)Open spec, TSC
A2UIHow does an agent render generative UI?UI messages / catalogsOpen spec
A2AHow do agents talk to each other?Agent cards, tasksOpen spec
HCPHow does a harness install, authorise, bind, sandbox, and execute a capability, and hear from it?Harness PackOpen 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#

MCPHCP
CategoryTransport between model and tool serverInstall unit for a harness
You shipA server process (stdio or HTTP)Three files describing an existing CLI or API
Identity of a capabilityTool name on a serverpack_id + verb_key, projected to CLI, JSON, Skill, and optionally MCP
AuthorisationOAuth 2.1 between client and serverRuntime capability grants per Principal; pack declares only effect class and land
CredentialsServer holds themRuntime hub mints them; pack names a mode and never holds a secret
WritesTool annotations (hints)Policy operation: write + confirm enforced by the runtime before any adapter runs
Outbound eventsNotifications within a sessionSense: declared triggers, separate grant, cannot mint or act
Human at a terminalNot a first-class pathThe CLI face is the primary face
SandboxClient's concernDefault; 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 PluginsHCP
Manifestplugin.json (name, version, metadata)surface.json (id, adapter, Binding mode, commands)
Teachingskills/*/SKILL.mdHARNESS.md (copied to a SKILL.md on activate)
Executionmcp.json pointing at serversNamed commands run through an Adapter under Policy
PermissionsLeft to each clientPolicy rows + five capability grants, enforced by the runtime
OutboundNoneSense

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.

TermMeaning here
HarnessThe thing driving an agent; in HCP, the runtime that installs packs
SkillHARNESS.md, the pack's teaching file; or an Agent Skill in general
SurfaceLegacy filename surface.json = the pack manifest. Not a UI surface
Agent teaching packAn agent's identity and instructions. Invokes HCP; is not an HCP pack
ConnectorNot an HCP type. Vendor SDK glue inside a product runtime