mcp-registry/io.github.ptrinh/final-notice · v1.0.0
Also listed as awesome/ptrinh/finalnotice-mcp
As of 2026-10-19 17:26 UTC, the Ptrinh Final Notice MCP server is up with a Glimind reliability score of 93/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 8 minutes.
Free demand-letter PDF generator for unpaid invoices, 80+ jurisdictions, 29 languages.
Claude Code
claude mcp add --transport http ptrinh-final-notice-mcp-server https://finalnotice.io/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"ptrinh-final-notice-mcp-server": {
"type": "http",
"url": "https://finalnotice.io/mcp"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
3 of 3 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
Handshake + tools/list takes ~1,992 ms.
Serve tools/list from memory, keep the process warm, and host close to your users. Every new agent session pays this before its first call.
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.ptrinh%2Ffinal-notice/fixes
{
"name": "list_jurisdictions",
"description": "List every supported country/jurisdiction (code, name, currency, default language) plus the available languages and tones. Call this first to pick a valid jurisdiction + language.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "preview_demand_letter",
"description": "Render the demand letter's text content (title, subject, body paragraphs, amount line, legal reference, closing) as structured JSON, without producing a PDF. Use to review or refine wording before generating.",
"inputSchema": {
"type": "object",
"required": [
"senderName",
"senderAddress",
"debtorName",
"debtorAddress",
"amount"
],
"properties": {
"bank": {
"type": "object",
"description": "Payment/bank details keyed by field (e.g. {bankName, iban, accountNumber}). Optional.",
"additionalProperties": {
"type": "string"
}
},
"tone": {
"enum": [
"reminder",
"final",
"prelitigation"
],
"type": "string",
"description": "Escalation level. Default: final."
},
"amount": {
"type": "number",
"description": "Amount owed, as a number (no separators). Required, > 0."
},
"attested": {
"type": "boolean",
"description": "Confirms authorization to send under the sender name. Required when senderType is business/firm."
},
"currency": {
"type": "string",
"description": "ISO 4217 currency (optional; defaults to the jurisdiction's)."
},
"language": {
"type": "string",
"description": "Letter language code (e.g. en, es, fr, de, pt, ar, zh, ja). Must be offered for the jurisdiction; defaults to en."
},
"senderRef": {
"type": "string",
"description": "Creditor's own reference number (optional)."
},
"debtorName": {
"type": "string",
"description": "Debtor name. Required."
},
"debtorType": {
"enum": [
"individual",
"business"
],
"type": "string",
"description": "Whether the debtor is a private individual (consumer) or a business. 'individual' activates jurisdiction consumer rules (e.g. GB Pre-Action Protocol 30-day floor, NL WIK wording). Default: business."
},
"enclosures": {
"type": "string",
"description": "Enclosed documents, printed as 'Encl.: …' under the signature (e.g. 'Copy of invoice INV-123'). Optional."
},
"senderName": {
"type": "string",
"description": "Creditor name (person or business). Required."
},
"senderType": {
"enum": [
"individual",
"business",
"firm"
],
"type": "string",
"description": "Creditor type. Business/firm requires attested=true."
},
"signerName": {
"type": "string",
"description": "Name of the person signing (optional; defaults to senderName)."
},
"description": {
"type": "string",
"description": "What the debt is for (optional)."
},
"senderTitle": {
"type": "string",
"description": "Signer's job title (optional)."
},
"deadlineDays": {
"type": "number",
"description": "Days from issue to pay (optional; default 14)."
},
"jurisdiction": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code of the debtor (e.g. US, GB, DE, BR, AE). Use list_jurisdictions for the full set; XX = generic/international."
},
"originalDate": {
"type": "string",
"description": "ISO date the debt was incurred/invoiced (optional)."
},
"debtorAddress": {
"type": "string",
"description": "Debtor postal address, multi-line. Required."
},
"invoiceNumber": {
"type": "string",
"description": "Invoice/account number (optional)."
},
"senderAddress": {
"type": "string",
"description": "Creditor postal address, multi-line (\\n separated). Required."
},
"senderContact": {
"type": "string",
"description": "Creditor email/phone (optional)."
},
"deliveryMethod": {
"enum": [
"registered",
"email",
"both"
],
"type": "string",
"description": "How the letter is sent; printed as a notation above the recipient (e.g. 'By registered post and email'). Optional."
}
}
},
"annotations": {
"readOnlyHint": true
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.ptrinh/final-notice"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.ptrinh/final-notice"}) over MCP.
preview_demand_letter ~901 tokensgenerate_demand_letter ~897 tokenslist_jurisdictions ~84 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.github.ptrinh%2Ffinal-notice?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.ptrinh%2Ffinal-notice?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.ptrinh%2Ffinal-notice.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.ptrinh%2Ffinal-notice.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.ptrinh%2Ffinal-notice?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:c81ab1f72d2cc926…, first seen 2026-10-17, included at leaf 4575 of 27,845. Version history · verify what your client received.
Compare: most reliable files servers · most reliable knowledge servers · most reliable productivity servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-19 17:26 UTC, the Ptrinh Final Notice MCP server is up with a Glimind reliability score of 93/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 8 minutes.
Ptrinh Final Notice MCP server advertises 3 tools, including generate_demand_letter, list_jurisdictions, preview_demand_letter.
Point your MCP client at this streamable-http endpoint: https://finalnotice.io/mcp
Glimind scanned all 3 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.