Milestone by Ouroboros Apps
Server Details
Freelance project milestones and acceptance criteria for AI assistants
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- LAHutchins91/milestone-mcp
- GitHub Stars
- 0
- Server Listing
- Milestone by Ouroboros Apps
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 15 tools
Each tool maps to a distinct step in a strictly-enforced milestone lifecycle (open, define, approve, save, record, declare). The many save_*/declare_*/record_* tools are related but descriptions clearly delineate their roles and dependencies, leaving only mild potential confusion between adjacent lifecycle stages.
Nearly all tools use snake_case verb-first naming (save_deliverable, approve_milestones, read_milestone_set), which is predictable. Minor deviations like declare_next_payment_released and accept_milestone_change embed an extra noun but remain readable and consistent in style.
15 tools is well within a sensible range and each corresponds to a real lifecycle action; none feel redundant or padded. The count matches the breadth of the milestone workflow.
The surface covers the full lifecycle from drafting through approval, criteria/deliverable/work tracking, completion, and payment release, plus client wording. It lacks explicit delete/revise-own-item operations, but the suggestion/accept model appears to be the intended immutability mechanism.
Available Tools
15 toolsaccept_milestone_changeaccept milestone changeADestructiveIdempotentInspect
Apply one suggested milestone change after the freelancer explicitly approves that change. Pass confirmed true only then. This is the path for an extra deliverable, a new acceptance criterion, or new saved work after approval. Calling it is not a substitute for the freelancer's approval.
Inputs: changeId (required), confirmed (required), milestoneSetId (required). Returns: data
approve_milestonesapprove milestonesADestructiveIdempotentInspect
Approve the draft milestone definitions and acceptance criteria. Pass confirmed true only after the freelancer explicitly approves them. A draft is not a commitment.
Inputs: confirmed (required), milestoneSetId (required). Returns: data
declare_milestone_completedeclare milestone completeADestructiveIdempotentInspect
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 client a milestone is complete when this tool refuses.
Inputs: milestoneId (required), milestoneSetId (required). Returns: data
declare_next_payment_releaseddeclare next payment releasedADestructiveIdempotentInspect
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, and the milestone is complete. Do not tell the client the next payment is released when this tool refuses.
Inputs: milestoneId (required), milestoneSetId (required). Returns: data
define_milestonedefine milestoneADestructiveInspect
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_change applies an add_milestone suggestion.
Inputs: title (required), definition (required), milestoneSetId (required). Returns: data
list_milestone_setslist milestone setsARead-onlyIdempotentInspect
List the signed-in freelancer's milestone sets. Use a returned id with read_milestone_set. Do not guess a set.
Inputs: offset. Returns: data
mark_work_donemark work doneBDestructiveIdempotentInspect
Mark one saved work item done. Refuses when the work item was not saved. Do not mark unsaved work done.
Inputs: workItemId (required), milestoneId (required), milestoneSetId (required). Returns: data
open_milestone_setopen milestone setAInspect
Open a draft milestone set for one client project. Draft definitions are not an approved commitment until approve_milestones.
Inputs: reference (required), clientName (required), projectTitle (required). Returns: data
read_milestone_setread milestone setBRead-onlyIdempotentInspect
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 milestone is complete unless complete is true. Do not say the next payment is released unless paymentReleased is true. Do not invent a deliverable. Do not mark unsaved work done. Proposed changes are not authorization.
Inputs: milestoneSetId (required). Returns: data
record_criterion_metrecord criterion metADestructiveIdempotentInspect
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 that the next payment is released.
Inputs: criterionId (required), milestoneId (required), milestoneSetId (required). Returns: data
save_acceptance_criterionsave acceptance criterionADestructiveInspect
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_criterion suggestion. This does not mark the milestone complete.
Inputs: statement (required), milestoneId (required), milestoneSetId (required). Returns: data
save_deliverablesave deliverableADestructiveInspect
Save one deliverable that belongs to a milestone. After milestones are approved, an extra deliverable is refused until an accepted add_deliverable suggestion. Do not invent a deliverable that was not saved.
Inputs: title (required), detail (required), milestoneId (required), milestoneSetId (required). Returns: data
save_work_itemsave work itemBDestructiveIdempotentInspect
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 suggestion. Unsaved work cannot be marked done.
Inputs: title (required), milestoneId (required), milestoneSetId (required). Returns: data
suggest_milestone_changesuggest milestone changeAInspect
Record a suggested change. This does not change the milestones. kind add_milestone requires title and definition. kind add_criterion requires milestoneId and statement. kind add_deliverable requires milestoneId, title, and detail. kind add_work_item requires milestoneId and title. kind revise_client_wording requires wording.
Inputs: kind (required), summary (required), milestoneSetId (required), title, +5 more. Returns: data
write_client_wordingwrite client wordingADestructiveInspect
Record what the assistant may tell the client about milestones, what done means, completion, and payment release. After approval, different wording is refused until an accepted revise_client_wording suggestion. The assistant must not go beyond this wording and the facts in read_milestone_set.
Inputs: wording (required), milestoneSetId (required). Returns: data
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Freelance deposit and payment schedule for AI assistants
Freelance scope of work, rates, deadlines, and change orders for AI assistants
Freelance invoice line items, rates, due dates, and late terms for AI assistants
Hire AI agents by outcome: frozen acceptance rules, automatic checks, verifiable receipts.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI tools to seamlessly hand off work by creating, accepting, and completing standardized Markdown handoff documents, so a task can move between different AI assistants without repeating context.MIT
- MIT
- FlicenseBqualityNot gradedmaintenanceGenerates professional, AI-powered freelance project proposals including executive summaries, scopes of work, and pricing structures. It leverages Claude to create tailored proposals based on specific project descriptions, budgets, and timelines.1-
- AlicenseBqualityBmaintenanceEnables AI assistants to search freelance projects, submit and edit bids, read and reply to employer messages, and update a freelancer profile through an unofficial integration.36MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.