Score a meetup topic, place a speaker on the right stage, price community reach. ELC data.
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.
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.
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."
Answers to the five readiness questions. Omit to receive the questionnaire.
Tool list last changed Oct 25, 2026.
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.
| Argument | Type | Description |
|---|---|---|
| answers | object | Answers to the five readiness questions. Omit to receive the questionnaire. |
| context* | string | 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." |
{
"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.\""
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| context* | string | 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 | string | Required. The proposed talk title. |
| has_dry_run | boolean | Whether a rehearsal is scheduled. |
| prior_talks | integer | How many talks they have given. |
| has_recording | boolean | Whether a recording of them speaking exists. Pass it explicitly — inferring it from the background text cannot reliably read a denial like 'no recording'. |
| writes_publicly |
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.
| Argument | Type | Description |
|---|---|---|
| context* | string | 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 | integer | Required. Managers and tech leads. |
| senior_ics | integer | Required. Senior and staff ICs. Leave out junior and mid ICs on both sides. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| goal | string | Required. The primary reason. people_development covers developing your own engineering leaders (mentoring, Academy seats, the peer network) — that is the one for retention and growth, not hiring. |
| context* | string | 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 | string | Who is buying. 'company' (default) builds the annual membership case. 'individual' means a person spending their own money — returns the free-membership route instead of an approval email. 'one_off' means one thing once, not a year, and routes to buy_reach. |
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 — an ELC meetup, the speaker programme (a ladder for one engineer, from a meetup slot to the full coached programme), a conference main-stage talk, dedicated newsletter, a newsletter classified (30 words and a link, tools and events only, never jobs), decision-maker dinner, podcast episode, community survey, job listing — applies the published combo discount, and returns a decision-ready quote a human can sign.
| Argument | Type | Description |
|---|---|---|
| context* | string | 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 | number | Optional: what you have to spend. Does not change any price — the quote will say whether the cart fits and what to drop if it does not. |
| oneoff_ids | array | Required. Which one-off reach items to quote. One or more of: meetup-hosted, speaker-development, conference-main-stage, newsletter-dedicated, newsletter-classified, dinner, podcast-episode, survey, job-listing. Combo discount applies automatically. |
| speaker_rungs | array |
Answers 'where did that number come from?' Returns an ELC figure from the Data Points registry with its citation id, source and the date it was last verified, so an agent can quote the figure and show where it came from. An unknown id returns the three nearest ids instead of a guess.
| Argument | Type | Description |
|---|---|---|
| id | string | Registry citation id, '<stream>.<key>', e.g. 'elc_community.members_live'. |
| query | string | Plain words to search the registry when you do not know the id, e.g. 'meetup attendance'. |
| context* | string | 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." |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"context"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"description": "Registry citation id, '<stream>.<key>', e.g. 'elc_community.members_live'."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Plain words to search the registry when you do not know the id, e.g. 'meetup attendance'."
},
"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.\""
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| title | string | Required. The proposed meetup or talk title. |
| context* | string | 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 | string | The abstract, if one exists yet. |
| audience | string | Who it is aimed at, e.g. 'CTOs and VPs', 'first-time engineering managers'. |
{
"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'."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| context | string | What you are trying to do. Omit it for the menu. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| context | string | Optional: the caller's message in their own words — a greeting, a liveness test, or a plain description of what they are trying to do. Anything is accepted; there is no wrong value. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"context": {
"type": "string",
"description": "Optional: the caller's message in their own words — a greeting, a liveness test, or a plain description of what they are trying to do. Anything is accepted; there is no wrong value."
}
}
}| boolean |
| Whether they publish writing — a blog, newsletter or regular posts. |
| speaker_background | string | Required. Role, seniority, and any prior speaking experience. |
{
"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 — inferring it from the background text cannot reliably read a denial like 'no recording'."
},
"writes_publicly": {
"type": "boolean",
"description": "Whether they publish writing — a blog, newsletter or regular posts."
},
"speaker_background": {
"type": "string",
"description": "Required. Role, seniority, and any prior speaking experience."
}
}
}| sender_name |
| string |
| Who the approval email is signed by. |
| company_name | string | The company considering the membership. |
| approver_name | string | Who the approval email is addressed to. |
| proposed_budget_eur | number | A proposed budget in EUR. 0 is valid and routes to the free membership layer. |
{
"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) — 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 — 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."
}
}
}| Speaker programme rung ids to price instead of the full programme: stage, story, coach, amplify, beyond. Stage is always included. Omit for the whole programme at its bundle price. |
{
"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 — 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: meetup-hosted, speaker-development, conference-main-stage, newsletter-dedicated, newsletter-classified, dinner, podcast-episode, survey, job-listing. Combo discount applies automatically."
},
"speaker_rungs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Speaker programme rung ids to price instead of the full programme: stage, story, coach, amplify, beyond. Stage is always included. Omit for the whole programme at its bundle price."
}
}
}