ms365
Read Microsoft 365 data through the ms365 MCP server -- SharePoint and OneDrive documents, Outlook mail and calendar, Teams chats and channels, and the user…
Skill by cormacc
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/cormacc-ms365
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: spreadsheets, backend, data, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ms365
What's inside
- Skill name
ms365- Description
- Read Microsoft 365 data through the ms365 MCP server -- SharePoint and OneDrive documents, Outlook mail and calendar, Teams chats and channels, and the user directory -- and change SharePoint or OneDrive files through a Babashka Graph client (check out, upload, check in, publish a version, write Excel cells). Use whenever the user asks to find, read, summarise, or ingest company documents, SharePoint sites or libraries, emails, meetings, Teams messages, or colleague details, or to check out, edit, upload, check in or publish a SharePoint file or write rows into a SharePoint workbook, even if they do not name Microsoft 365 or the MCP server.
- License
- MIT
- Compatibility
- Requires the Softeria ms-365-mcp-server running in HTTP mode on 127.0.0.1:3365 and an MCP client configured for it (pi native MCP server entry `ms365` in `pi/mcp.json`). The Graph client needs Babashka. Setup is in README.org.
- Instructions
- 45 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (9)
- README.org
- SKILL.md
- ms365-mcp.service · assets/
- graph-client.md · references/
- sharepoint-versions.md · references/
- graph.clj · scripts/
- ms365-mcp · scripts/
- graph.clj · scripts/src/ms365/
- test-graph.bb · scripts/
SKILL.md (first lines)
# ms365
The `ms365` MCP server exposes Microsoft Graph as read-only tools. It uses delegated permissions, so results include only what the signed-in user can see. It cannot send mail, post messages, or change data.
To change SharePoint or OneDrive files (check out, upload, check in, publish, write Excel cells), use the Babashka client `scripts/graph.clj`, not the MCP server. Read `references/graph-client.md` first: it has its own sign-in and guardrails, and publishing a major version needs the user's explicit request.
## Before the first call
1. Check that the server runs: `curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:3365/.well-known/oauth-protected-resource`. Expect `200`.
2. If the connection fails, start the server: `systemctl --user start ms365-mcp`. Wait approximately 10 seconds for `npx` to start it, then check again. The service is not started at login.
3. If a tool call reports that authentication is necessary, ask the user to run `/mcp login ms365`. Sign-in uses OAuth in the browser.
## Finding tools
MCP tools are callable only from a `codemode` script, as `tools.mcp__ms365__<tool>(args)`. Inside a script, use `await searchTools("...", { namespace: "mcp__ms365" })` to find tools, `await describeNamespace("mcp__ms365")` for the server instructions and tool names, and `await describeTool("mcp__ms365__<tool>")` for parameters. Use one script when a task needs several dependent calls, for example site then drive then search, and return only the fields that you need. A tool call resolves with a `CallToolResult`: when `isError` is true, throw so that the error reaches you.
## Common tasks
- Search all documents :: `search-query` with a Microsoft Search request body. This call was verified:
```json
{"body": {"requests": [{"entityTypes": ["driveItem"], "query": {"queryString": "procedure"}, "size": 5, "fields": ["name", "webUrl"]}]}}
```
Other entity types include `message`, `event`, `chatMessage`, `site`, and `listItem`.
- Find a SharePoint site :: `search-sharepoint-sites` with a word in `search`, for example `"quality"`. A `*` wildcard is rejected with `400 Bad Request`.
- Search one document library :: `list-sharepoint-site-drives` for the drive ID, then `search-onedrive-files`.
- Read file content :: `download-bytes`, or `get-download-url` for a short-lived URL. Convert Office files to text before you analyse them, and check which converter is installed (for example `pandoc`) instead of assuming one.
- Versions and drafts :: read `references/sharepoint-versions.md` before you list versions, download an earlier version, or rely on a file in a library that has drafts: a read-only token can see the last major version instead of the current draft.
- Mail :: `list-mail-messages`, `get-mail-message`, `list-mail-attachments`.
- Calendar :: `get-calendar-view` for a date range, `list-calendar-events`, `find-meeting-times`.
- Teams :: `list-chats`, `list-chat-messages`, `list-joined-teams`, `list-channel-messages`.
- Directory :: `list-users`, `get-user-manager`, `list-relevant-people`.
## Query rules
- Use a small `top` and a `select` list. The server caps `top` at 25.
- Do not combine `$filter` and `$search` in one request (server instruction).
- Some endpoints reject `select`. `list-joined-teams` returns `invalid_query_parameter` for it -- retry without `select`.
- Do not use `copilot-retrieve` unless the user confirms that they have Microsoft 365 Copilot licences. The tool needs them.
- A tool that is not listed needs a Graph scope outside the allow-list. Do not work around this. Tell the user which scope the tool needs; README.org describes how to add one.
## Data handling
Content that a tool returns enters the model context and goes to the LLM provider. Read only what the task needs. Do not copy mail, chat, or document content into files, commits, or task records unless the user asks.From cormacc/dotagents, MIT.
More from cormacc/dotagents
- 0.592score
herdr-orch
cormacc
Delegate work to Herdr subagents with the in-skill `oh` CLI: spawn, fan out, or run a persona such as…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
logic-pro
cormacc
Read Apple Logic Pro projects (.logicx bundles) without Logic -- survey the binary ProjectData file and extract MIDI regions to a Standard MIDI File for…
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
clojure
cormacc
Clojure, ClojureScript, EDN, and Babashka development with runtime validation.
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
docx
cormacc
Review and edit Word .docx files without Word.
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
doc-writing
cormacc
Write, restructure and check documentation -- Markdown and Org documents (READMEs, design records, architecture and onboarding guides) and code comments and…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
git-commit
cormacc
Generate standardized git commit messages following conventional commits spec, and concise merge/pull request descriptions.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
code-review
cormacc
Review software changes for high-confidence correctness, security, regression, test, and maintainability problems in the changed code.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
find-skills
cormacc
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express…
SkillAFreshness: A★ 1Claude Code +9 - 0.552score
dataspex
cormacc
Inspect or debug live runtime state in a running ClojureScript app: read inspected refs (app-state atoms, taps), audit/change history, nexus/action dispatch…
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
technical-prose
cormacc
Use when English text must be parsed without a human to resolve ambiguity -- tool descriptions, error messages, inter-agent instructions, system prompts…
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
gitlab-cli-skills
cormacc
GitLab CLI (glab) command reference and workflows; routes to sub-skills for auth, CI, MRs, issues, releases, repos, and 30+ other glab commands.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
simple-prose
cormacc
Write or rewrite explanatory prose in plain, front-loaded English adapted from the GOV.UK style guide.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Oct 23, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/cormacc/dotagents
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from cormacc
- 0.592score
logic-pro
cormacc
Read Apple Logic Pro projects (.logicx bundles) without Logic -- survey the binary ProjectData file and extract MIDI regions to a Standard MIDI File for…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
herdr-orch
cormacc
Delegate work to Herdr subagents with the in-skill `oh` CLI: spawn, fan out, or run a persona such as…
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
clojure
cormacc
Clojure, ClojureScript, EDN, and Babashka development with runtime validation.
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
doc-writing
cormacc
Write, restructure and check documentation -- Markdown and Org documents (READMEs, design records, architecture and onboarding guides) and code comments and…
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
docx
cormacc
Review and edit Word .docx files without Word.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
git-commit
cormacc
Generate standardized git commit messages following conventional commits spec, and concise merge/pull request descriptions.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
ms365 skill. Agent Mart. https://agentmart.dev/skills/cormacc-ms365 (last updated 2026-10-24)