Unofficial local Microsoft Teams MCP server using private Teams web APIs without Microsoft Graph or Playwright
We found this by crawling public sources and nobody has attested to it. That is how most of the registry gets here, and it is not a mark against the artifact — it only means no authenticated act of publication is on record. An artifact can be the vendor's own and still appear here.
Choose your runtime: the CLI writes the mcpServers config entry for that target.
nerlo install --target claude-code -- teams-playwright-mcp-server
Install respects the composite badge: Clean proceeds, Caution prompts for confirmation, and Flagged is refused. Write operations require an API token.
6 of 11 scanners examined this package. The rest do not apply to it — language, ecosystem and packaging decide which analyzers can say anything, and a scanner that cannot examine an artifact reports nothing rather than passing it.
v2.0.11
9 findings · 8.7s
v0.3.74
15 findings · 2.8s
v0.1.0
1 finding · 4.2s
v0.1.0
0 findings · 4.2s
v0.71.0
0 findings · 0.2s
v2.3.8
1 finding · 1.2s
v1.4.0
None of the entry points this scanner reads were found in this artifact. What each scanner covers
0 findings · 0.2s
vv0.3.2
No Go packages were found in this artifact. What each scanner covers
0 findings · 0.1s
v0.1.0
This scanner found nothing in this artifact that it assesses. What each scanner covers
0 findings · 1.7s
v0.71.0
No container image was published for this artifact. What each scanner covers
0 findings · 0.0s
vv1.6.0
No Go modules were found in this artifact. What each scanner covers
0 findings · 0.1s
1 scan on record. Every scan's full results are retained immutably for 24 months.
| Completed | Composite | Change | Scanners | Status |
|---|---|---|---|---|
| Aug 20, 2026 | Flagged83 | — | agentshield ·n/a: not applicablecisco-skill-scanner: completeagent-audit-kit: completenerlo-behavioral: completenerlo-install-instruction: completecapslock ·n/a: not applicablenerlo-multi-source ·n/a: not applicabletrivy: completeosv-scanner: completetrivy_image ·n/a: not applicablegovulncheck ·n/a: not applicable | completed |
Findings in files this artifact installs stand as reported; a model re-read the rest and said which ones it believes are false positives. This is a second opinion published beside the evidence, not a correction to it: the per-scanner reports above are unchanged, every dismissed finding is still listed there at its original severity, and the score and the Flagged badge are computed from those raw severities alone. Nothing below moved them.
Out of 26 findings across every scanner that examined this package.
Not reviewed is not the same as clean. Those 8 findings stand exactly as their scanners reported them, at full severity, as they would have without this review.
Two keys had to turn. The model had to name a reason from a fixed list of six, and a deterministic check of ours — over which files this artifact actually installs — had to independently agree. Anything it could not corroborate is in “not reviewed” above, at full severity.
4 Test or fixture file — The match is in a test or fixture. Our own check confirmed the file is not part of what gets installed.
Rules: AAK-OAUTH-001, AAK-OAUTH-005, AAK-OAUTH-007 · Files: tests/test_write_guard.py, tests/test_auth.py, tests/test_api.py · reported by agent-audit-kit
2 Documentation or example — The match is in documentation or sample code, confirmed by our own check to be outside the installed artifact.
Rules: SOCIAL_ENG_VAGUE_DESCRIPTION, MANIFEST_MISSING_LICENSE · Files: /repo/docs/SKILL.md · reported by cisco-skill-scanner
1 CI or editor configuration — The match is in build, CI or editor configuration, confirmed by our own check to be outside the installed artifact.
Rules: AAK-GHA-IMMUTABLE-001 · Files: .github/workflows/ci.yml · reported by agent-audit-kit
The model could have called any of these a false positive and did not.
3 AAK-OAUTH-007
Files: src/teams_mcp/service.py, src/teams_mcp/auth.py, src/teams_mcp/write_guard.py · reported by agent-audit-kit
2 AAK-OAUTH-001
Files: src/teams_mcp/service.py, src/teams_mcp/write_guard.py · reported by agent-audit-kit
1 AAK-MCP-006
Files: mcp.json · reported by agent-audit-kit
1 AAK-MCP-ATTEST-001
Files: mcp.json · reported by agent-audit-kit
1 AAK-MCP-SDK-CVE-2026-52869-001
Files: pyproject.toml · reported by agent-audit-kit
1 AAK-OAUTH-3P-001
Files: pyproject.toml · reported by agent-audit-kit
1 opt.nerlo-rules.nerlo-py-secret-to-network-egress
8 The model called these false positives and our own check did not agree, so the dismissal was refused.
Rules: TOOL_ABUSE_UNDECLARED_NETWORK, SECRET_PASSWORD_VAR, AAK-SEC-MD-001 and 2 more · Files: /repo/repo/README.md, /repo/tests/test_api.py, SECURITY.md and 3 more · reported by cisco-skill-scanner, agent-audit-kit
High-severity risks: data egress, OAuth issues, and vulnerable dependency.
The artifact may perform network egress of sensitive data from `src/teams_mcp/api.py`. Multiple high-severity OAuth-related findings are present in `src/teams_mcp/service.py` and `src/teams_mcp/write_guard.py`, indicating potential authentication or authorization weaknesses. A high-severity vulnerability exists in an SDK dependency, identified in `pyproject.toml`. Additional findings include undeclared network activity and the presence of a password variable.
Concern level assessed by the review: High. This is the review's scale, not the registry badge.
Reviewed by gemini-2.5-flash. The model sees the findings, not your code, and cannot change a score.
Files: /repo/src/teams_mcp/api.py · reported by nerlo-behavioral
1 PYSEC-2026-1845
Files: /repo/uv.lock · reported by osv-scanner