# Mike Fluff

> Answers from Mike Fluff Press books, the business diagnostic, AI-text check, call booking.

- name: com.mikefluff/mikefluff
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.mikefluff%2Fmikefluff
- tools: https://api.protogrid.dev/v1/servers/com.mikefluff%2Fmikefluff/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "mikefluff": {
      "type": "http",
      "url": "https://www.mikefluff.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 98
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-95% +updated-5d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 11 of 11 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 3,245 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 5 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 11, about 3,245 tokens to load them all
- tool set hash: 2353dd614df45b1f77964ed8009b0a7a
- tools last changed: 2026-10-16T06:46:37.727Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.mikefluff/mikefluff.svg)](https://protogrid.dev/servers/com.mikefluff/mikefluff)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-16 `buy_chapter` added
  - SIDE EFFECT, MAY SPEND MONEY: buys one paid chapter of a Mike Fluff Press book, on its own, for whoever the token speaks for (OAuth scope "mikefluff:purchase"; without a token, HTTP 401 and the client signs the person in). The chapter is then theirs to read on the site and whole through get_chapter_preview. Paid the same ways as buy_book: from the person's INITE wallet where they allowed this shop, else one link for them (wallet or card/PIX); an agent signed in as itself pays the returned x402Url from its own INITE wallet (pay tool at billing.inite.ai/mcp/wallet). Owning the book already includes every chapter. Get chapter ids from list_books. Only call when the user has asked to buy this chapter.
- 2026-10-16 `buy_book` changed (description, annotations)
  - before: SIDE EFFECT, MAY SPEND MONEY: buys a Mike Fluff Press book for the person signed in with INITE ID. Books are bought into an INITE account (the reader unlocks paid chapters for the account that paid), so this needs the person: OAuth scope "mikefluff:purchase"; without a token it is answered with HTTP 401 and the client signs the person in. If the person has allowed this shop to charge their INITE wallet, the book is paid at once within the limit they set. If not, the result is one link for the person: there they pay this time and, if they like, allow such payments from now on. Failing both, a payment link (card, PIX). If they already own the book it says so instead. Only call when the user has asked to buy this book.
  - after: SIDE EFFECT, MAY SPEND MONEY: buys a Mike Fluff Press book for the person signed in with INITE ID. Books are bought into an INITE account (the reader unlocks paid chapters for the account that paid), so this needs the person: OAuth scope "mikefluff:purchase"; without a token it is answered with HTTP 401 and the client signs the person in. If the person has allowed this shop to charge their INITE wallet, the book is paid at once within the limit they set. If not, the result is one link for the person: there they pay this time and, if they like, allow such payments from now on. Failing both, a payment link (card, PIX). An agent signed in as itself (client_credentials, its own did:web) buys under its own account and pays the returned x402Url from its INITE wallet (pay tool at billing.inite.ai/mcp/wallet). If they already own the book it says so instead. Only call when the user has asked to buy this book.
- 2026-10-16 `buy_course` changed (annotations)
- 2026-10-16 `book_call` changed (annotations)
- 2026-10-16 `get_booking_slots` changed (annotations)
- 2026-10-16 `check_text` changed (annotations)
- 2026-10-16 `run_diagnostic` changed (annotations)
- 2026-10-16 `get_chapter_preview` changed (description, annotations) **meaning changed**
  - before: Return the text of one chapter as an anonymous reader sees it on the site. Free chapters come back in full. Paid chapters come back as their public lead-in only (about a fifth of the chapter); the rest requires buying the book, and this tool never returns it. Where the site sells chapters over x402, the result says how an agent can buy the whole chapter itself in USDC (`x402`). Get book slugs and chapter ids from list_books. Read-only.
  - after: Return the text of one chapter. Free chapters come back in full. A paid chapter comes back whole to an account that owns it (the book, or the chapter bought with buy_chapter) when the call carries its token; to anybody else as its public lead-in only (about a fifth of the chapter), with what the chapter costs on its own. Get book slugs and chapter ids from list_books. Read-only.
- 2026-10-16 `list_books` changed (annotations)
- 2026-10-16 `get_answer` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/com.mikefluff%2Fmikefluff/changes

## Remotes

- https://www.mikefluff.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.95238096)

## Packages

_none_

## Tools (11)

- `book_call`: SIDE EFFECT: books a real 30-minute video call in Mike Fluff's calendar, emails a confirmation with a calendar invite to the given address, alerts Mike, and records the booking as a lead. Only call this when the user has explicitly asked to book and chosen the time. "slot" must be one of the exact values returned by get_booking_slots. Name and email: either the ones the user gave for this purpose, or leave them out and the call is booked in the name of the person signed in with INITE ID (OAuth scope "mikefluff:booking"; without a token such a call is answered with HTTP 401 and the client is sent to sign in). Topics: diagnostic (general business consultation), automation (AI automation), compliance (privacy/GDPR/LGPD around AI systems), architect-mode (the one-day intensive). The confirmation email has a link to move or cancel. Limited to 3 bookings per hour per caller and 2 upcoming calls per email.
- `buy_book`: SIDE EFFECT, MAY SPEND MONEY: buys a Mike Fluff Press book for the person signed in with INITE ID. Books are bought into an INITE account (the reader unlocks paid chapters for the account that paid), so this needs the person: OAuth scope "mikefluff:purchase"; without a token it is answered with HTTP 401 and the client signs the person in. If the person has allowed this shop to charge their INITE wallet, the book is paid at once within the limit they set. If not, the result is one link for the person: there they pay this time and, if they like, allow such payments from now on. Failing both, a payment link (card, PIX). An agent signed in as itself (client_credentials, its own did:web) buys under its own account and pays the returned x402Url from its INITE wallet (pay tool at billing.inite.ai/mcp/wallet). If they already own the book it says so instead. Only call when the user has asked to buy this book.
- `buy_chapter`: SIDE EFFECT, MAY SPEND MONEY: buys one paid chapter of a Mike Fluff Press book, on its own, for whoever the token speaks for (OAuth scope "mikefluff:purchase"; without a token, HTTP 401 and the client signs the person in). The chapter is then theirs to read on the site and whole through get_chapter_preview. Paid the same ways as buy_book: from the person's INITE wallet where they allowed this shop, else one link for them (wallet or card/PIX); an agent signed in as itself pays the returned x402Url from its own INITE wallet (pay tool at billing.inite.ai/mcp/wallet). Owning the book already includes every chapter. Get chapter ids from list_books. Only call when the user has asked to buy this chapter.
- `buy_course`: SIDE EFFECT: opens a checkout for one of Mike Fluff's paid courses and records the user as a lead. Returns a payment link (billing's hosted page; works without signing in) and the price in the currency for the locale. Nothing is charged until the user pays on that page; after payment the course access link is emailed to the given address. Courses: parasites (parasites-course), freeMini (vibe-coding-course), contentFactory (content-factory-course). Only call when the user has asked to buy and given the email the course should go to — or leave the email out to use the account of the person signed in with INITE ID (OAuth scope "mikefluff:purchase"; with that scope the course is also attached to their account). Give the user the payment link; do not try to pay.
- `check_text`: Run the writer linter behind mikefluff.com/ai-text-checker on a text: it flags the stock phrases and rhythms readers recognise as machine-written ("in today's fast-paced world", "it's important to note", em-dash habits in Russian) and returns a density verdict (clean / borderline / neuroslop suspected), a pass/fail gate for hard bans, and each hit with line, column, category and the matched words. English and Russian only. Up to 20000 characters. It judges the text, not who wrote it. Read-only: the text is not stored.
- `get_answer`: Fetch one published answer by its id (from search_answers): the full direct answer, the explanatory sections, the FAQ, the chapters and experiments it cites and related answers, all with canonical URLs. Use after search_answers when the lead answer is not enough. Read-only.
- `get_booking_slots`: List the open 30-minute slots for a free video call with Mike Fluff (business diagnosis, AI automation, compliance, Architect Mode), as ISO 8601 UTC start times. Use before book_call; pass one of these exact values as its "slot". Read-only.
- `get_chapter_preview`: Return the text of one chapter. Free chapters come back in full. A paid chapter comes back whole to an account that owns it (the book, or the chapter bought with buy_chapter) when the call carries its token; to anybody else as its public lead-in only (about a fifth of the chapter), with what the chapter costs on its own. Get book slugs and chapter ids from list_books. Read-only.
- `list_books`: List the books by Mike Fluff Press with title, subtitle, synopsis, status, canonical book page URL and the table of contents (which chapters are free to read). Use it to answer "what has Mike Fluff written" or before get_chapter_preview. Read-only.
- `run_diagnostic`: The self-diagnostic from mikefluff.com/diagnostic: ten multiple-choice questions about how a business runs, scored into one of five named operational conditions (e.g. "one queue, one person", "manual conveyor", "SaaS obesity") with a severity, an annual cost estimate built only from the user's own answers, and a recommended next step with its URL. Call it with answers = {} first to get the questionnaire (question ids, option ids, which questions are conditional), ask the user, then call again with {questionId: optionId} (an array of option ids for multiple-choice questions). Read-only: nothing is stored or mailed.
- `search_answers`: Search the answers Mike Fluff Press publishes (questions about crypto history, Bitcoin, stablecoins, fraud, AI agents, software after AI: "what happened to FTX", "who is Satoshi", "what is MCP") and the interactive experiments from the books. Use this first whenever the user asks a factual question these books cover. Returns up to 8 hits, each with the title, a 40-60 word lead answer you can quote, the canonical URL, the book, and the chapter it draws on. Read-only.
