{"schema_version":"1.0","protocol_version":"2025-06-18","name_for_human":"United We Transform Atlas","name_for_model":"uwt_atlas","description_for_human":"Read the United We Transform gathering atlas: agenda scores, the leaderboard, corpus statistics, and the deterministic grader, free and without a key.","description_for_model":"Tools for reading the United We Transform (UWT) agenda-quality atlas and for scoring a new agenda with the same deterministic, public rubric used to build the atlas. All tools are read-only. grade_agenda never stores or reuses submitted text.","transport":{"type":"streamable-http","endpoint":"https://uwt-edge.brandon-klein.workers.dev/mcp"},"tools":[{"name":"grade_agenda","title":"Grade an agenda","description":"Score a pasted event agenda with the deterministic UWT grading rubric. The text is processed transiently: it is never stored, never logged beyond aggregate counts, and never used to add or alter any entry in the atlas.","readOnlyHint":true,"inputSchema":{"type":"object","properties":{"agenda_text":{"type":"string","description":"The full event agenda, one session per line. Times are optional. Example: '9:00 Opening / 10:00 Workshop: map the problem / 3:00 Commitments: owners and dates'."}},"required":["agenda_text"],"additionalProperties":false}},{"name":"get_event_score","title":"Get a cached event score","description":"Fetch the cached scorecard for one gathering by slug from the public atlas.","readOnlyHint":true,"inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"The event slug, i.e. the last path segment of an /events/<slug>/ URL. On a miss the response documents how to grade it yourself."}},"required":["slug"],"additionalProperties":false}},{"name":"compare_events","title":"Compare two events","description":"Compare two cached scorecards pillar by pillar, with a one-line summary of which event scores higher overall and by how much. Answers 'compare two events I am considering sponsoring' in one call.","readOnlyHint":true,"inputSchema":{"type":"object","properties":{"slug_a":{"type":"string","description":"First event slug to compare."},"slug_b":{"type":"string","description":"Second event slug to compare."}},"required":["slug_a","slug_b"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"event_a":{"type":"object"},"event_b":{"type":"object"},"pillar_deltas":{"type":"array","items":{"type":"object"}},"summary":{"type":"string"}},"required":["event_a","event_b","pillar_deltas","summary"]}},{"name":"search_gatherings","title":"Search the gold set","description":"Search the gold-verified gathering index by free-text query, category, and minimum GES.","readOnlyHint":true,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Free-text match against event title, category, and type. Every word in the query must appear somewhere in those fields."},"category":{"type":"string","description":"Restrict to one gathering category (substring match, e.g. \"Education\")."},"min_ges":{"type":"number","minimum":0,"maximum":100,"description":"Minimum Gathering Effectiveness Score (0-100)."},"max_results":{"type":"integer","minimum":1,"maximum":20,"default":20,"description":"Maximum rows to return (capped at 20)."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"category":{"type":"string"},"event_type":{"type":"string"},"ges":{"type":"number"},"canonical":{"type":"string"},"score_json":{"type":"string"}}}},"note":{"type":"string"}},"required":["count","results"]}},{"name":"search","title":"Search the whole atlas","description":"Federated search across gold-verified events, facilitation exercises, published articles, book guides, and approved editorial pages, for clients (including ChatGPT deep research) that expect a generic search tool rather than search_gatherings' event-only filters. Returns citation-ready absolute URLs.","readOnlyHint":true,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"A title, topic or question. Deterministic relevance ranking searches titles, summaries and available full page text; results include corpus availability."}},"required":["query"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Opaque id (event:<slug>, exercise:<slug>, or page:<path>); pass to fetch."},"title":{"type":"string"},"url":{"type":"string"}},"required":["id","title","url"]}}},"required":["results"]}},{"name":"fetch","title":"Fetch a search result","description":"Fetch the full content for one id returned by search: the complete scorecard text for an event, the current exercise run sheet, or full public article, book and editorial page text. Any summary fallback is labeled. Required by ChatGPT deep research.","readOnlyHint":true,"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"An id returned by the search tool (event:<slug>, exercise:<slug>, or page:<path>)."}},"required":["id"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"url":{"type":"string"},"metadata":{"type":"object"}},"required":["id","title","text","url"]}},{"name":"get_statistics","title":"Get corpus statistics","description":"Return corpus-wide summary statistics for the atlas.","readOnlyHint":true,"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"schema_version":{"type":"string"},"headline":{"type":"object"},"distribution":{"type":"object"}},"additionalProperties":true}},{"name":"get_leaderboard","title":"Get the leaderboard","description":"Return the gold-verified leaderboard, ranked by GES, up to a requested number of rows.","readOnlyHint":true,"inputSchema":{"type":"object","properties":{"top_n":{"type":"integer","minimum":1,"maximum":100,"default":100,"description":"Number of top-ranked gold events to return (capped at 100)."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"count":{"type":"integer"},"rows":{"type":"array","items":{"type":"object"}}},"required":["count","rows"]}},{"name":"get_exercises_for_pillar","title":"Get exercises for a pillar","description":"Return the suggested improvement exercises for one scoring pillar (for example follow_through or network_design).","readOnlyHint":true,"inputSchema":{"type":"object","properties":{"pillar":{"type":"string","enum":["personalization","participation_architecture","problem_specificity","network_design","follow_through","learning_transfer"],"description":"One scoring pillar that carries exercise prescriptions."}},"required":["pillar"],"additionalProperties":false}},{"name":"make_teams","title":"Form balanced teams","description":"Form balanced teams or breakout rounds from a pasted participant roster (CSV or TSV with a header row). Runs the same deterministic team formation engine that ships client-side at https://unitedwetransform.com/team-creator/. Supports sliders for expertise_domain, organization, geography, seniority, gender, network_familiarity, ask_offer_fit, helping_potential, or a custom:<column> dimension, plus must_together and must_apart name constraints and multi-round breakout planning. Processed transiently: the participant list is never stored, never logged beyond an aggregate count, and never used to add or alter any entry in the atlas.","readOnlyHint":true,"inputSchema":{"type":"object","properties":{"participants_csv":{"type":"string","description":"CSV or TSV text with a header row and at least 4 named data rows; needs a recognizable name column."},"sliders":{"type":"object","description":"Map of dimension to an integer from -5 (group similar) to 5 (spread diverse). Dimensions: expertise_domain, organization, geography, seniority, gender, network_familiarity, ask_offer_fit, helping_potential, or a custom:<column> key naming any extra column in the CSV.","additionalProperties":{"type":"integer","minimum":-5,"maximum":5}},"must_together":{"type":"array","description":"Pairs of participant names to keep on the same team.","items":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":2}},"must_apart":{"type":"array","description":"Pairs of participant names to keep on different teams.","items":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":2}},"team_size":{"type":"integer","minimum":2,"maximum":15,"description":"Target people per team. Set this or num_teams."},"num_teams":{"type":"integer","minimum":1,"description":"Number of teams to form. Set this or team_size."},"rounds":{"type":"integer","minimum":1,"maximum":8,"default":1,"description":"Number of breakout rounds to plan, with repeat-pair avoidance across rounds."},"seed":{"type":"integer","description":"Optional seed for reproducible team formation."}},"required":["participants_csv"],"additionalProperties":false}}],"contact_email":"brandon@openworklab.com","legal_info_url":"https://uwt-edge.brandon-klein.workers.dev/methodology-trust-boundary/"}