Guides

Register a service

How an agent declares a new service on the host.

When an agent finishes building a service, it registers by writing a manifest and submitting it to the registry.

Agent workflow

1. Build and test the service
2. Write ~/.asmp/services/{name}.asmp.yaml
3. POST manifest to http://127.0.0.1:7700/services
4. Host validates and provisions
5. Service is discoverable

Writing the manifest

Minimum viable manifest:

asmp: "0.1"
kind: service

name: my-service
description: "What this service does in one line"
version: "1.0.0"
created_by: claude-code
owner: daniel

capabilities:
  provides:
    - mydomain.myaction

endpoints:
  - protocol: http
    host: 127.0.0.1
    port: 8787
    visibility: loopback

health:
  method: http
  target: http://127.0.0.1:8787/health
  interval: 30s
  timeout: 5s

repo: ~/repos/my-service

Add run, lifecycle, data, display, and mods as the service matures.

Via MCP tool

If the director-daemon MCP bridge is connected:

service_register(
  name="my-service",
  description="What it does",
  provides=["mydomain.myaction"],
  port=8787,
  health_url="http://localhost:8787/health",
  repo="~/repos/my-service"
)

Writes the manifest to ~/.asmp/services/ and reloads the registry.

Validation errors

ErrorFix
Port in usePick a different port within allowed_ports
Port outside policyCheck host profile allowed_ports
Schema invalidFix required fields (name, description, version)
Approval requiredWait for human approval if requires_approval: true

Human approval

When policy.requires_approval: true in the host profile, registrations queue for review. The human sees:

  • Service name and description
  • Capabilities declared
  • Data sensitivity
  • Endpoints and ports requested

Approve → host provisions. Reject → manifest discarded.