brief-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BRAVE_API_KEY | No | Brave Search API key, used for web research. Optional but recommended (free tier available). If not set, brief-mcp automatically falls back to the DuckDuckGo HTML endpoint, which requires no API key. | |
| AZURE_CLIENT_ID | No | Azure app (client) ID from the Azure Portal app registration. Required for Microsoft 365 / Outlook calendar tools (Microsoft Graph, MSAL device-code flow). | |
| AZURE_TENANT_ID | No | Azure tenant ID for Microsoft 365 / Outlook authentication. Use "common" for personal + work accounts. | common |
| HUBSPOT_API_KEY | No | HubSpot private app token (e.g. pat-na1-xxxx...) used for CRM enrichment. If not set, CRM tools return a helpful setup message instead of crashing. | |
| GOOGLE_CREDENTIALS_PATH | No | Path to the OAuth 2.0 credentials JSON file downloaded from Google Cloud Console (Desktop app client). Required for Google Calendar tools; if not configured, all Google Calendar tools return a clear message and continue working. |
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
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_upcoming_meetingsA | Get upcoming meetings from Google Calendar for the next N hours. Returns a list of meeting objects with:
|
| research_attendeeB | Research a meeting attendee: current role, company news, and background. Results are cached for 60 minutes — repeated calls for the same person return instantly without new API requests. |
| get_meeting_briefA | Generate a full pre-meeting intelligence brief for a single meeting. Looks up the meeting from your Google Calendar, researches all attendees in parallel, and returns a formatted brief card with:
|
| brief_all_todayA | Generate meeting briefs for ALL of today's meetings. Fetches today's calendar, then researches all attendees across all meetings in parallel (deduplicated — each person only researched once even if they appear in multiple meetings). Perfect for morning prep. |
| get_outlook_meetingsA | Get upcoming meetings from Outlook/Microsoft 365 calendar. Configure AZURE_CLIENT_ID in .env to enable. On first run, a device-code authentication prompt will appear in the terminal — visit the URL shown and enter the code to authorise access. Returns the same format as get_upcoming_meetings (Google Calendar). |
| get_outlook_briefA | Generate a meeting brief from your Outlook/Microsoft 365 calendar. Same behaviour as get_meeting_brief but reads from Microsoft 365 instead of Google Calendar. Requires AZURE_CLIENT_ID to be set in .env. |
| get_crm_contextB | Look up a person in HubSpot CRM. Returns deal stage, last contact date, lifecycle stage, associated deals, and interaction notes for the given person. Set HUBSPOT_API_KEY in .env to enable CRM integration. |
| enrich_brief_with_crmA | Generate a meeting brief enriched with HubSpot CRM data. Combines Google Calendar lookup + parallel web research on attendees + HubSpot CRM deal context for each attendee. Best used for sales meetings, partner reviews, and customer calls where CRM context matters. Set HUBSPOT_API_KEY in .env to unlock CRM enrichment. |
| debrief_meetingA | Record what happened in a meeting and generate follow-up materials. Provide:
Returns:
|
| search_meeting_historyA | Search your past meeting history. Query by person name, company name, topic, decision, or date. Uses full-text search (FTS5) across meeting titles, attendees, summaries, action items, and outcomes. |
| get_person_historyB | Get the full interaction history with a specific person. Shows all past meetings with this person, topics discussed, commitments made, and outcomes. |
| get_open_action_itemsA | List all open action items from past meetings. Shows task, owner, meeting context, and how long it has been open. An action item is considered open if the meeting's follow-up has not been marked done. |
| brief_with_historyA | Generate a pre-meeting brief that includes past interaction history. Combines:
This gives a richer "full context" brief — especially valuable for recurring meetings and follow-up calls. |
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 13 tools
Five tools all generate a 'brief' (get_meeting_brief, brief_with_history, brief_all_today, get_outlook_brief, enrich_brief_with_crm), and brief_with_history is explicitly a superset of get_meeting_brief. Descriptions do differentiate the data sources (Google vs Outlook vs CRM vs history), but an agent must read carefully to pick the right variant.
Mostly snake_case verb_noun (get_upcoming_meetings, research_attendee, search_meeting_history), but the 'brief' family is inconsistent: brief_with_history, brief_all_today, get_meeting_brief, get_outlook_brief, enrich_brief_with_crm mix 'brief' as verb, noun, and modifier.
13 tools is well-scoped for a meeting-intelligence server, and each tool covers a distinct capability (calendar fetch, research, search, brief, CRM, debrief).
Core read/brief/debrief flows are covered, but the action-item lifecycle is incomplete: get_open_action_items lists items yet no tool marks a follow-up done or closes an item, and there is no way to create or update meetings.