Without a map of who does what, every AI wanders — searching files, guessing apps, redoing work the last AI already did. That waste never adds up. A smarter chatbot alone won't get you AI that actually learns.
Same question below — first with no map, then with one.
The question
Show me the last five emails, text messages, and phone calls from Joe Stanton.
Wires appear as your AI hunts email, texts, and calls — no registry, no shortcuts.
Registry already knows who handles email, texts, and calls — straight to each.
One gap found → one breadcrumb → every agent after wins.
Same gap. Every session. Registry never learns.
One agent pays once. Every agent after inherits the find.
~/.asmp/ and a registry on :7700.
# bootstrap ASMP on this machine curl -fsSL https://raw.githubusercontent.com/agent-service-manifest-protocol/agentservicemanifest.io/main/scripts/bootstrap-asmp.sh | bash MCP · tools. A2A · agents. ASMP · what's on this machine.
Three protocols. Three questions.
One YAML file at a fixed path: hardware, capabilities, where manifests live, and who gets to register services.
~/.asmp/host.yaml — personal scope/etc/hmp/host.yaml — system scopeasmp: "0.1" kind: host host_id: "daniels-macbook-2026" device_class: personal_compute os: name: macOS version: "15.3.1" arch: arm64 hardware: cores: 12 ram_gb: 36 gpu: "Apple M4 Pro" capabilities: - files.local - email.local - calendar.local - networking - containers - gpu.inference 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" data_sensitivity_default: medium # written by the agent that built it asmp: "0.1" kind: service identity: name: inbox-triage author: "agent://reeves/mail" version: "1.2.0" runtime: exec: "python -m inbox_triage" restart: on-failure network: port: 7821 bind: 127.0.0.1 capabilities: - email.local - files.local mods: - name: spam-scorer author: "agent://eidos/filter" observability: log_dir: ~/.asmp/logs/inbox-triage display: label: "Inbox Triage" icon: mail
Each file in ~/.asmp/services/. Short on purpose — enough to wire ports and restarts, not
enough to fill a wiki.
HTTP on 127.0.0.1:7700 only. List services, search by capability, attach mods, remove
cleanly. Nothing past localhost.
Ask the registry. Move on.
"Which AIs and MCPs help manage my email?"
GET /capabilities?provides=email.local on :7700.
Registry returns manifests — names, ports, capabilities.
Agent calls the right service. No port lottery.
Same inventory. No rediscovery. ~250ms, not ~45s.
Whoever builds the service declares it. The inventory outlives the session.
Tied to a device — your Mac, your homelab, your box.
launchd, systemd, Docker, k8s — ASMP is the input, not the runner.
Tools above, agents beside, inventory underneath.
Every field does a job. No manifest the size of a novel.
Services can be extended by agents that didn't build them.
Formalize the manifest schema for validation and tooling.
The registration API server in Python, bound to localhost.
Convert 35+ existing services to ASMP manifests.
Extract as a framework-agnostic, open-source package.
Auto-generate MCP tool manifests from ASMP service capabilities.