ms365-mcp
ms365-mcp
Сервер MCP для Microsoft 365, рассчитанный на небольшие локальные модели.
Большинство MCP-серверов созданы для моделей уровня frontier с большими контекстными окнами, поэтому они предоставляют всё, что предлагает API вендора, и позволяют модели разбираться самой. Эталонный сервер Microsoft 365 предоставляет 326 инструментов, сгенерированных из спецификации Graph OpenAPI от Microsoft.
Это не работает для модели 8B с контекстом 8k, где весь список инструментов находится в системном промпте, и модель начинает выбирать наугад где-то после двадцати пяти инструментов. Этот сервер использует противоположный подход:
Четырнадцать инструментов, написанных вручную, с жёстким потолком в двадцать. Список инструментов — это бюджет, а не перечень возможностей.
Описания, написанные для небольшой модели, а не взятые из метаданных API.
Сначала черновик. Ровно один инструмент может передать сообщение другому человеку, он принимает идентификатор черновика, а не получателя, и помечен как разрушительный.
Каждый инструмент сам объявляет свой эффект через аннотации MCP
readOnlyHintиdestructiveHint, чтобы хост мог классифицировать его, не угадывая по имени инструмента.
Создан для Edge Harness и полезен любому MCP-клиенту.
Статус
Ранняя стадия. Пока не пригоден к использованию. План состоит из десяти коммитов; см. docs/PLAN.md для полной последовательности и обоснования каждого решения.
Каркас, лицензия, CI | готово |
Протокол MCP через stdio | готово |
Поверхность из четырнадцати инструментов | объявлены, обработчики — заглушки |
Вход | не начато |
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/, а официальный SDK на PyPI также называется mcp, поэтому установка этого сервера в виртуальное окружение harness затеняет собственный пакет harness.
Его запись в реестре там — ms365-own, и нажатие Check в параметрах запуска Agent Lab перечисляет каждый инструмент с его классом эффекта. Все четырнадцать классифицируются как declared, что означает, что harness взял их из аннотаций этого сервера, а не угадывал по именам инструментов, и запись не требует переопределений.
В режиме черновика по умолчанию в harness send_draft скрыт, а остальные тринадцать доступны, поэтому запуск не может связаться с человеком.
Безопасность
Этот репозиторий публичен и не содержит никаких учётных данных.
Аутентификация использует поток кода устройства Microsoft. Полученный кэш токенов записывается в каталог конфигурации операционной системы с правами только для владельца, никогда в этот репозиторий или его рабочее дерево. .gitignore в любом случае покрывает имена файлов токенов и кэша, а pre-commit хук сканирует подготовленные изменения на предмет строк, похожих на учётные данные, так что их коммит требует осознанных усилий, а не случайности.
Строка, заканчивающаяся на # pragma: allowlist secret, пропускается хуком. Это существует для того, чтобы собственные тесты этого репозитория могли содержать поддельные учётные данные, и оставляет маркер, который рецензент может увидеть в диффе, чего не делает --no-verify. Используйте это только для данных, которые заведомо поддельны.
Разработка
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest -qВключите хук сканирования секретов один раз для каждого клона:
git config core.hooksPath .githooksЛицензия
MIT. См. LICENSE.
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityAmaintenanceA 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
- AlicenseAqualityCmaintenanceA read-only MCP server for Gmail and Drive with only 5 tools, designed to be friendly to small local LLMs by minimizing context usage and simplifying inputs.5MIT
- AlicenseNot gradedqualityDmaintenanceLightweight MCP server that enables AI agents to manage Microsoft Outlook email, calendar, and files using PKCE authentication with only a Client ID.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that exposes a Microsoft 365 mailbox via the Model Context Protocol, enabling AI assistants to search, read, and download emails and attachments, and optionally send mail.9MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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