Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AZURE_CLIENT_ID | Yes | App registration client ID from the Azure Portal. | |
| AZURE_TENANT_ID | Yes | Azure AD tenant ID from the Azure Portal. | |
| PYTHONUNBUFFERED | No | Used to ensure output is sent immediately to the terminal or logs. | |
| AZURE_CLIENT_SECRET | No | Only required for confidential clients. | |
| M365_COPILOT_TIMEOUT | No | Request timeout in seconds (default: 60). | 60 |
| M365_COPILOT_CACHE_DIR | No | Token cache location. |
Capabilities
Features and capabilities supported by this server
| 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 |
|---|---|
| m365_retrieve | Retrieve raw text chunks from M365 for YOUR AI to reason over. Returns relevance-scored excerpts from SharePoint/OneDrive—you control synthesis.
Use for:
- Custom analysis and cross-document reasoning
- When you need source text, not just answers
- Deep research where you want control over synthesis
Use m365_chat instead for:
- Quick Q&A where M365's answer is sufficient
- Calendar/email questions
- People lookup |
| m365_chat | Quick Q&A with M365 Copilot. Gets synthesized answers from email, calendar, Teams, SharePoint, OneDrive.
Supports multi-turn conversation.
Use for:
- People questions ('Who owns X?')
- Meeting schedules and availability
- Email summaries
- Enterprise facts and policies
Use m365_retrieve instead when:
- You need raw source text
- You want to control reasoning
- You need cross-document analysis |
| m365_meetings | Get AI-generated meeting summaries, action items, and mentions from Teams. Returns structured data: notes, decisions, tasks with owners, when you were mentioned.
Requires:
- Transcription enabled during meeting
- ~4 hours after meeting ends for insights to be ready
Use for:
- Post-meeting follow-up
- Finding action items assigned to you
- Checking what you missed in meetings
Does NOT work for:
- Channel meetings
- Meetings without transcription enabled |
| m365_search | Find documents in OneDrive using semantic + keyword hybrid search. Returns file metadata, previews, URLs—not full content.
Use for:
- Discovering relevant files
- Finding documents by topic when you don't know exact names
- Building a list of files to analyze
Use m365_retrieve instead when:
- You need actual document content
- You want text for analysis
Limitation: OneDrive only (SharePoint search coming) |
| m365_chat_with_files | Ask questions about specific documents you already have URIs for. M365 Copilot reads the files and answers.
Use for:
- Summarizing known documents
- Comparing specific files
- Extracting info from particular docs
Use m365_search first when:
- You need to find the files
Use m365_retrieve when:
- You want raw text chunks, not Copilot's synthesis |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |