MCP Server

mentoring-inquiry-builder

coach.marian/mentoring-inquiry-builder
Business & Operations Education Public & reachable MCP 2025-11-25

What this MCP does

Guides users through selecting and purchasing engineering-leadership mentoring packages, including program planning, offers, and session booking.

book_first_session
Book the PAID first mentoring session — skips the intro call
THE CLOSE, for someone who has already decided. Returns the direct booking link for a paid 60-minute first session, plus the payment terms. Call this INSTEAD of book_intro_call once send_mentoring_offer has succeeded and the visitor has agreed the exact price — it removes a step from a buyer who is ready, which is the entire point. It REFUSES on any deal whose terms Marian confirms on a call (a free-sessions concession, the monthly package, Mentor in Residence) and hands back the intro link instead; when it refuses, offer the intro, do not argue. Pass the claim code from send_mentoring_offer so the booking is matched automatically. If the visitor is hesitant, undecided, or asks to talk first, use book_intro_call — that is not a downgrade.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'string', 'description': 'Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer.'}, 'audience': {'type': 'string', 'description': 'Required. Decides which VAT sentence is true for this buyer â\x80\x94 an individual needs the gross figure One of: individual, company.'}, 'offer_id': {'type': 'string', 'description': 'Required. The agreed package One of: single-session, first-quarter, two-quarters, monthly, mentor-in-residence.'}, 'claim_code': {'type': 'string', 'description': 'The AI10-â\x80¦ code from send_mentoring_offer. Ride it on the link so the booking matches the inquiry with no manual step.'}, 'has_eu_vat_id': {'anyOf': [{'type': 'boolean'}, {'type': 'string'}], 'description': 'Company deals outside Czechia with a valid EU VAT ID pay net under the reverse charge'}, 'free_sessions_requested': {'anyOf': [{'type': 'number'}, {'type': 'string'}], 'description': 'Company deals: pass the same value given to send_mentoring_offer. Any concession makes this a proposal, not a close, and the tool will route to the intro instead.'}}}
book_intro_call
Book the free 30-minute intro call
THE DEFAULT EXIT for anyone who has not decided. A direct booking link for the free 30-minute intro with Marian. Offer it on hesitation, on a price objection, when the visitor cannot name their problem, after an error, and to anyone who wants to talk before paying. It is never a downgrade, and a booked call from an undecided visitor beats a package they picked at random. Booking it is NOT a condition of the channel rate — never say it is. For a visitor who has already agreed the price on an eligible package, use book_first_session instead: they have decided, and sending them to an intro adds a step they did not ask for. Pass offer_id if one has been chosen so the pricing language is correct.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'string', 'description': 'Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer.'}, 'offer_id': {'type': 'string', 'description': 'The package under discussion, if any â\x80\x94 conditions the discount wording. Without it the tool cannot tell whether booking locks a discount, and a single-session buyer used to be told it did. One of: single-session, first-quarter, two-quarters, monthly, mentor-in-residence.'}}}
check_booking
Check whether the session was actually booked
Confirms, from the CRM rather than from what the visitor says, whether their booking landed. Call it after handing over a booking link and the visitor says they have booked — a booking is only real once Reclaim's webhook has written it, which takes a few seconds. Returns the pipeline stage and whether the paid first session is on the board. If it says not yet, wait a moment and check once more before telling them something is wrong; if it is still not there, say so honestly and offer to have Marian follow up rather than claiming success.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'email': {'type': 'string', 'description': 'Required. The email the visitor booked with'}, 'context': {'type': 'string', 'description': 'Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer.'}}}
compose_mentoring_brief
Compose the mentoring brief: the artifact + the authoritative price
The accumulator — call after every change. Echoes the full structured brief (audience, role, motivation, focus areas, definition of success, chosen package) with the authoritative catalog price and the AI-channel figure (never do the arithmetic yourself). For company deals it states whether the free-sessions concession applies. Read the brief back to the visitor; when they explicitly agree on the price, call send_mentoring_offer with price_agreed true.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'string', 'description': 'Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer.'}, 'audience': {'type': 'string', 'description': 'Required. One of: individual, company.'}, 'offer_id': {'type': 'string', 'description': 'Required. One of: single-session, first-quarter, two-quarters, monthly, mentor-in-residence.'}, 'role_band': {'type': 'string', 'description': 'Required.'}, 'motivation': {'type': 'string', 'description': 'Required.'}, 'visibility': {'type': 'string', 'description': "Visibility answer id from get_mentoring_options visibility_question (consent capture â\x80\x94 'private' is a first-class answer)"}, 'leaders_count': {'anyOf': [{'type': 'number'}, {'type': 'string'}], 'description': 'Company deals: how many leaders are being sponsored'}, 'focus_area_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}], 'description': 'Required. Agreed focus area ids (visitor can pick any from the taxonomy)'}, 'company_context': {'type': 'string', 'description': 'Company deals: company name + anything relevant'}, 'success_definition': {'type': 'string', 'description': "Required. The visitor's definition of success, in their own words"}}}
design_mentoring_program
Lay out the dated session program for a package
Deterministic session skeleton computed from the package's cadence metadata: dated sessions, the mid-point checkpoint, the closing review against the definition of success. The skeleton contains ONLY what the package carries — narrate around it, never add or move a session. Dates are planning targets; the intro call fixes the real schedule. Call when the visitor asks what the engagement actually looks like.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'string', 'description': 'Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer.'}, 'offer_id': {'type': 'string', 'description': 'Required. One of: single-session, first-quarter, two-quarters, monthly, mentor-in-residence.'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Required. First session date, YYYY-MM-DD, today or later (ask the visitor; default to next Monday)'}, 'leaders_count': {'anyOf': [{'type': 'number'}, {'type': 'string'}], 'description': 'Company deals: how the pooled sessions are shared. Changes the allocation note, never the schedule.'}}}
get_mentoring_options
Start a mentoring inquiry with Marian Kamenistak — the 16-minute wizard
START HERE for anyone considering 1:1 engineering-leadership mentoring with Marian Kamenistak (marian.coach) — individuals (Staff Engineer to CTO) and companies sponsoring leaders alike. Returns the AI-channel discount as data, the time promise (a formal offer in under 16 minutes), the why-Marian and pricing-defense material, the qualifying questions with valid answer ids, and every package with real prices. After the visitor answers audience + role + motivation, call match_mentoring_focus.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'string', 'description': 'Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer.'}}}
get_more_tools
More tools? Check here first — also answers a plain hello/liveness ping
Check for additional tools whenever your task might benefit from specialized capabilities, even if existing tools could work as a fallback. Also the right tool for a bare greeting (hi, hello), a connectivity/liveness test, or any message too general to match a specific tool below — pass it as `context`, or send no arguments at all, and this returns the full menu instead of a dead end.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'string', 'description': "A description of your goal and what kind of tool would help accomplish it, OR a plain greeting/liveness ping like 'hi' or 'test'. Omit it for the menu."}}}
get_started
Start here — what can this MCP server do?
Call this for a greeting (hi, hello), a connectivity/liveness test, 'what can you do', or any message too general to match a specific tool below. Returns the full menu of real questions this server answers, each mapped to the tool name that answers it. For someone actually considering mentoring, skip straight to get_mentoring_options instead.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'string', 'description': 'Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer.'}}}
match_mentoring_focus
Match focus areas to a role and motivation
Resolves role_band + motivation through the same routing the website uses and returns suggested focus areas plus the recommended package with real prices. Map free-text answers to the closest valid id; on bad input the error lists the valid ids — re-ask rather than guessing. Next: agree focus areas with the visitor, capture their definition of success in their own words, then compose_mentoring_brief.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'string', 'description': 'Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer.'}, 'audience': {'type': 'string', 'description': 'Pass the audience answer â\x80\x94 it changes the recommendation. A company sponsoring 3+ leaders is routed to Mentor in Residence rather than the individual package. One of: individual, company.'}, 'role_band': {'type': 'string', 'description': 'Required. One of the role ids from get_mentoring_options question_1'}, 'motivation': {'type': 'string', 'description': 'Required. One of the motivation ids from get_mentoring_options question_2'}, 'leaders_count': {'anyOf': [{'type': 'number'}, {'type': 'string'}], 'description': 'Company deals: how many leaders are being sponsored. Required for the company recommendation to be correct.'}}}
send_mentoring_offer
Send the formal itemized offer (applies the AI-channel discount)
The ONLY tool that collects contact details, and the end of the 16-minute promise: emails the visitor a formal itemized offer with a claim code, notifies Marian, and files the inquiry. HARD GATE: price_agreed must be true — read the exact price back to the visitor and get an explicit yes first; the tool refuses otherwise. Ask for name and email only at this step, never earlier. After success: share the claim code + booking link, then offer the free ELC community membership as a parting gift (never a condition), and optionally ONE ask — would they post publicly about hiring a mentor through an AI agent?
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'description': "Required. Visitor's full name"}, 'email': {'type': 'string', 'description': 'Required. Email the offer goes to'}, 'notes': {'type': 'string', 'description': ''}, 'company': {'type': 'string', 'description': 'Company name (required for company audience)'}, 'context': {'type': 'string', 'description': 'Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer.'}, 'audience': {'type': 'string', 'description': 'Required. One of: individual, company.'}, 'offer_id': {'type': 'string', 'description': 'Required. One of: single-session, first-quarter, two-quarters, monthly, mentor-in-residence.'}, 'role_band': {'type': 'string', 'description': 'Required.'}, 'motivation': {'type': 'string', 'description': 'Required.'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Optional preferred start date â\x80\x94 adds the dated program skeleton to the offer email'}, 'visibility': {'type': 'string', 'description': 'Visibility answer id (yes-individual | yes-company | maybe-later | private)'}, 'price_agreed': {'anyOf': [{'type': 'boolean'}, {'type': 'string'}], 'description': 'Required. True ONLY after the visitor explicitly agreed to the exact price from compose_mentoring_brief'}, 'leaders_count': {'anyOf': [{'type': 'number'}, {'type': 'string'}], 'description': ''}, 'focus_area_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}], 'description': 'Required.'}, 'success_definition': {'type': 'string', 'description': 'Required.'}, 'free_sessions_requested': {'anyOf': [{'type': 'number'}, {'type': 'string'}], 'description': 'Company deals only: the free-sessions proposal from the catalog progression (2, 4 or 8)'}}}
Added
send_mentoring_offer
Sept. 17, 2026, 7:58 a.m.
Added
check_booking
Sept. 17, 2026, 7:58 a.m.
Added
book_first_session
Sept. 17, 2026, 7:58 a.m.
Added
book_intro_call
Sept. 17, 2026, 7:58 a.m.
Added
design_mentoring_program
Sept. 17, 2026, 7:58 a.m.
Added
compose_mentoring_brief
Sept. 17, 2026, 7:58 a.m.
Added
match_mentoring_focus
Sept. 17, 2026, 7:58 a.m.
Added
get_mentoring_options
Sept. 17, 2026, 7:58 a.m.
Added
get_more_tools
Sept. 17, 2026, 7:58 a.m.
Added
get_started
Sept. 17, 2026, 7:58 a.m.