Work with Microsoft 365 services via the Graph API — emails, calendar events, SharePoint sites (read and write), Teams chats and channel messages, OneDrive files, OneNote notebooks, Planner task…
Install the "msgraph" agent skill from https://github.com/codemie-ai/codemie-code/tree/main/src/agents/plugins/claude/plugin/skills/msgraph into .claude/skills/msgraph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "msgraph", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add codemie-ai/codemie-code --skill msgraph -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "msgraph" agent skill from https://github.com/codemie-ai/codemie-code/tree/main/src/agents/plugins/claude/plugin/skills/msgraph into .agents/skills/msgraph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "msgraph", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add codemie-ai/codemie-code --skill msgraph -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "msgraph" agent skill from https://github.com/codemie-ai/codemie-code/tree/main/src/agents/plugins/claude/plugin/skills/msgraph into .cursor/skills/msgraph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "msgraph", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add codemie-ai/codemie-code --skill msgraph -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "msgraph" agent skill from https://github.com/codemie-ai/codemie-code/tree/main/src/agents/plugins/claude/plugin/skills/msgraph into .gemini/skills/msgraph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "msgraph", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add codemie-ai/codemie-code --skill msgraph -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "msgraph" agent skill from https://github.com/codemie-ai/codemie-code/tree/main/src/agents/plugins/claude/plugin/skills/msgraph into .github/skills/msgraph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "msgraph", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add codemie-ai/codemie-code --skill msgraph -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "msgraph" agent skill from https://github.com/codemie-ai/codemie-code/tree/main/src/agents/plugins/claude/plugin/skills/msgraph into .opencode/skills/msgraph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "msgraph", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
msgraph
GitHub stars
294
Token cost
~4.1k tokens
SKILL.md length
877 words
Files
3 (incl. scripts)
Skills in repo
9
Repo updated
First seen
Licence
Apache-2.0
At a glance
Work with Microsoft 365 services via the Graph API — emails, calendar events, SharePoint sites (read and write), Teams chats and channel messages, OneDrive files, OneNote notebooks, Planner task…
Works in 3 steps: Run status → check login → Run emails --limit 15 → show results → If user wants to read one, run emails…
The user asks about their emails
SKILL.md covers Setup & Authentication, Available Commands and Workflow Patterns
Runs JavaScript scripts from its folder; calls node
What it does
Msgraph is an agent skill from codemie-ai/codemie-code. Work with Microsoft 365 services via the Graph API — emails, calendar events, SharePoint sites (read and write), Teams chats and channel messages, OneDrive files, OneNote notebooks, Planner task boards, Microsoft To Do task lists, AI meeting insights (Copilot recap), contacts, and org chart. Use this skill whenever the user asks about their emails, inbox, unread messages, meetings, calendar, Teams messages or chats, channel messages, SharePoint documents, OneDrive files, OneNote notes or notebooks, Planner plans…
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `README.md` and `scripts/msgraph.js`).
It sits in Documents & Office, covering Cloud office suites. It works with Microsoft 365, Microsoft OneDrive, Microsoft SharePoint and Node.js. The repository describes itself as: AI Run CodeMie CLI with analytics capabilities. The licence is Apache-2.0.
When your agent uses it
The user asks about their emails
Unread messages
Channel messages
SharePoint documents
Example prompts
“my tasks”
“/msgraph”
Requirements
Python 3
Node.js
Workflow steps
3 steps, taken from the first numbered list in SKILL.md.
1Run status → check login
2Run emails --limit 15 → show results
3If user wants to read one, run emails --read ID
What it can do on your machine
Read from SKILL.md and the folder at commit 0218c8d. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Ships 1 file in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
node
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Msgraph loads about 4.1k tokens when it runs. Until then it costs about 241 tokens; SKILL.md has 877 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~241
When it runs· the whole SKILL.md, loaded when a task matches
~4.1k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
Download SKILL.mdSave it as .claude/skills/msgraph/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
msgraph
description
Work with Microsoft 365 services via the Graph API — emails, calendar events, SharePoint sites (read and write), Teams chats and channel messages, OneDrive files, OneNote notebooks, Planner task boards, Microsoft To Do task lists, AI meeting insights (Copilot recap), contacts, and org chart. Use this skill whenever the user asks about their emails, inbox, unread messages, meetings, calendar, Teams messages or chats, channel messages, SharePoint documents, OneDrive files, OneNote notes or notebooks, Planner plans or tasks, "my tasks", to-do lists, action items, meeting summaries, colleagues, manager, direct reports, or any personal/organizational Microsoft data. Invoke proactively any time the user mentions Outlook, Teams, SharePoint, OneDrive, OneNote, Planner, Microsoft To Do, or wants to interact with their Microsoft 365 account. The skill uses a local Node.js CLI (msgraph.js) that handles authentication, token caching, and all API calls.
Microsoft Graph API Skill
This skill lets you interact with Microsoft 365 services on behalf of the user using the
Microsoft Graph API. The Node.js CLI at scripts/msgraph.js handles everything — no Python
or extra packages needed, only the Node.js that CodeMie already requires.
Setup & Authentication
Check login status first — always run this before any other command:
bash
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js status
Output interpretation:
Logged in as: user@company.com → proceed with any command below
NOT_LOGGED_IN → follow the Login Flow below
TOKEN_EXPIRED → session expired, also follow the Login Flow below
This opens the system browser for Microsoft authentication (PKCE flow). If the browser
does not open automatically, a URL will be printed in the terminal — navigate to it manually.
After successful sign-in, the token is cached at ~/.ms_graph_token_cache.json and all
subsequent commands run silently.
Use --force to re-authenticate even when already logged in:
Your browser will open for Microsoft sign-in. If it doesn't open automatically, a URL
will appear in the terminal — navigate to it to complete authentication."
Available Commands
Profile & Org
bash
# Your profile
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js me
# Your manager
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js org --manager
# Your direct reports
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js org --reports
Emails
bash
# List recent emails (default 10)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js emails
# More emails
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js emails --limit 25
# Unread only
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js emails --unread
# Search emails
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js emails --search "invoice Q4"
# Read a specific email by ID (copy ID from list output)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js emails --read MESSAGE_ID
# Send an email
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js emails --send recipient@example.com --subject "Hello" --body "Message text"
# Browse specific folder (inbox, sentitems, drafts, deleteditems, junkemail)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js emails --folder sentitems --limit 5
# Machine-readable JSON output
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js emails --json
# List followed/joined SharePoint sites
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js sharepoint --sites
# Browse files in a specific site (use ID from --sites output)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js sharepoint --site SITE_ID
# Browse a subfolder within a site
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js sharepoint --site SITE_ID --path "Documents/Reports"
# Download a file
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js sharepoint --download ITEM_ID --output report.xlsx
Teams
bash
# List all Teams chats
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js teams --chats
# Read messages from a chat (use chat ID from --chats output)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js teams --messages CHAT_ID
# Send a message to a chat
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js teams --send "Hello team!" --chat-id CHAT_ID
# List teams you're a member of
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js teams --teams-list
OneDrive
bash
# List root files
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onedrive
# Browse a folder
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onedrive --path "Documents"
# Upload a file
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onedrive --upload ./report.pdf --dest "Documents/report.pdf"
# Download a file by ID
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onedrive --download ITEM_ID --output local_copy.pdf
# File metadata
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onedrive --info ITEM_ID
OneNote
bash
# List all notebooks
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onenote --notebooks
# List sections in a notebook (use ID from --notebooks output)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onenote --sections NOTEBOOK_ID
# List pages in a section (use ID from --sections output)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onenote --pages SECTION_ID
# Read a page's content (use ID from --pages output)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onenote --read PAGE_ID
# Search pages across all notebooks
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onenote --search "meeting notes"
# Create a new page in a section
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onenote --create "My Note" \
--section SECTION_ID --body "Note content here"
# Machine-readable JSON output
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js onenote --notebooks --json
Planner
Team/group task boards. Plans live inside Microsoft 365 groups, so --plans needs the
Group.Read.All scope. Updates use optimistic concurrency under the hood (etag handling is
automatic).
bash
# List all plans shared with you (one call)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js planner --plans
# Tasks assigned to you across all plans (the usual starting point)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js planner --my-tasks
# List tasks in a specific plan (use ID from --plans)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js planner --plan-id PLAN_ID --tasks
# List buckets (columns) in a plan
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js planner --plan-id PLAN_ID --buckets
# Show one task's details (description, % complete, due date)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js planner --task-id TASK_ID
# Create a task in a plan (bucket, due date and assignee are optional)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js planner --plan-id PLAN_ID \
--create "Write release notes" --bucket-id BUCKET_ID --due 2026-06-20 --assign USER_AAD_ID
# Mark a task complete (reads the etag, then sets it to 100%)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js planner --complete TASK_ID
# Machine-readable JSON output (on any read command)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js planner --my-tasks --json
--my-tasks returns only planId/bucketId (no names). To turn an ID into a readable
plan name, run planner --plans. Use people --search NAME to get a user's AAD ID for --assign.
To Do
Personal Microsoft To Do task lists (simpler than Planner — flat lists of tasks).
bash
# List your task lists
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js todo --lists
# List tasks in a list (use ID from --lists)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js todo --list-id LIST_ID --tasks
# Create a task
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js todo --list-id LIST_ID \
--create "Renew certificate" --body "Before it expires" --due 2026-06-15
# Mark a task complete
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js todo --list-id LIST_ID --complete TASK_ID
Channels
bash
# List channels in a team (use team ID from teams --teams-list)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js channels --team-id TEAM_ID --list
# Read recent messages in a channel
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js channels --team-id TEAM_ID --channel-id CHANNEL_ID --messages
# Read messages with their reply threads (needed to detect unanswered/clarification-only threads)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js channels --team-id TEAM_ID --channel-id CHANNEL_ID --messages --expand-replies --json
# Post a message to a channel
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js channels --team-id TEAM_ID --channel-id CHANNEL_ID --send "Hello channel!"
Transcripts
bash
# List online meetings in a date range (defaults to last 7 days)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js transcripts --start 2026-03-06
# List online meetings in a specific date range
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js transcripts --start 2026-03-06 --end 2026-03-07
# Find meetings by subject keyword and show their transcripts
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js transcripts --start 2026-03-06 --subject "standup"
# List transcripts for a known meeting ID
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js transcripts --meeting MEETING_ID
# Read transcript content (plain text, printed to stdout)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js transcripts --meeting MEETING_ID --transcript TRANSCRIPT_ID
# Save transcript to a file
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js transcripts --meeting MEETING_ID --transcript TRANSCRIPT_ID --output meeting.txt
# Download as VTT (timestamped captions format)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js transcripts --meeting MEETING_ID --transcript TRANSCRIPT_ID --vtt --output meeting.vtt
# AI meeting recap (Copilot-generated notes, action items, mentions) for a known meeting
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js transcripts --meeting MEETING_ID --insights
# AI recap by date + subject (resolves the meeting for you)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js transcripts --start 2026-06-09 --subject "planning" --insights
AI Insights require a Microsoft 365 Copilot license. Insights are generated only after a
meeting ends (with transcription/recording on) and can take up to 4 hours to appear. A 403
means the Copilot license is missing; an empty result means insights aren't ready yet.
People & Contacts
bash
# Frequent collaborators (AI-ranked by Microsoft)
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js people
# Search people by name
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js people --search "Alice"
# Outlook address book contacts
node ${CLAUDE_PLUGIN_ROOT}/skills/msgraph/scripts/msgraph.js people --contacts
Workflow Patterns
"Show me my emails"
Run status → check login
Run emails --limit 15 → show results
If user wants to read one, run emails --read ID
"What's on my calendar today/this week?"
Run calendar --limit 10
Parse dates in output and filter for user's timeframe
"Find a file in SharePoint"
Run sharepoint --sites → list sites
Run sharepoint --site SITE_ID → browse files
Use --path to drill into folders
Offer --download ITEM_ID if user wants the file
"Check my Teams messages"
Run teams --chats → list chats
User picks a chat → run teams --messages CHAT_ID
"Show me my OneNote notes" / "Find a note about X"
Run onenote --notebooks → list notebooks
Run onenote --sections NOTEBOOK_ID → list sections
Run onenote --pages SECTION_ID → list pages, or use onenote --search "keyword" to search directly
Run onenote --read PAGE_ID → display page content
"Show me the transcript from yesterday's standup"
Run transcripts --start YYYY-MM-DD --subject "standup" → finds the meeting and lists transcript IDs
Run transcripts --meeting MEETING_ID --transcript TRANSCRIPT_ID → reads full transcript text
Show full SKILL.md (366 more words)Show less
"Get all meeting transcripts for today"
Run transcripts --start YYYY-MM-DD → lists all online meetings for the day
Run transcripts --meeting MEETING_ID → lists available transcripts per meeting
Run transcripts --meeting MEETING_ID --transcript TRANSCRIPT_ID --output meeting.txt → saves each transcript
"Post a message to a Teams channel"
Run teams --teams-list → get the team ID
Run channels --team-id TEAM_ID --list → get the channel ID
Run channels --team-id TEAM_ID --channel-id CHANNEL_ID --send "message"
"Who's my manager?" / "Who reports to me?"
Run org --manager or org --reports
"What are my tasks?" / "What's on my Planner?"
Run planner --my-tasks → tasks assigned to you across all plans
Run planner --plans to map any planId in the output to a readable plan name
Drill in with planner --plan-id PLAN_ID --tasks if the user wants a specific board
Also check todo --lists then todo --list-id LIST_ID --tasks for personal To Do items
"Add a task to Planner" / "Create a to-do"
Planner: run planner --plans (then --buckets if a column is needed) to get IDs, then
planner --plan-id PLAN_ID --create "TITLE" (add --due, --assign, --bucket-id as needed)
To Do: run todo --lists, then todo --list-id LIST_ID --create "TITLE"
"Mark that task done"
Planner: planner --complete TASK_ID · To Do: todo --list-id LIST_ID --complete TASK_ID
"Summarize yesterday's meeting" / "What were the action items?"
Run transcripts --start YYYY-MM-DD --subject "keyword" --insights (resolves the meeting and
prints Copilot notes, action items, and mentions)
Or, with a known meeting ID: transcripts --meeting MEETING_ID --insights
If you get a 403, tell the user a Microsoft 365 Copilot license is required; if empty, insights
may not be ready yet (up to 4 hours after the meeting ends)
Error Handling
Exit code
Meaning
0
Success
1
API error (shown in output)
2
NOT_LOGGED_IN — user must run login
When you see Permission denied errors, it means the OAuth scope isn't granted for that operation.
This can happen if the user's organization has restricted certain Graph API permissions.
Dependencies
None — the script uses only built-in Node.js modules (https, fs, path, os).
Node.js >= 18 is required, which is already a CodeMie prerequisite.
IMPORTANT: you must work with current date (get it from sh/bash)
Msgraph next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Guides work with Outlook, OneDrive, SharePoint, Teams, Excel, To Do and Planner through aai-cli's Microsoft Graph commands, starting from which service owns the data.
Read OneDrive and SharePoint files via the Microsoft 365 MCP server — list folder contents, fetch item metadata, inspect versions and sharing permissions.
Adds Work IQ (M365 Copilot Search) to a Power Apps code app via the Work IQ Copilot MCP connector (shareda365copilotchatmcp), then wires up a production-ready McpSession wrapper for AI-powered…
CodeMie Analytics expert — use this skill whenever the user asks about CodeMie usage data, AI adoption metrics, user leaderboards, CLI insights, spending, LiteLLM costs, token usage, or wants to…
This skill should be used when the user wants to report a bug, file an issue, or suggest a feature for the CodeMie Code CLI tool (codemie-ai/codemie-code repository on GitHub).
Work with Microsoft 365 services via the Graph API — emails, calendar events, SharePoint sites (read and write), Teams chats and channel messages, OneDrive files, OneNote notebooks, Planner task…. Msgraph is an agent skill from codemie-ai/codemie-code. Work with Microsoft 365 services via the Graph API — emails, calendar events, SharePoint sites (read and write), Teams chats and channel messages, OneDrive files, OneNote notebooks, Planner task boards, Microsoft To Do task lists, AI meeting insights (Copilot recap), contacts, and org chart.
When should I use Msgraph?
Msgraph fits situations like: the user asks about their emails; unread messages; channel messages; sharePoint documents.
How do I install Msgraph in Claude Code?
Run `npx skills add codemie-ai/codemie-code --skill msgraph -a claude-code`. Or copy the skill folder (src/agents/plugins/claude/plugin/skills/msgraph in codemie-ai/codemie-code) into .claude/skills/msgraph in your project. Claude Code loads it when a task matches its description.
How do I install Msgraph in Codex?
Run `npx skills add codemie-ai/codemie-code --skill msgraph -a codex`. Or copy the skill folder (src/agents/plugins/claude/plugin/skills/msgraph in codemie-ai/codemie-code) into .agents/skills/msgraph in your project. Codex loads it when a task matches its description.
Can I use Msgraph in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add codemie-ai/codemie-code --skill msgraph -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/msgraph, .gemini/skills/msgraph, .github/skills/msgraph and .opencode/skills/msgraph in your project.
What does Msgraph need to run?
Going by SKILL.md and its folder, Msgraph needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: Python 3; Node.js.
Does Msgraph access the network?
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Is Msgraph safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
What licence does Msgraph use?
Msgraph is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Msgraph use?
About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Msgraph?
Skills that share tags, products or a category with Msgraph: aai-cli Microsoft 365 (aai-labs/agent-barn, 109 stars), Workiq (microsoft/work-iq, 1k stars), Workiq Preview (microsoft/work-iq, 1k stars) and Msgraph Files (automateyournetwork/netclaw, 674 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Msgraph?
codemie-ai (a GitHub user) maintains it in codemie-ai/codemie-code, which has 294 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 6, 2026.
Source: codemie-ai/codemie-code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.