Skip to main content
Glama

ms365-mcp

一个为小型本地模型量身定制的 Microsoft 365 MCP 服务器。

大多数 MCP 服务器都是为具有大上下文窗口的前沿模型构建的,因此它们会暴露供应商 API 提供的所有功能,让模型自行筛选。参考的 Microsoft 365 服务器暴露了从 Microsoft 的 Graph OpenAPI 规范生成的 326 个工具。

这对于 8k 上下文下的 8B 模型并不适用——整个工具列表都放在系统提示中,模型在超过二十五个工具之后就开始随机选择。这个服务器采取了相反的方法:

  • 十四个手写工具,硬性上限为二十个。工具列表是预算,而不是功能列表。

  • 为小型模型编写的描述,而不是从 API 元数据中抢救出来的。

  • 草稿优先。 恰好一个工具可以传输给另一个人,它接受草稿 ID 而不是收件人,并被标注为破坏性。

  • 每个工具都通过 MCP readOnlyHintdestructiveHint 注解声明自己的效果,因此宿主无需根据工具名称猜测即可对其进行分类。

Edge Harness 构建,对任何 MCP 客户端都有用。

状态

早期。尚不可用。 计划是十个提交;完整序列及每个决策背后的理由见 docs/PLAN.md

脚手架、许可证、CI

已完成

基于 stdio 的 MCP 协议

已完成

十四个工具的表面

已声明,处理器是桩

登录

未开始

Microsoft Graph

未开始

Related MCP server: google-nice-mcp

查看工具表面

--list-tools 不启动任何内容,也不需要账户,因此它可以在任何功能接通之前回答"宿主会被提供什么?":

.venv/bin/python -m ms365_mcp --list-tools

添加 --json 以获得机器可读的版本。

   read  whoami          Return the display name, email address and timezone…
   read  resolve_person  Look up a person by name or partial name and return…
   read  list_messages   List messages in a mail folder, newest first, as se…
  write  create_draft    Create a draft message. This does NOT send anything…
! write  send_draft      Send a draft that already exists, by its id. This r…
   ...
14 tools, 6 that change something, 4 marked destructive (!)

今天的处理器是桩:调用返回一句话,说明该工具已声明但未实现。表面是在构建任何内容之前刻意固定的,因为工具名称、描述和效果类别是宿主分类和模型提示所依据的内容,而这些在以后更改成本很高。

从 Edge Harness 使用

该 harness 将此服务器作为子进程通过 stdio 启动,因此它在自己的解释器下运行,并且与宿主不共享依赖。这并非偶然:harness 有一个名为 mcp/ 的本地包,PyPI 上的官方 SDK 也称为 mcp,因此将此服务器安装到 harness 的 virtualenv 中会遮蔽 harness 自己的包。

它在 registry 中的条目是 ms365-own,在 Agent Lab 运行选项中按 Check 会列出每个工具及其效果类别。所有十四个都归类为 declared,这意味着 harness 从该服务器的注解中获取它们,而不是从工具名称中猜测,并且该条目不需要任何覆盖。

在 harness 的默认草稿模式下,send_draft 被扣留,其他十三个可用,因此运行无法触达真人。

安全

此仓库是公开的,不持有任何形式的凭据。

身份验证使用 Microsoft 设备代码流。生成的令牌缓存写入操作系统的配置目录,具有仅所有者权限,绝不会写入此仓库或其工作树。.gitignore 无论如何都覆盖令牌和缓存文件名,并且 pre-commit 钩子会扫描暂存更改中是否有凭据形状的字符串,因此提交一个凭据需要刻意努力而不是疏忽。

# pragma: allowlist secret 结尾的行会被钩子跳过。这样做的目的是让此仓库自己的测试可以包含假凭据,并在 diff 中留下审查者可以看到的标记,而 --no-verify 则不会。仅将其用于可证明是假的数据。

开发

python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest -q

每次克隆后启用一次秘密扫描钩子:

git config core.hooksPath .githooks

许可证

MIT。见 LICENSE

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A production-ready MCP server that provides secure, delegated access to Microsoft 365 services including Email, SharePoint, OneDrive, and Calendar. It enables AI models to search messages, browse files, manage calendar events, and parse document contents using OAuth 2.1 authentication.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Lightweight MCP server that enables AI agents to manage Microsoft Outlook email, calendar, and files using PKCE authentication with only a Client ID.
    MIT

View all related MCP servers

Related MCP Connectors

  • Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sunnycho100/ms365-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server