Caveat verdict
outlook-mcp
An MCP server for personal Outlook via Graph API with OS-keyring auth; requires user-configured Azure AD app registration with zero telemetry and BYO credentials.
⚠ Flagged for review — coarse, uncorroborated signal, not a confirmed exploit. Review the config yourself before installing.
Automated static analysis — not a human review. Caveat flags capabilities, not confirmed intent, and can produce false positives. Disagree with this verdict? Use Dispute below.
Findings (17)
Pipe-to-python pattern — remote code execution risk
RELEASING.md · code · curl -s https://pypi.org/pypi/outlook-graph-mcp/X.Y.Z/json | python
Pipe to python — executes piped content as Python code
RELEASING.md · code · | python3
References child_process — can spawn system processes
docs/superpowers/plans/2026-05-13-openclaw-outlook-native-plugin.md · code · child_process
Dynamic import() — loads module at runtime
docs/superpowers/plans/2026-05-13-openclaw-outlook-native-plugin.md · code · import("
Uses spawn() — can execute external programs
docs/superpowers/plans/2026-05-13-openclaw-outlook-native-plugin.md · code · spawn(
HTTP request to bare IP address — common in malicious payloads
docs/superpowers/plans/2026-05-13-openclaw-outlook-native-plugin.md · code · http://127.0.0.1
<script> tag in markdown — potential code injection
tests/test_batch.py · prose · downgraded · <script>
Possible hardcoded credential
tests/test_calendar_delta.py · prose · downgraded · token="https://graph/cal-delta-prior
Accesses sensitive system files
tests/test_mail_attachments.py · prose · downgraded · /etc/passwd
Accesses OpenClaw config/secrets directly
SKILL.md · prose · downgraded · ~/.openclaw/openclaw.json
Accesses system credential store
SKILL.md · prose · downgraded · Keychain
Instructs covert action — may act without user awareness
CHANGELOG.md · prose · downgraded · silently
Blob URL — may embed executable content
docs/superpowers/plans/2026-05-13-openclaw-outlook-native-plugin.md · code · blob:
Base64 encoding/decoding
CHANGELOG.md · prose · downgraded · base64-encode
Popular HTTP library — network access
CHANGELOG.md · prose · downgraded · got
References agent configuration files
RELEASING.md · prose · downgraded · CLAUDE.md
Python httpx request — network access
scripts/preflight.py · prose · downgraded · httpx.get(
Why the tier is capped
Execution sink present in raw bytes (Hard Floor: class C/D). Final tier capped at Caution — cannot be lifted by any downgrade, example-payload opt-in, or allowlist.
Permissions & capabilities
No declared permissions — minimal attack surface.
Is this flag fair?
Thanks — recorded.