Mike Fluff
Answers from Mike Fluff Press books, the business diagnostic, AI-text check, call booking.
我該用這個嗎
品質與安全性
發現項目(2)
- HIGH
- LOW在 search_answers 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"mikefluff": {
"url": "https://www.mikefluff.com/mcp"
}
}
}遠端端點
https://www.mikefluff.com/mcpstreamable-http它能做什麼
工具清單
工具(11)
🟢search_answers(query, locale)
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.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "The question or keywords, in any of the four languages."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"pt",
"es"
],
"description": "Language of the results. Defaults to the language the query is written in."
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢get_answer(id, locale)
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.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"pattern": "^[a-z0-9-]+$",
"description": "Answer id, e.g. \"ftx-collapse\"."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"pt",
"es"
],
"description": "Language of the result: en, ru, pt or es."
}
},
"required": [
"id",
"locale"
],
"additionalProperties": false
}🟢list_books(locale)
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.
輸入結構描述
{
"type": "object",
"properties": {
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"pt",
"es"
],
"description": "Language of the result: en, ru, pt or es."
}
},
"required": [
"locale"
],
"additionalProperties": false
}🟢get_chapter_preview(book, chapter, locale)
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.
輸入結構描述
{
"type": "object",
"properties": {
"book": {
"type": "string",
"enum": [
"nobody-writes-code",
"nobody-owns-money"
],
"description": "Book slug."
},
"chapter": {
"type": "string",
"minLength": 1,
"maxLength": 40,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Chapter id, e.g. \"ch01\" or \"prologue\"."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"pt",
"es"
],
"description": "Language of the result: en, ru, pt or es."
}
},
"required": [
"book",
"chapter",
"locale"
],
"additionalProperties": false
}🟢run_diagnostic(answers, locale)
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.
輸入結構描述
{
"type": "object",
"properties": {
"answers": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 12
}
]
},
"propertyNames": {
"maxLength": 64
},
"description": "Question id → option id, or option ids for a multiple-choice question. {} returns the questionnaire."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"pt",
"es"
],
"description": "Language of the result: en, ru, pt or es."
}
},
"required": [
"answers",
"locale"
],
"additionalProperties": false
}🟢check_text(text, lang)
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.
輸入結構描述
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"description": "The text to check (plain text or Markdown)."
},
"lang": {
"type": "string",
"enum": [
"en",
"ru"
],
"description": "Language of the text: en or ru."
}
},
"required": [
"text",
"lang"
],
"additionalProperties": false
}🟢get_booking_slots(from, days, locale)
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.
輸入結構描述
{
"type": "object",
"properties": {
"from": {
"type": "string",
"maxLength": 40,
"description": "Earliest day to list, ISO date or date-time (YYYY-MM-DD). Defaults to now."
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 21,
"description": "How many days to cover from \"from\". Default 7, at most 21."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"pt",
"es"
],
"description": "Language for the booking page URL. Default en."
}
},
"additionalProperties": false
}🟢book_call(slot, name, email, topic, locale, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"slot": {
"type": "string",
"maxLength": 40,
"description": "Exact ISO 8601 start time from get_booking_slots, e.g. 2026-10-20T13:00:00.000Z."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "The user's name, as they gave it. Omit to use the signed-in account's name."
},
"email": {
"type": "string",
"format": "email",
"maxLength": 200,
"description": "The user's email; the confirmation goes there. Omit to use the signed-in account's email."
},
"topic": {
"type": "string",
"enum": [
"diagnostic",
"automation",
"compliance",
"architect-mode"
],
"description": "What the call is about."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"pt",
"es"
],
"description": "Language of the confirmation email."
},
"message": {
"type": "string",
"maxLength": 2000,
"description": "Optional: what the user wants to discuss, in their words."
},
"timeZone": {
"type": "string",
"maxLength": 60,
"description": "Optional IANA time zone of the user (e.g. America/Sao_Paulo) for the email's times."
}
},
"required": [
"slot",
"topic",
"locale"
],
"additionalProperties": false
}⚪buy_course(course, locale, email, name)
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.
輸入結構描述
{
"type": "object",
"properties": {
"course": {
"type": "string",
"enum": [
"parasites",
"freeMini",
"contentFactory",
"parasites-course",
"vibe-coding-course",
"content-factory-course"
],
"description": "Course key or slug."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"pt",
"es"
],
"description": "Language and currency of the checkout."
},
"email": {
"type": "string",
"format": "email",
"maxLength": 200,
"description": "The user's email; the access link is sent there after payment. Omit to use the signed-in account's."
},
"name": {
"type": "string",
"maxLength": 120,
"description": "Optional: the user's name."
}
},
"required": [
"course",
"locale"
],
"additionalProperties": false
}⚪buy_book(book, locale, email)
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.
輸入結構描述
{
"type": "object",
"properties": {
"book": {
"type": "string",
"enum": [
"nobody-writes-code",
"nobody-owns-money"
],
"description": "Book slug from list_books."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"pt",
"es"
],
"description": "Language of the book page and currency of the price."
},
"email": {
"type": "string",
"format": "email",
"maxLength": 200,
"description": "Optional: the user's email, for the receipt when the account has none."
}
},
"required": [
"book",
"locale"
],
"additionalProperties": false
}🟢buy_chapter(book, chapter, locale, email)
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.
輸入結構描述
{
"type": "object",
"properties": {
"book": {
"type": "string",
"enum": [
"nobody-writes-code",
"nobody-owns-money"
],
"description": "Book slug from list_books."
},
"chapter": {
"type": "string",
"minLength": 1,
"maxLength": 40,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Chapter id from list_books, e.g. \"ch07\"."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"pt",
"es"
],
"description": "Language of the chapter and currency of the price."
},
"email": {
"type": "string",
"format": "email",
"maxLength": 200,
"description": "Optional: the user's email, for the receipt when the account has none."
}
},
"required": [
"book",
"chapter",
"locale"
],
"additionalProperties": false
}社群
證據