matimo-microsoft
Microsoft Graph tools for Matimo - search, OneDrive/SharePoint files, Outlook mail, Microsoft Teams, calendar, and SharePoint publishing.
Installation
pip install matimo matimo-microsoft
Available Tools (9 Total)
| Tool | Description | Approval | Graph endpoint |
|---|---|---|---|
ms_search_knowledge |
Search SharePoint sites, OneDrive/SharePoint files, and list items | - | POST /search/query |
ms_read_file |
Read a OneDrive/SharePoint file's contents (plain-text formats only) | - | GET /drives/{id}/items/{id}/content |
ms_list_files |
List the children of a OneDrive/SharePoint folder | - | GET /drives/{id}/items/{id}/children |
ms_get_email |
List messages in the signed-in user's mailbox | - | GET /me/messages |
ms_send_email |
Send an email as the signed-in user | required | POST /me/messages + /send |
ms_send_teams_message |
Post (or reply to) a message in a Teams channel | - | POST /teams/{id}/channels/{id}/messages |
ms_create_document |
Upload a small file to OneDrive/SharePoint (≤4 MB) | - | PUT /drives/{id}/items/{id}:/{name}:/content |
ms_create_calendar_event |
Create a calendar event, optionally as a Teams meeting | - | POST /me/events |
ms_publish_to_sharepoint |
Create and publish a SharePoint site page | required | POST /sites/{id}/pages + /publish |
Quick Start
from matimo import Matimo
matimo = await Matimo.init(auto_discover=True)
# Search across SharePoint and OneDrive
search = await matimo.execute("ms_search_knowledge", {"query": "Q3 budget filetype:xlsx", "top": 5})
# List messages in the signed-in user's mailbox
inbox = await matimo.execute("ms_get_email", {"top": 5, "filter": "isRead eq false"})
# Send an email (requires_approval: true - routed through HITL)
await matimo.execute(
"ms_send_email",
{"to": ["alice@contoso.com"], "subject": "Weekly status update", "body": "Here is the summary..."},
)
Authentication
Microsoft Graph tools use delegated OAuth2 access tokens. Matimo never performs the OAuth code exchange itself - connect Microsoft through your Matimo deployment (Nova), then provide the resulting token at execution time:
export MICROSOFT_GRAPH_ACCESS_TOKEN="eyJ0eXAiOiJKV1Qi..."
or pass it through per-call credentials:
await matimo.execute(
"ms_get_email",
{"top": 5},
credentials={"MICROSOFT_GRAPH_ACCESS_TOKEN": token},
)
Risk & Approval
ms_send_email and ms_publish_to_sharepoint are marked requires_approval: true -
Matimo routes them through the human-in-the-loop approval flow before they execute,
since they send mail and publish content visible to others on the user's behalf. The
other 7 tools have no requires_approval flag and execute immediately.
None of the 9 tools declare an explicit risk: field in their YAML. If you enable
HITL quarantine (enableHITL=True with a quarantineRiskLevels policy config), be
aware that every tool in this package uses execution.type: function, and Matimo's
automatic risk classifier assigns type: function tools risk: critical by default
regardless of what they actually do - so all 9 tools, including the read-only ones,
will classify as critical if critical is in your quarantineRiskLevels.
Documentation
- Microsoft Graph API overview
- Graph Explorer
- Python Examples - Direct SDK
- Python Examples - LangChain agent
- Python Examples - CrewAI crew
Links
- PyPI: https://pypi.org/project/matimo-microsoft/
- GitHub: https://github.com/tallclub/matimo
- Microsoft Graph API Docs: https://learn.microsoft.com/en-us/graph/overview
- Matimo documentation: https://docs.matimo.dev/
Metadata
Release files for matimo-microsoft 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| matimo_microsoft-0.2.0.tar.gz | 30.1 kB | Without provenance | Details for matimo_microsoft-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| matimo_microsoft-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for matimo_microsoft-0.2.0-py3-none-any.whl |
Total release size: 66.0 kB
Release files / matimo_microsoft-0.2.0.tar.gz
| Download URL | matimo_microsoft-0.2.0.tar.gz |
|---|---|
| Size | 30.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f83c4454cb4740966a9e1756cb3199fdb405982d7de77524d3a467d404274568
|
|
BLAKE2b-256 checksum How to use checksums |
eaf220791045aa67053cbf34c13d5b347371e8de1637881814b537a866c56cd4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / matimo_microsoft-0.2.0-py3-none-any.whl
| Download URL | matimo_microsoft-0.2.0-py3-none-any.whl |
|---|---|
| Size | 35.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
937956e6213b39f9ff140858dbc052b2b49fa52a58ecb7100758573ad483395f
|
|
BLAKE2b-256 checksum How to use checksums |
3697955bc124cf0b03d71bd39d598bba10f8a70cbbb98b57c909b6c152d64470
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for matimo-microsoft 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.