Teams Transcript MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TRANSCRIPT_SYNC_APP_NAME | No | The expected application name for the cloud app registration (e.g. Transcript Sync Cloud). | |
| TRANSCRIPT_SYNC_CLIENT_ID | No | The client ID of the local public-client app registration. | |
| TRANSCRIPT_SYNC_TENANT_ID | No | The Microsoft Entra directory (tenant) ID. | |
| TRANSCRIPT_SYNC_SERVER_URL | No | The public HTTPS origin of the deployed cloud service (without /mcp). | |
| TRANSCRIPT_SYNC_CLOUD_CERT_PEM | No | The combined private key and certificate PEM content or file path used for OBO certificate authentication. | |
| TRANSCRIPT_SYNC_ATTENDANCE_MODE | No | Attendance checking mode: 'invite' (default) or 'strict'. | invite |
| TRANSCRIPT_SYNC_CLOUD_CLIENT_ID | No | The client ID of the cloud app registration. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| auth_statusA | Show current sign-in state, tenant, client ID and granted scopes. |
| sign_inA | Sign in to your Microsoft 365 tenant via your browser. |
| sign_outA | Forget the cached sign-in (clears the macOS Keychain token cache). Local only — does not revoke Microsoft browser sessions or issued tokens. |
| list_recent_meetingsA | List recent Teams meetings on your calendar (newest first). Each meeting includes a transcript_status field: available (a transcript exists), unavailable (the meeting was not transcribed), or unknown (could not be determined without fetching). Only call get_transcript for meetings where transcript_status is available or unknown — meetings marked unavailable have no transcript and the call will fail. Do not tell the user a transcript exists unless transcript_status is available. Args: days: How many days back to look (1–90, clamped). only_with_transcripts: Omit meetings marked unavailable. |
| get_transcriptA | Fetch the transcript of a Teams meeting you were invited to. Pass
Args: meeting: Meeting id (preferred), list position, or subject fragment. raw_vtt: Return the raw WebVTT instead of speaker-attributed text. |
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 5 tools
Each tool maps to a distinct concern: authentication state, sign-in, sign-out, meeting listing, and transcript retrieval. No overlap or ambiguous selection between them.
Four tools follow clear verb-based snake_case patterns (sign_in, sign_out, list_recent_meetings, get_transcript), while auth_status is a noun-phrase status query rather than get_auth_status. Naming is still consistent and predictable overall.
Five tools is appropriate for a focused Teams transcript server: the auth lifecycle plus list/fetch covers the core task without bloat. Every tool earns its place.
The auth and transcript-retrieval workflows are well covered, and the transcript_status guidance prevents dead-end calls. The only minor gap is the lack of a direct meeting lookup or search outside the recent-meetings list.