MCP Server

elc-trade

io.engineeringleaders/elc-trade
Business & Operations Marketing & Advertising Public & reachable MCP 2025-11-25

What this MCP does

Evaluates engineering-leadership events and speakers, benchmarks organizational ratios, and builds community partnership and reach purchases.

assess_community_launch_readiness
Should you start a meetup in your city?
Answers 'should I start an engineering-leadership meetup here?' A five-question readiness check taken from ELC's own new-city launch playbook — the one actually used to open Brno, Bratislava and Kraków — returning a verdict plus the specific gaps still open.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'answers': {'type': 'object', 'description': 'Answers to the five readiness questions. Omit to receive the questionnaire.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'boolean'}}, 'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report', 'source'], 'properties': {'report': {'type': 'string', 'description': 'The full human-readable report.'}, 'source': {'type': 'string', 'description': 'Canonical engineeringleaders.io page this answer derives from.'}, 'verdict': {'type': 'string', 'description': 'Headline verdict, when the tool returns one.'}}, 'additionalProperties': False}
assess_speaker_readiness
Assess whether a speaker is ready for the stage
Answers 'is this person ready to speak, and what will go wrong if they are not?' Checks a proposed speaker and talk against ELC's speaker vetting process — seven years of putting people in front of 120+ engineering leaders — and returns a readiness verdict with the specific gaps to close before the event.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}, 'talk_title': {'type': 'string', 'minLength': 3, 'description': 'Required. The proposed talk title.'}, 'has_dry_run': {'type': 'boolean', 'description': 'Whether a rehearsal is scheduled.'}, 'prior_talks': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'How many talks they have given.'}, 'has_recording': {'type': 'boolean', 'description': "Whether a recording of them speaking exists. Pass it explicitly â\x80\x94 inferring it from the background text cannot reliably read a denial like 'no recording'."}, 'writes_publicly': {'type': 'boolean', 'description': 'Whether they publish writing â\x80\x94 a blog, newsletter or regular posts.'}, 'speaker_background': {'type': 'string', 'description': 'Required. Role, seniority, and any prior speaking experience.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report', 'source'], 'properties': {'report': {'type': 'string', 'description': 'The full human-readable report.'}, 'source': {'type': 'string', 'description': 'Canonical engineeringleaders.io page this answer derives from.'}, 'verdict': {'type': 'string', 'description': 'Headline verdict, when the tool returns one.'}}, 'additionalProperties': False}
benchmark_leadership_ratio
Benchmark your manager-to-senior-IC ratio
Answers 'what shape is my engineering org, and what should I ask about it?' Returns your manager-versus-senior-IC percentages and the resulting span (1 manager per N senior ICs), plus the question that shape usually raises. ELC's own community composition is shown alongside as context only — different denominator, so no delta and no score is computed against it.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}, 'managers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Required. Managers and tech leads.'}, 'senior_ics': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Required. Senior and staff ICs. Leave out junior and mid ICs on both sides.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report', 'source'], 'properties': {'report': {'type': 'string', 'description': 'The full human-readable report.'}, 'source': {'type': 'string', 'description': 'Canonical engineeringleaders.io page this answer derives from.'}, 'verdict': {'type': 'string', 'description': 'Headline verdict, when the tool returns one.'}}, 'additionalProperties': False}
build_partnership_business_case
Build the internal case for an ELC partnership
Answers 'how do I justify a community partnership budget internally?' Returns real reach numbers, the deliverables that serve the stated goal, where a proposed budget lands on the published ladder, and a forwardable approval email. Goals: hiring, brand_awareness, product_feedback, thought_leadership, people_development (developing your own engineering leaders — mentoring, Academy seats, the peer network). Set buying_for=individual if you are a person rather than a company: ELC membership is free for engineering leaders and no business case is needed.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'goal': {'type': 'string', 'description': 'Required. The primary reason. people_development covers developing your own engineering leaders (mentoring, Academy seats, the peer network) â\x80\x94 that is the one for retention and growth, not hiring.'}, 'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}, 'buying_for': {'type': 'string', 'description': "Who is buying. 'company' (default) builds the annual membership case. 'individual' means a person spending their own money â\x80\x94 returns the free-membership route instead of an approval email. 'one_off' means one thing once, not a year, and routes to buy_reach."}, 'sender_name': {'type': 'string', 'description': 'Who the approval email is signed by.'}, 'company_name': {'type': 'string', 'description': 'The company considering the membership.'}, 'approver_name': {'type': 'string', 'description': 'Who the approval email is addressed to.'}, 'proposed_budget_eur': {'type': 'number', 'description': 'A proposed budget in EUR. 0 is valid and routes to the free membership layer.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report', 'source'], 'properties': {'report': {'type': 'string', 'description': 'The full human-readable report.'}, 'source': {'type': 'string', 'description': 'Canonical engineeringleaders.io page this answer derives from.'}, 'verdict': {'type': 'string', 'description': 'Headline verdict, when the tool returns one.'}}, 'additionalProperties': False}
buy_reach
Buy reach in the ELC community
Answers 'how do we get in front of 3,300+ CEE engineering leaders, and what does it cost?' Builds a cart from ELC's nine published one-off reach items — newsletter section, dedicated newsletter, hosted meetup, podcast episode, decision-maker dinner, community survey, demo session, LinkedIn post, job listing — applies the published combo discount, and returns a decision-ready quote a human can sign.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}, 'budget_eur': {'type': 'number', 'minimum': 0, 'description': 'Optional: what you have to spend. Does not change any price â\x80\x94 the quote will say whether the cart fits and what to drop if it does not.'}, 'oneoff_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required. Which one-off reach items to quote. One or more of: newsletter-section, newsletter-dedicated, meetup-hosted, podcast-episode, dinner, survey, demo-session, linkedin-post, job-listing. Combo discount applies automatically.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report', 'source'], 'properties': {'report': {'type': 'string', 'description': 'The full human-readable report.'}, 'source': {'type': 'string', 'description': 'Canonical engineeringleaders.io page this answer derives from.'}, 'verdict': {'type': 'string', 'description': 'Headline verdict, when the tool returns one.'}}, 'additionalProperties': False}
evaluate_meetup_topic
Evaluate a meetup topic before you commit to it
Answers 'will this topic fill a room?' Scores a proposed engineering-leadership meetup title and abstract against ELC's own topic-selection criteria — the ones behind 12 meetups a year at 120+ attendees since 2019 — and returns the specific failure modes, the title formulas that would fit, and the questions only the organiser can answer.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'title': {'type': 'string', 'minLength': 3, 'description': 'Required. The proposed meetup or talk title.'}, 'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}, 'abstract': {'type': 'string', 'description': 'The abstract, if one exists yet.'}, 'audience': {'type': 'string', 'description': "Who it is aimed at, e.g. 'CTOs and VPs', 'first-time engineering managers'."}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report', 'source'], 'properties': {'report': {'type': 'string', 'description': 'The full human-readable report.'}, 'source': {'type': 'string', 'description': 'Canonical engineeringleaders.io page this answer derives from.'}, 'verdict': {'type': 'string', 'description': 'Headline verdict, when the tool returns one.'}}, 'additionalProperties': False}
get_more_tools
More tools? Check here first — also answers a plain hello
Check for additional specialised capabilities whenever your task might benefit from them. Also the right tool for a bare greeting or a liveness test — pass it as `context` and this returns the 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': 'What you are trying to do. Omit it for the menu.'}}}
get_started
Start here — what is this, and which tool answers my question?
START HERE for a greeting (hi, hello), a connectivity or liveness test, 'what can you do', or any question too general to match a specific tool. Also the right call when the caller is a person rather than a company: ELC membership is free for engineering leaders and this says so. Pass their message as `context` and it routes to the tool that fits, or returns the full menu.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'string', 'description': "Optional: the caller's message in their own words â\x80\x94 a greeting, a liveness test, or a plain description of what they are trying to do. Anything is accepted; there is no wrong value."}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report', 'source'], 'properties': {'report': {'type': 'string', 'description': 'The full human-readable report.'}, 'source': {'type': 'string', 'description': 'Canonical engineeringleaders.io page this answer derives from.'}, 'verdict': {'type': 'string', 'description': 'Headline verdict, when the tool returns one.'}}, 'additionalProperties': False}
Added
assess_speaker_readiness
Sept. 17, 2026, 12:40 p.m.
Added
evaluate_meetup_topic
Sept. 17, 2026, 12:40 p.m.
Added
build_partnership_business_case
Sept. 17, 2026, 12:40 p.m.
Added
assess_community_launch_readiness
Sept. 17, 2026, 12:40 p.m.
Added
benchmark_leadership_ratio
Sept. 17, 2026, 12:40 p.m.
Added
buy_reach
Sept. 17, 2026, 12:40 p.m.
Added
get_started
Sept. 17, 2026, 12:40 p.m.
Added
get_more_tools
Sept. 17, 2026, 12:40 p.m.