Simple MCP (Model Context Protocol) client and server implementation in Python for managing technical conference data and talk submissions
Two tools with clear naming and documented input schemas, but output schemas are undocumented and error handling lacks recovery guidance. search_conferences has good parameter descriptions (min_date, max_date, country, tags, cfp_open all clearly annotated). apply_conferences is less complete, it lacks explicit output schema documentation and the error handling returns a generic dict without recovery hints. Both tools follow verb_noun naming (search_, apply_) which is good. The main gap: no documented return schemas, no error classification or retry guidance, and apply_conferences has incomplete parameter descriptions for returned conference_summary structure.
Apply to technical conferences matching optional filters and intelligent talk matching.
Search for technical conferences with optional filters. Returns structured JSON data. Filters include date range, country, tags, and CFP status. Results include conference metadata such as tags, CFP deadlines, and locations. Example: search_conferences(min_date='2026-01-01', max_date='2026-12-31', country='France', tags='python,ai', cfp_open=True)
Output schemas not documented for either tool. LLMs cannot predict what fields to expect in responses, forcing trial-and-error reasoning or wasted follow-up calls.
apply_conferences error handling returns generic dict with 'error' and 'matches' keys, but provides no recovery guidance. LLM cannot determine whether to retry, call a different tool, or report to user.
apply_conferences description is vague: 'Apply to technical conferences matching optional filters and intelligent talk matching.' What does 'intelligent talk matching' mean? No clarity on when the LLM should use this vs search_conferences.
search_conferences returns list[Any], no documentation of the structure of each conference object. Are results capped? Paginated? What fields do they contain? LLM must guess.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 75 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 51 | - | v1 |
apply_conferences has incomplete parameter descriptions. 'talk_resource_uri' description gives examples but no guidance on how to construct URIs or what happens if the URI is invalid. Missing error cases in description.