{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_7gu6fayu528u","handle":"milestone","url":"https://wellknown.network/agents/milestone","links":{"self":"https://wellknown.network/agents/milestone/record.json","html":"https://wellknown.network/agents/milestone","markdown":"https://wellknown.network/agents/milestone/record.md","api":"https://wellknown.network/api/v1/agents/milestone","status":"https://wellknown.network/api/v1/agents/milestone/status","claim":"https://wellknown.network/agents/milestone/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/milestone/claim.json","badge":"https://wellknown.network/agents/milestone/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/milestone/history","tools":"https://wellknown.network/api/v1/agents/milestone/tools"},"ard":{"identifier":"urn:air:milestone-continuity2.vercel.app:server:milestone","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Milestone by Ouroboros Apps","summary":"Freelance project milestones and acceptance criteria for AI assistants","description":"Freelance project milestones and acceptance criteria for AI assistants","publisher":{"name":"LAHutchins91","url":null},"homepage":"https://ouroborosapps.com/docs/milestone","repository":"https://github.com/LAHutchins91/milestone-mcp","version":"1.0.3","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://milestone-continuity2.vercel.app/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-08T21:21:28.35931Z","publishedAt":"2026-10-08T21:21:28.35931Z","registryName":"io.github.LAHutchins91/milestone"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":0.51,"provenance":"derived"}],"categories":["commerce"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-09T23:28:54.976Z","lastProbedAt":"2026-10-09T23:28:54.976Z","statusComputedAt":"2026-10-09T23:31:04.574Z","reliability30d":{"probes":12,"successRate":1,"p50Ms":139,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":12,"ok":12,"authBoundaryOk":0,"serviceOk":12,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-09T23:28:54.976Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":131,"error":null,"detail":{"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"toolCount":15,"toolsHash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","serverName":"Milestone","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T16:32:29.170Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":140,"error":null,"detail":{"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"toolCount":15,"toolsHash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","serverName":"Milestone","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T09:27:17.303Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":146,"error":null,"detail":{"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"toolCount":15,"toolsHash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","serverName":"Milestone","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T03:23:19.110Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":124,"error":null,"detail":{"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"toolCount":15,"toolsHash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","serverName":"Milestone","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T21:24:00.168Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":128,"error":null,"detail":{"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"toolCount":15,"toolsHash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","serverName":"Milestone","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T15:23:39.313Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":143,"error":null,"detail":{"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"toolCount":15,"toolsHash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","serverName":"Milestone","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T09:23:18.408Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":135,"error":null,"detail":{"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"toolCount":15,"toolsHash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","serverName":"Milestone","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T03:23:24.591Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":142,"error":null,"detail":{"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"toolCount":15,"toolsHash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","serverName":"Milestone","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T20:29:59.611Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":147,"error":null,"detail":{"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"toolCount":15,"toolsHash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","serverName":"Milestone","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T13:26:57.228Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":142,"error":null,"detail":{"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"toolCount":15,"toolsHash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","serverName":"Milestone","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"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 milest"},{"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 accept_milestone"},{"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 add_crit"},{"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. D"},{"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 sugg"},{"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 th"},{"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 c"},{"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 met,"},{"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 u"},{"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 commit"},{"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 st"},{"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 delivera"}],"package":null,"toolSurface":{"id":"ts_wahkv23ath2p","endpointId":"ep_btjd36e9ct93","hash":"72f0c7f63cff336c50e97a4240e2785cb01d23ad1e4a81d8c79edf81a38f997c","toolCount":15,"serverName":"Milestone","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-07T00:29:05.720Z","lastSeenAt":"2026-10-09T23:28:54.966Z","observations":12,"toolNames":["list_milestone_sets","open_milestone_set","read_milestone_set","define_milestone","save_acceptance_criterion","save_deliverable","save_work_item","record_criterion_met","declare_milestone_complete","declare_next_payment_released","mark_work_done","write_client_wording","approve_milestones","suggest_milestone_change","accept_milestone_change"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_btjd36e9ct93","url":"https://milestone-continuity2.vercel.app/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T23:28:54.971Z","auth":{"observedAt":"2026-10-09T23:28:55.478Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://milestone-continuity2.vercel.app/.well-known/oauth-protected-resource/mcp","resource":"https://milestone-continuity2.vercel.app/mcp","authorizationServers":["https://hbrrrrrelxcutkdaqlgf.supabase.co/auth/v1"],"scopesSupported":["email","offline_access"]},"authorizationServer":{"url":"https://hbrrrrrelxcutkdaqlgf.supabase.co/.well-known/oauth-authorization-server/auth/v1","issuer":"https://hbrrrrrelxcutkdaqlgf.supabase.co/auth/v1","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256","plain"],"tokenEndpointAuthMethodsSupported":["client_secret_basic","client_secret_post","none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":null},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":false,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-09T23:28:55.503Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"*.vercel.app","issuer":{"commonName":"WR1","organization":"Google Trust Services"},"validFrom":"2026-08-29T19:48:09.000Z","validTo":"2026-11-27T19:48:08.000Z","daysToExpiry":48,"sanCount":1,"fingerprint256":"8F:46:C4:A0:A2:89:BF:DE:40:60:D0:69:86:F2:AF:76:1E:E6:2D:66:8D:DE:97:2E:6B:EF:46:87:EE:4F:60:93"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.LAHutchins91/milestone","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.LAHutchins91%2Fmilestone","firstSeenAt":"2026-10-07T00:19:33.828Z","fetchedAt":"2026-10-09T22:20:31.038Z","normalizedAt":"2026-10-09T22:20:31.038Z"}]},"firstSeenAt":"2026-10-07T00:19:33.828Z","updatedAt":"2026-10-09T23:31:41.456Z"}