# Milestone by Ouroboros Apps (remote · milestone-continuity2.vercel.app)

Freelance project milestones and acceptance criteria for AI assistants

- Trust score: 89/100 (high trust)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `milestone-continuity2.vercel.app`: 89/100 (this document), [markdown](https://verifymcp.io/servers/lahutchins91-milestone/milestone-continuity2.md), [page](https://verifymcp.io/servers/lahutchins91-milestone/milestone-continuity2)

## Channel facts

- Endpoint: `https://milestone-continuity2.vercel.app/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 94/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1300 tokens (~86/item across 15 items; 15 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Milestone by Ouroboros Apps MCP server?

Milestone by Ouroboros Apps is a hosted endpoint at https://milestone-continuity2.vercel.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http lahutchins91-milestone 'https://milestone-continuity2.vercel.app/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "lahutchins91-milestone": {
      "url": "https://milestone-continuity2.vercel.app/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "lahutchins91-milestone": {
      "type": "http",
      "url": "https://milestone-continuity2.vercel.app/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.lahutchins91-milestone]
url = "https://milestone-continuity2.vercel.app/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "lahutchins91-milestone": {
      "type": "remote",
      "url": "https://milestone-continuity2.vercel.app/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add lahutchins91-milestone --url 'https://milestone-continuity2.vercel.app/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  lahutchins91-milestone:
    url: "https://milestone-continuity2.vercel.app/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "lahutchins91-milestone": {
      "Transport": "http",
      "Url": "https://milestone-continuity2.vercel.app/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add lahutchins91-milestone -t streamable-http -u 'https://milestone-continuity2.vercel.app/mcp'
```

### Other

```json
{
  "mcpServers": {
    "lahutchins91-milestone": {
      "type": "http",
      "url": "https://milestone-continuity2.vercel.app/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 89, 0)

- [security] Stability: 0.97 → pass

### 2026-11-03 (score 89, +1)

No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 88, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 87, +1)

No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 86, +1)

No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 85, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-23 (score 84, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-21 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (15)

### `list_milestone_sets` (~44 tokens)

list milestone sets

List the signed-in freelancer's milestone sets. Use a returned id with read_milestone_set. Do not guess a set.

Input parameters:

- `offset` (integer)

Output parameters:

- `data`

### `open_milestone_set` (~55 tokens)

open milestone set

Open a draft milestone set for one client project. Draft definitions are not an approved commitment until approve_milestones.

Input parameters:

- `clientName` (string, required)
- `projectTitle` (required)
- `reference` (string, required)

Output parameters:

- `data`

### `read_milestone_set` (~95 tokens)

read milestone set

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.

Input parameters:

- `milestoneSetId` (string, required)

Output parameters:

- `data`

### `define_milestone` (~74 tokens)

define milestone

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.

Input parameters:

- `definition` (string, required)
- `milestoneSetId` (string, required)
- `title` (string, required)

Output parameters:

- `data`

### `save_acceptance_criterion` (~73 tokens)

save acceptance criterion

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.

Input parameters:

- `milestoneId` (required)
- `milestoneSetId` (string, required)
- `statement` (string, required)

Output parameters:

- `data`

### `save_deliverable` (~80 tokens)

save deliverable

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.

Input parameters:

- `detail` (string, required)
- `milestoneId` (required)
- `milestoneSetId` (string, required)
- `title` (string, required)

Output parameters:

- `data`

### `save_work_item` (~72 tokens)

save work item

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.

Input parameters:

- `milestoneId` (required)
- `milestoneSetId` (string, required)
- `title` (string, required)

Output parameters:

- `data`

### `record_criterion_met` (~67 tokens)

record criterion met

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.

Input parameters:

- `criterionId` (required)
- `milestoneId` (required)
- `milestoneSetId` (string, required)

Output parameters:

- `data`

### `declare_milestone_complete` (~65 tokens)

declare milestone complete

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.

Input parameters:

- `milestoneId` (required)
- `milestoneSetId` (string, required)

Output parameters:

- `data`

### `declare_next_payment_released` (~76 tokens)

declare next payment released

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.

Input parameters:

- `milestoneId` (required)
- `milestoneSetId` (string, required)

Output parameters:

- `data`

### `mark_work_done` (~56 tokens)

mark work done

Mark one saved work item done. Refuses when the work item was not saved. Do not mark unsaved work done.

Input parameters:

- `milestoneId` (required)
- `milestoneSetId` (string, required)
- `workItemId` (required)

Output parameters:

- `data`

### `write_client_wording` (~81 tokens)

write client wording

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.

Input parameters:

- `milestoneSetId` (string, required)
- `wording` (string, required)

Output parameters:

- `data`

### `approve_milestones` (~54 tokens)

approve milestones

Approve the draft milestone definitions and acceptance criteria. Pass confirmed true only after the freelancer explicitly approves them. A draft is not a commitment.

Input parameters:

- `confirmed` (boolean, required)
- `milestoneSetId` (string, required)

Output parameters:

- `data`

### `suggest_milestone_change` (~139 tokens)

suggest milestone change

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.

Input parameters:

- `definition` (string)
- `detail` (string)
- `kind` (string, required)
- `milestoneId`
- `milestoneSetId` (string, required)
- `statement` (string)
- `summary` (string, required)
- `title` (string)
- `wording` (string)

Output parameters:

- `data`

### `accept_milestone_change` (~86 tokens)

accept milestone change

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.

Input parameters:

- `changeId` (required)
- `confirmed` (boolean, required)
- `milestoneSetId` (string, required)

Output parameters:

- `data`

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/lahutchins91-milestone/milestone-continuity2#diagnostics

## Score history

- 2026-11-05: 89
- 2026-11-04: 89
- 2026-11-03: 89
- 2026-11-02: 88
- 2026-11-01: 88
- 2026-10-31: 88
- 2026-10-30: 87
- 2026-10-29: 87
- 2026-10-28: 86
- 2026-10-27: 86
- 2026-10-26: 85
- 2026-10-25: 85
- 2026-10-24: 84
- 2026-10-23: 84
- 2026-10-22: 83
- 2026-10-21: 83
- 2026-10-20: 82
- 2026-10-19: 82
- 2026-10-18: 81
- 2026-10-17: 81
- 2026-10-16: 81
- 2026-10-15: 80
- 2026-10-14: 80
- 2026-10-13: 79
- 2026-10-12: 79
- 2026-10-10: 78
- 2026-10-07: 76

## Common questions

### What is the Milestone by Ouroboros Apps MCP server?

Milestone by Ouroboros Apps is an MCP server listed in the public MCP registry as io.github.LAHutchins91/milestone. Freelance project milestones and acceptance criteria for AI assistants. This page covers its hosted endpoint (https://milestone-continuity2.vercel.app/mcp).

### Is the Milestone by Ouroboros Apps MCP server safe to use?

Milestone by Ouroboros Apps scores 89 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Milestone by Ouroboros Apps MCP server expose?

Milestone by Ouroboros Apps exposes 15 tools: list_milestone_sets, open_milestone_set, read_milestone_set, define_milestone, save_acceptance_criterion, and 10 more. Their descriptions and schemas cost roughly 1,117 tokens of context every time the server is loaded.

### Does the Milestone by Ouroboros Apps MCP server require authentication?

Yes. Milestone by Ouroboros Apps asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Milestone by Ouroboros Apps MCP server still maintained?

Milestone by Ouroboros Apps is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the Milestone by Ouroboros Apps MCP server?

VerifyMCP ran 13 checks on Milestone by Ouroboros Apps, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://milestone-continuity2.vercel.app/mcp
- Repository: https://github.com/LAHutchins91/milestone-mcp
- Website: https://ouroborosapps.com/docs/milestone
- Changelog RSS feed: https://verifymcp.io/servers/lahutchins91-milestone/milestone-continuity2.xml
- Changelog JSON feed: https://verifymcp.io/servers/lahutchins91-milestone/milestone-continuity2/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/lahutchins91-milestone/milestone-continuity2.json
- HTML version of this page: https://verifymcp.io/servers/lahutchins91-milestone/milestone-continuity2
