gifos-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GIFOS_URL | No | The GifOS site to use. It must be 0.9.23 or newer with Meeting Bot in its store. | https://gifos.app |
| GIFOS_RELAY | No | A custom relay (wss://…) for self-hosted GifOS. It is added to meeting links. | GifOS default |
| GIFOS_CHROME | No | Path to another Chromium or Chrome binary. | Playwright's Chromium |
| GIFOS_STT_APP | No | The store app that turns speech into text. `none` turns transcription off. | offline-stt-whisper |
| GIFOS_BOT_NAME | No | The Meeting Bot name. Together with the password it derives the bot's secret admin meeting. The name is what participants see. If unset, a strong name is generated once and kept in GIFOS_MCP_HOME/bot.json (mode 0600). | generated |
| GIFOS_HEADLESS | No | `0` shows the browser windows, which helps when debugging. | 1 |
| GIFOS_MCP_HOME | No | The browser profile, the bot credential, and meetings.json. | ~/.gifos-mcp |
| GIFOS_MCP_LAZY | No | `1` starts the browser on the first tool call instead of at launch. | 0 |
| GIFOS_MCP_DEBUG | No | `1` logs the GifOS console to stderr and adds per-meeting caption state to `status`. | 0 |
| GIFOS_MCP_SHOTS | No | A folder for screenshots of the bot's screens (for debugging). | none |
| GIFOS_TIMEOUT_MS | No | How long to wait for GifOS steps such as joining. | 120000 |
| GIFOS_BOT_PASSWORD | No | The Meeting Bot password. Together with the name it derives the bot's secret admin meeting. If unset, a strong password is generated once and kept in GIFOS_MCP_HOME/bot.json (mode 0600). | generated |
| GIFOS_MCP_HTTP_TOKEN | No | A bearer token for `--http`. | none |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_meetingA | Creates a new GifOS meeting link. Nothing joins yet: share the link (for example in a calendar invite the user approves), then call start_meeting at meeting time. start_time is stored as given, for your own scheduling; this server does not schedule anything. |
| start_meetingB | The headless Meeting Bot joins the meeting created with create_meeting and starts transcribing. Participants see a 🤖 bot badge and a transcribing chip. |
| join_meetingA | The Meeting Bot joins a GifOS meeting someone else created (a /run.html#v=… or /meet/… link) and starts transcribing. Returns a meeting_id for the other tools. |
| muteA | Stops the bot transcribing this meeting; the transcribing chip goes away. The bot never sends audio, so this is the only kind of mute it has. |
| unmuteB | Turns transcription back on for this meeting. |
| share_contentA | Posts text (an agenda, a link, a summary) into the meeting chat as the bot. Screen sharing is not available: the bot has no screen or camera. |
| get_transcriptA | Returns the transcript as plain text, one "speaker: words" line per caption. Works while the meeting is live and after end_meeting. |
| end_meetingA | Saves the transcript, then the bot leaves. Other participants can stay; GifOS meetings have no owner who can close them for everyone. |
| list_meetingsA | Meetings this server created or joined, newest first, with their state (scheduled, live, ended). |
| statusA | Is the headless GifOS browser up, which GifOS it uses, and which meetings the bot is in right now. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool targets a distinct action, and the descriptions actively disambiguate the subtle create_meeting vs start_meeting vs join_meeting distinction (create only makes a link, start joins your own, join handles someone else's). mute/unmute and share_content/get_transcript are obviously separable. No two tools appear to do the same thing.
The set is dominated by a clean snake_case verb_noun pattern (list_meetings, create_meeting, start_meeting, join_meeting, share_content, get_transcript, end_meeting). The single-word tools mute, unmute, and status are minor deviations from that pattern but remain clear and readable.
Ten tools is well within the ideal range and each one covers a real stage of the meeting-bot lifecycle. Nothing feels padded or redundant; the surface is tightly scoped to the server's purpose.
The lifecycle is largely covered: create, start, join, list, mute/unmute, share, retrieve transcript, end, and status. Minor gaps remain (e.g. no tool to fetch or delete a single meeting, and no way to remove/inspect an ended meeting beyond the transcript), but core workflows are usable end to end.