SpeechWire MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with secure, authenticated access to SpeechWire tournament data for speech-and-debate (forensics) competitions.
The server scrapes manage.speechwire.com behind an authenticated session and exposes structured tournament data through MCP tools, enabling AI assistants to help tournament directors manage judge assignments, rooms, teams, entries, and round pairings.
Features
- Judge management — list judges, contact info, availability, school associations, judge types, and add new judges
- Team & entry data — team rosters, entries by team, hybrid/cross-school entries
- Room management — room lists, usage grids, room-vs-section counts
- Schematics — event lists, round-by-round pairings with judges, rooms, and competitors
- Tournament structure — timeslots, competition groupings
- Results — tab sheets with round outcomes, speaker scores, and placements
- Account discovery — list and select accounts and tournaments interactively
- Session management — automatic re-authentication on session expiry
Installation
pip install speechwire-mcp
Set your SpeechWire credentials as environment variables:
export SPEECHWIRE_EMAIL="your-email@example.com"
export SPEECHWIRE_PASSWORD="your-password"
Available MCP Tools
| Tool | Description |
|---|---|
speechwire_list_user_accounts |
List accounts available after login |
speechwire_select_user_account |
Select an account to work with |
speechwire_list_user_tournaments |
List tournaments for the selected account |
speechwire_select_user_tournament |
Select a tournament to activate |
speechwire_list_judges |
List all judges with roster details |
speechwire_get_judge_contact |
Get judge email and phone |
speechwire_get_judge_availability |
Get judge availability by timeslot |
speechwire_get_judge_school |
Get judge's school association |
speechwire_add_judge |
Add a new judge to the tournament |
speechwire_update_judge_email |
Update a judge's email address |
speechwire_update_judge_availability |
Update a judge's availability slots |
speechwire_update_judge_school |
Update a judge's school/team affiliation |
speechwire_list_judge_types |
List configured judge types |
speechwire_list_rooms |
List tournament rooms |
speechwire_get_room_usage |
Get room time-slot usage grid |
speechwire_get_room_counts |
Get rooms vs. sections per grouping/round |
speechwire_list_teams |
List registered teams |
speechwire_get_team_entries |
Get entries for a specific team |
speechwire_list_hybrid_entries |
List cross-school hybrid entries |
speechwire_list_timeslots |
List tournament schedule timeslots |
speechwire_list_groupings |
List competition groupings |
speechwire_list_schematic_events |
List schematic events with available rounds |
speechwire_get_round_schematic |
Get pairings for a specific event round |
speechwire_get_tab_sheet |
Get results tab sheet for a grouping |
Contributing
Source contribution guidance, including MCP tool authoring conventions, lives
in src/README.md.
License
Metadata
Release files for speechwire-mcp 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| speechwire_mcp-0.1.4.tar.gz | 74.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| speechwire_mcp-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 121.8 kB
Release files / speechwire_mcp-0.1.4.tar.gz
| Download URL | speechwire_mcp-0.1.4.tar.gz |
|---|---|
| Size | 74.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e5c56d6049c7d710432597be36b875f2b3e34e7f8e2b3f8fd542a058d794e75a
|
|
BLAKE2b-256 checksum How to use checksums |
83a0f8af402e2ad367338e7524531e817ad4d98d615f9eff8e0ad7afebda8919
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 8, 2026.
Transparency logRelease files / speechwire_mcp-0.1.4-py3-none-any.whl
| Download URL | speechwire_mcp-0.1.4-py3-none-any.whl |
|---|---|
| Size | 47.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
730c588e5f636cce9320c40d9fbb4f4326520babe519782e81f587b38baec41b
|
|
BLAKE2b-256 checksum How to use checksums |
c1c0bf158dbd680cdf285c2f64ebe9ad948a73ffd5a3c9f39061989ff76534fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 8, 2026.
Transparency logSecurity for speechwire-mcp 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for speechwire_mcp-0.1.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 8, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.