Get started

Quickstart

Register your first service with ASMP in five minutes.

Get a service discoverable on your host. No plist editing. No parallel registry files.

Prerequisites

  • macOS or Linux with a user home directory
  • Python 3.10+ (for the reference registry server)
  • A service that exposes an HTTP health endpoint (or skip health for now)

1. Create the ASMP directory

mkdir -p ~/.asmp/services

2. Write a host profile

Create ~/.asmp/host.yaml:

asmp: "0.1"
kind: host

host_id: "my-machine"
device_class: personal_computer

os:
  name: macOS
  arch: arm64

capabilities:
  - files.local
  - networking

registry:
  path: ~/.asmp/services/
  api: http://127.0.0.1:7700

policy:
  agent_can_register: true
  requires_approval: false
  max_services: 100
  allowed_ports: "7000-9999"

3. Write a service manifest

Create ~/.asmp/services/hello.asmp.yaml:

asmp: "0.1"
kind: service

name: hello
description: "Minimal example service"
version: "0.1.0"
created_by: you
owner: you

run:
  command: python3
  args: ["-m", "http.server", "8787"]
  working_dir: ~/

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

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

capabilities:
  provides:
    - demo.hello

display:
  icon: "👋"
  section: examples

4. Start the registry

Fastest path — Install one-liner:

curl -fsSL https://raw.githubusercontent.com/agent-service-manifest-protocol/agentservicemanifest.io/main/scripts/bootstrap-asmp.sh | bash

Or paste the agent install prompt and let your agent handle it.

pip install asmp-registry is coming; today the bootstrap script installs a minimal server to ~/.asmp/bin/asmp-serve.py.

Once running, verify with the CLI:

asmp litmus
asmp list
asmp find --capability demo.hello

Or via curl:

curl http://127.0.0.1:7700/health
curl http://127.0.0.1:7700/services
curl "http://127.0.0.1:7700/capabilities?provides=demo.hello"

5. Discover from an agent

With the MCP bridge connected, an agent can ask:

service_find(capability="demo.hello")

Response includes name, description, endpoint, health status, and repo path.

Register via API

Instead of writing a file by hand, POST a manifest:

curl -X POST http://127.0.0.1:7700/services \
  -H "Content-Type: application/json" \
  -d @~/.asmp/services/hello.asmp.yaml

The registry validates, writes the file, and makes the service discoverable immediately.

What happens next

When the full registration flow is wired, the host will also:

  • Generate a LaunchAgent plist (macOS) or systemd unit (Linux)
  • Add reverse-proxy routes for non-loopback endpoints
  • Queue for human approval if requires_approval: true

Today, manifests + discovery work. Provisioning automation is on the roadmap.

Next steps