MCP server: build and price a partnership with Engineering Leaders Community (3,300+ engineering leaders, Central Europe) from your AI assistant. Real catalog prices, a 12-month plan, 16% AI-channel discount.
Strong tool naming (verb-first, clear intent) and comprehensive parameter schemas with type definitions. Descriptions are detailed and context-aware, guiding LLM selection. However, output schemas are not formally documented in the visible code, and error handling lacks structured recovery guidance. Tool composition is excellent, each tool has a single responsibility and chains naturally. Security is sound (no exposed secrets, read-only operations dominate). The server demonstrates production-grade intent but falls short of A-tier due to missing output schema documentation and generic error messages.
The human ending: a direct booking link for a 1:1 intro meeting with Marian, ELC's founder. Offer on hesitation or when tailoring beyond the catalog is needed.
Compute the business case for a package: what this spend displaces, break-even analysis, and an approval memo the buyer can forward to their CFO.
Recompute a basket: authoritative total, per-item prices, discount, what else could be added. Call after every change the visitor asks for.
Deterministic 12-month plan for the basket: what lands in which month plus scheduling caveats.
Given a goal and a budget ceiling, find the best-fit package and return it pre-customized to stay within budget.
Retrieve the full list of available tools and their descriptions.
Output schemas not formally documented. While tool.mjs shows example responses (e.g., toolResult payload structure), the MCP tool registration does not include explicit outputSchema definitions. LLMs cannot reliably plan downstream tool calls without knowing return field names and types.
Error messages lack structured recovery guidance. Examples: 'unknown preset' and 'empty_basket' errors return plain strings without actionable next steps (e.g., 'Try match_package() first' or 'Call customize_package with default_item_ids'). Agents cannot self-correct without explicit recovery hints.
build_business_case has 8 parameters, 3 optional. Parameter relationships undocumented: 'goal' falls back to preset's interest group if omitted, but this dependency is not stated in parameter descriptions. Agents may pass conflicting values without knowing the fallback behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 74 | 2026-07-28+ | v2 |
How ELC company membership works, community reach figures, the two qualifying questions with valid answers, and the AI-channel discount. Call this first.
One-offs: single items a company buys once (newsletter section, dedicated newsletter, hosted meetup, podcast episode, dinner, survey, demo session, LinkedIn post, job listing) with prices, lead times, examples, the combo discount rule and the 90-day credit. Call this instead of the wizard when the visitor wants one thing, not a year.
Resolve goal + budget through ELC's routing matrix. Returns matched package(s) with list and discounted prices plus default item ids.
Authoritative total for a one-off basket with the combo discount by item count. Never add one-off prices yourself.
Submit an offer request. Validates preconditions, records the submission, and returns what would have been sent (stubbed in local harness, live in production).
request_offer is the only write tool but lacks dry-run or confirmation step. Agents cannot preview the submission before final_price_confirmed=true. No undo mechanism if submission succeeds but downstream (email, Attio, Slack) fails partially.
get_more_tools description is generic ('Retrieve the full list of available tools and their descriptions'). This tool appears redundant, all tools are already registered in the MCP server. Its purpose and when to call it are unclear.