Model Context Protocol (MCP) server for interacting with SpeechWire tournament management
Project description
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 |
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file speechwire_mcp-0.1.1.tar.gz.
File metadata
- Download URL: speechwire_mcp-0.1.1.tar.gz
- Upload date:
- Size: 71.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ed150d8f1090a86369d045f9c8d7e3adc665074b5bffe7922b4b69179316daf
|
|
| MD5 |
6cd9840b092d28b845d567ba0d930f9a
|
|
| BLAKE2b-256 |
7f80942d65367d7908cc5a478858478fbd38f168f012f1989f03be1bae23d276
|
Provenance
The following attestation bundles were made for speechwire_mcp-0.1.1.tar.gz:
Publisher:
publish.yml on jessica-writes-code/speechwire-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
speechwire_mcp-0.1.1.tar.gz -
Subject digest:
1ed150d8f1090a86369d045f9c8d7e3adc665074b5bffe7922b4b69179316daf - Sigstore transparency entry: 2176499371
- Sigstore integration time:
-
Permalink:
jessica-writes-code/speechwire-mcp@2051c700d03988b8e0b391f3d6f2ed7e2a72ef47 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/jessica-writes-code
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2051c700d03988b8e0b391f3d6f2ed7e2a72ef47 -
Trigger Event:
push
-
Statement type:
File details
Details for the file speechwire_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: speechwire_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 46.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25259ffe5d063068317b6d0382c34efb62ab6a84f35ab7f2a392449f5fad4f38
|
|
| MD5 |
246ef765889d0d62354c903a9f558d8a
|
|
| BLAKE2b-256 |
7e13d0f58e27367396c5052ac6ecd4ccddcd6ce4582439ea12db3beccfbf2c05
|
Provenance
The following attestation bundles were made for speechwire_mcp-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on jessica-writes-code/speechwire-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
speechwire_mcp-0.1.1-py3-none-any.whl -
Subject digest:
25259ffe5d063068317b6d0382c34efb62ab6a84f35ab7f2a392449f5fad4f38 - Sigstore transparency entry: 2176499608
- Sigstore integration time:
-
Permalink:
jessica-writes-code/speechwire-mcp@2051c700d03988b8e0b391f3d6f2ed7e2a72ef47 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/jessica-writes-code
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2051c700d03988b8e0b391f3d6f2ed7e2a72ef47 -
Trigger Event:
push
-
Statement type: