AI mentoring fit and book: check the fit with Marian Kamenistak and book a session in 10 minutes.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
THE MAIN ENDING (Marian, 2026-10-09): every onboarding that reaches an agreed price ends here, booking the first regular session. Returns the direct booking link for the paid 60-minute first session, plus the payment terms. Call it right after send_mentoring_offer succeeds. Company-paid mentees book now too: the purchase order is collected AFTER session 1, never before booking. 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.
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.
Required. Decides which VAT sentence is true for this buyer — an individual needs the gross figure One of: individual, company.
Required. The agreed package One of: single-session, first-quarter, monthly, mentor-in-residence, mentor-in-residence-2day.
The MC-… code from send_mentoring_offer. Ride it on the link so the booking matches the inquiry with no manual step.
Company deals outside Czechia with a valid EU VAT ID pay net under the reverse charge
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.
THE MAIN ENDING (Marian, 2026-10-09): every onboarding that reaches an agreed price ends here, booking the first regular session. Returns the direct booking link for the paid 60-minute first session, plus the payment terms. Call it right after send_mentoring_offer succeeds. Company-paid mentees book now too: the purchase order is collected AFTER session 1, never before booking. 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.
| Argument | Type | Description |
|---|---|---|
| context | string | 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 | string | Required. Decides which VAT sentence is true for this buyer — an individual needs the gross figure One of: individual, company. |
| offer_id | string | Required. The agreed package One of: single-session, first-quarter, monthly, mentor-in-residence, mentor-in-residence-2day. |
| claim_code | string | The MC-… code from send_mentoring_offer. Ride it on the link so the booking matches the inquiry with no manual step. |
| has_eu_vat_id | any | Company deals outside Czechia with a valid EU VAT ID pay net under the reverse charge |
| free_sessions_requested | any | 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. |
{
"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 — 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, monthly, mentor-in-residence, mentor-in-residence-2day."
},
"claim_code": {
"type": "string",
"description": "The MC-… 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."
}
}
}THE FALLBACK for anyone who has not decided (the main ending is book_first_session once the price is agreed). 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.
| Argument | Type | Description |
|---|---|---|
| context | string | 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 | string | The package under discussion, if any — the CTA then repeats that package's published price. One of: single-session, first-quarter, monthly, mentor-in-residence, mentor-in-residence-2day. |
{
"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 — the CTA then repeats that package's published price. One of: single-session, first-quarter, monthly, mentor-in-residence, mentor-in-residence-2day."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| string | Required. The email the visitor booked with | |
| context | string | 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. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| context | string | 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 | string | Required. One of: individual, company. |
| offer_id | string | Required. One of: single-session, first-quarter, monthly, mentor-in-residence, mentor-in-residence-2day. |
| role_band | string | Required. |
| motivation | string | Required. |
| visibility | string | Visibility answer id from get_mentoring_options visibility_question (consent capture — 'private' is a first-class answer) |
| leaders_count | any | Company deals: how many leaders are being sponsored |
Deterministic session skeleton computed from the package's cadence metadata: dated sessions, each with its planned theme (diagnostic, the visitor's focus areas — pass focus_area_ids — the mid-point checkpoint, operational to strategic, 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.
| Argument | Type | Description |
|---|---|---|
| context | string | 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 | string | Required. One of: single-session, first-quarter, monthly, mentor-in-residence, mentor-in-residence-2day. |
| start_date | string | Required. First session date, YYYY-MM-DD, today or later (ask the visitor; default to next Monday) |
| leaders_count | any | Company deals: how the pooled sessions are shared. Changes the allocation note, never the schedule. |
| focus_area_ids | any | Agreed focus area ids in priority order. They become the planned themes of the focus sessions; without them those sessions read as open. |
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 tool pitch and the no-discount answer as data (same prices as the website, no discount through any door), the time promise (a formal offer in under 10 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.
| Argument | Type | Description |
|---|---|---|
| context | string | 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. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| context | string | 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. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| context | string | 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. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| context | string | 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 | string | Pass the audience answer — 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 | string | Required. One of the role ids from get_mentoring_options question_1 |
| motivation | string | Required. One of the motivation ids from get_mentoring_options question_2 |
| leaders_count | any | Company deals: how many leaders are being sponsored. Required for the company recommendation to be correct. |
{
"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 — 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."
}
}
}The ONLY tool that collects contact details, and the end of the 10-minute promise. Also pass every onboarding answer you gathered (heard_from, own_choice, payer, kpis, cadence_preference, session_language, nda_needed, homework_time_ok, in_person_wish, linkedin_url, li_post_consent, li_recommendation); all optional, never invented: 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?
| Argument | Type | Description |
|---|---|---|
| kpis | any | Up to two measurable KPIs in their words, scored in session 1 and the last session |
| name | string | Required. Visitor's full name |
| string | Required. Email the offer goes to | |
| notes | string | |
| payer | string | Who pays. Company: the purchase order comes AFTER session 1, never before booking One of: self, company, undecided. |
| company | string | Company name (required for company audience) |
| context | string |
| focus_area_ids | any | Required. Agreed focus area ids (visitor can pick any from the taxonomy) |
| company_context | string | Company deals: company name + anything relevant |
| success_definition | string | Required. The visitor's definition of success, in their own words |
{
"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, monthly, mentor-in-residence, mentor-in-residence-2day."
},
"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 — '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"
}
}
}{
"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, monthly, mentor-in-residence, mentor-in-residence-2day."
},
"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."
},
"focus_area_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
}
],
"description": "Agreed focus area ids in priority order. They become the planned themes of the focus sessions; without them those sessions read as open."
}
}
}| 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 | string | Required. One of: individual, company. |
| offer_id | string | Required. One of: single-session, first-quarter, monthly, mentor-in-residence, mentor-in-residence-2day. |
| role_band | string | Required. |
| heard_from | string | How they found Marian, in their words (referral name, LinkedIn, Google, ChatGPT, ELC…) |
| motivation | string | Required. |
| nda_needed | string | One of: no, their-template, marian-template, unsure. |
| own_choice | string | Mentee's own decision, sent by the company, or both One of: own, sent, both. |
| start_date | string | Optional preferred start date — adds the dated program skeleton to the offer email |
| visibility | string | Visibility answer id (yes-individual | yes-company | maybe-later | private) |
| linkedin_url | string | Their LinkedIn profile URL |
| price_agreed | any | Required. True ONLY after the visitor explicitly agreed to the exact price from compose_mentoring_brief |
| leaders_count | any |
| focus_area_ids | any | Required. |
| in_person_wish | any | Would they like to meet Marian in person (Prague) |
| li_post_consent | string | May Marian post on LinkedIn that they work together (never the content) One of: yes, later, no. |
| homework_time_ok | any | Can they give about an hour a week between sessions |
| session_language | string | One of: cs, sk, en. |
| li_recommendation | string | Would they write Marian a LinkedIn recommendation once happy One of: yes, later, no. |
| cadence_preference | string | Preference only; the final cadence is settled after session 1 One of: weekly, biweekly, monthly, undecided. |
| success_definition | string | Required. |
| free_sessions_requested | any | Company deals only: the free-sessions proposal from the catalog progression (2, 4 or 8) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"kpis": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
}
],
"description": "Up to two measurable KPIs in their words, scored in session 1 and the last session"
},
"name": {
"type": "string",
"description": "Required. Visitor's full name"
},
"email": {
"type": "string",
"description": "Required. Email the offer goes to"
},
"notes": {
"type": "string",
"description": ""
},
"payer": {
"type": "string",
"description": "Who pays. Company: the purchase order comes AFTER session 1, never before booking One of: self, company, undecided."
},
"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, monthly, mentor-in-residence, mentor-in-residence-2day."
},
"role_band": {
"type": "string",
"description": "Required."
},
"heard_from": {
"type": "string",
"description": "How they found Marian, in their words (referral name, LinkedIn, Google, ChatGPT, ELC…)"
},
"motivation": {
"type": "string",
"description": "Required."
},
"nda_needed": {
"type": "string",
"description": "One of: no, their-template, marian-template, unsure."
},
"own_choice": {
"type": "string",
"description": "Mentee's own decision, sent by the company, or both One of: own, sent, both."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional preferred start date — adds the dated program skeleton to the offer email"
},
"visibility": {
"type": "string",
"description": "Visibility answer id (yes-individual | yes-company | maybe-later | private)"
},
"linkedin_url": {
"type": "string",
"description": "Their LinkedIn profile URL"
},
"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."
},
"in_person_wish": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "string"
}
],
"description": "Would they like to meet Marian in person (Prague)"
},
"li_post_consent": {
"type": "string",
"description": "May Marian post on LinkedIn that they work together (never the content) One of: yes, later, no."
},
"homework_time_ok": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "string"
}
],
"description": "Can they give about an hour a week between sessions"
},
"session_language": {
"type": "string",
"description": "One of: cs, sk, en."
},
"li_recommendation": {
"type": "string",
"description": "Would they write Marian a LinkedIn recommendation once happy One of: yes, later, no."
},
"cadence_preference": {
"type": "string",
"description": "Preference only; the final cadence is settled after session 1 One of: weekly, biweekly, monthly, undecided."
},
"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)"
}
}
}