{
 "voice": "One card of the book.",
 "agent": {
  "slug": "milestone-by-ouroboros-apps",
  "name": "Milestone by Ouroboros Apps",
  "specialty": null,
  "description": "Freelance project milestones and acceptance criteria for AI assistants",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-03T23:12:13.046Z",
  "card": "/agent/milestone-by-ouroboros-apps",
  "url": "https://allagents.app/agent/milestone-by-ouroboros-apps",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://milestone-continuity2.vercel.app/mcp",
   "site": "https://ouroborosapps.com/docs/milestone"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://ouroborosapps.com/docs/milestone",
   "hire": null
  },
  "bubble": "closed",
  "score": 11,
  "score_label": "Getting started",
  "mcp_tools": {
   "seen": "2026-11-04",
   "total": 15,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "list_milestone_sets",
     "description": "List the signed-in freelancer's milestone sets. Use a returned id with read_milestone_set. Do not guess a set."
    },
    {
     "name": "open_milestone_set",
     "description": "Open a draft milestone set for one client project. Draft definitions are not an approved commitment until approve_milestones."
    },
    {
     "name": "read_milestone_set",
     "description": "Read the milestone set before answering. Quote only this record. mayTellClient and clientWording are what the assistant may tell the client. Do not say a…"
    },
    {
     "name": "define_milestone",
     "description": "Add one milestone to a draft set: a title and the definition of that milestone. After milestones are approved, a new milestone is refused until…"
    },
    {
     "name": "save_acceptance_criterion",
     "description": "Save one acceptance criterion, which is what done means for that milestone. After milestones are approved, a new criterion is refused until an accepted…"
    },
    {
     "name": "save_deliverable",
     "description": "Save one deliverable that belongs to a milestone. After milestones are approved, an extra deliverable is refused until an accepted add_deliverable suggestion…"
    },
    {
     "name": "save_work_item",
     "description": "Save one piece of work under a milestone so it can later be marked done. After milestones are approved, new work is refused until an accepted add_work_item…"
    },
    {
     "name": "record_criterion_met",
     "description": "Record that one saved acceptance criterion was met. The criterion must already be saved. This does not by itself tell the client the milestone is complete or…"
    },
    {
     "name": "declare_milestone_complete",
     "description": "State that a milestone is complete. Refuses unless the milestones are approved and every saved acceptance criterion on that milestone was met. Do not tell the…"
    },
    {
     "name": "declare_next_payment_released",
     "description": "State that the next payment for a milestone is released. Refuses unless the milestones are approved, every saved acceptance criterion on that milestone was…"
    },
    {
     "name": "mark_work_done",
     "description": "Mark one saved work item done. Refuses when the work item was not saved. Do not mark unsaved work done."
    },
    {
     "name": "write_client_wording",
     "description": "Record what the assistant may tell the client about milestones, what done means, completion, and payment release. After approval, different wording is refused…"
    },
    {
     "name": "approve_milestones",
     "description": "Approve the draft milestone definitions and acceptance criteria. Pass confirmed true only after the freelancer explicitly approves them. A draft is not a…"
    },
    {
     "name": "suggest_milestone_change",
     "description": "Record a suggested change. This does not change the milestones. kind add_milestone requires title and definition. kind add_criterion requires milestoneId and…"
    },
    {
     "name": "accept_milestone_change",
     "description": "Apply one suggested milestone change after the freelancer explicitly approves that change. Pass confirmed true only then. This is the path for an extra…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://milestone-continuity2.vercel.app/mcp",
   "answers": true,
   "checked": "2026-11-04T06:02:58.683Z",
   "http": 401,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-04T06:47:45.875Z",
     "since": "2026-11-04T06:47:45.875Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-04T06:47:45.875Z",
    "since": "2026-11-04T06:47:45.875Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 401,
   "checked": "2026-11-04T06:02:58.683Z",
   "last_answer_at": "2026-11-04T06:02:58.683Z",
   "last_ms": 174,
   "checked_at": "2026-11-04T06:02:58.683Z"
  }
 }
}