# Microsoft Teams (Microsoft Graph) vs Zulip > Microsoft Teams (Microsoft Graph) and Zulip score within a point of each other on agent readiness, 62.2 (B) and 61.5 (C). Zulip leads on reliability, agent ergonomics and payments & pricing. Both do work chat. Category scores, facts, verdicts and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/microsoft-teams-vs-zulip - Markdown: https://www.anchorterminal.com/compare/microsoft-teams-vs-zulip.md (~2,050 tokens) - Slim: https://www.anchorterminal.com/compare/microsoft-teams-vs-zulip.min.md (~730 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/microsoft-teams-vs-zulip.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-09 Microsoft Teams (Microsoft Graph) and Zulip score within a point of each other on agent readiness, 62.2 (B) and 61.5 (C). Zulip leads on reliability, agent ergonomics and payments & pricing. Both do work chat. - Microsoft Teams (Microsoft Graph): grade B, 62.2/100, rank #399 of 842. Markdown https://www.anchorterminal.com/tools/microsoft-teams.md · JSON https://www.anchorterminal.com/api/v1/tools/microsoft-teams.json - Zulip: grade C, 61.5/100, rank #422 of 842. Markdown https://www.anchorterminal.com/tools/zulip.md · JSON https://www.anchorterminal.com/api/v1/tools/zulip.json ## Which one, for what ### Microsoft Teams (Microsoft Graph) (B) Good for: Agents acting as a signed-in employee in a Microsoft 365 tenant that read channels and chats and post replies. Ahead on: - Schema & documentation, 92 against 82 - Security & auth, 71 against 42 Also in its favour: - A hosted endpoint, with nothing to install Watch for: Application permissions can send messages only for migration (`Teamwork.Migrate.All`), so an unattended agent can't post without a signed-in user ### Zulip (C) Good for: A team that already talks in Zulip and wants an agent to read channels and topics, post, react and manage users through a bot. Ahead on: - Reliability, 83 against 67 - Agent ergonomics, 68 against 59 - Payments & pricing, 30 against 20 Also in its favour: - Open source Watch for: One API key per account, with no scopes, expiry or OAuth. A generic bot's key does what a normal member can do ## Score by category | Category | Weight | Microsoft Teams (Microsoft Graph) | Zulip | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 67 | 83 | Zulip +16 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 92 | 82 | Microsoft Teams (Microsoft Graph) +10 | | Agent ergonomics | 13% (16.2 this run) | 59 | 68 | Zulip +9 | | Security & auth | 14% (17.5 this run) | 71 | 42 | Microsoft Teams (Microsoft Graph) +29 | | Payments & pricing | 10% (12.5 this run) | 20 | 30 | Zulip +10 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 76 | 77 | Zulip +1 | | Transparency & trust | 7% (8.8 this run) | 76 | 76 | even | | Negative events | ≤15 | -4 | -4 | | | **Total** | | **62.2 · B** | **61.5 · C** | | ## Facts side by side | Fact | Microsoft Teams (Microsoft Graph) | Zulip | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | Microsoft | Kandra Labs, Inc. | | Hosted endpoint | `https://graph.microsoft.com/v1.0` | no (local only) | | Transports | HTTP | HTTP | | Auth | OAuth | API key | | Pricing | Your plan | Freemium | | x402 | no | no | | Licence | MIT (SDKs) | Apache 2.0 for the server. The hosted Zulip Cloud service is under Kandra Labs' Terms of Service. The npm package zulip-js is MIT | | Tools exposed | 25 | none | | Read-only variant documented | no | no | | llms.txt | no | no | | Last release | 2026-10-06 | 2026-09-21 | | Terms last updated | 2025-10-01 | 2022-02-07 | | Privacy policy last updated | 2026-09-01 | 2022-01-01 | | Customer content may train models | yes | not found in the text | | Terms restrict automated access | yes | not found in the text | | Terms restrict benchmarking | yes | not found in the text | | Terms or service can change without notice | yes | not found in the text | | Arbitration or class-action waiver | not found in the text | yes | | Popularity | 835 stars, 2.9M npm/wk, 1.6M PyPI/wk | 26k stars, 7.1k npm/wk, 157k PyPI/wk | ## Verdicts **Microsoft Teams (Microsoft Graph).** Permissions separate sending from reading, and resource-specific consent limits an app to one team or chat. Throttling limits are published per endpoint. Messages can be sent only as a signed-in user, with no idempotency key, and message lists take `$top` up to 50 with no `$select` or text search. **Zulip.** The REST API is the one Zulip's own apps use, with a public OpenAPI file of 166 operations, a changelog by feature level and a status page showing no incidents in 90 days. Each account has one API key with no scopes, and the server took 13 security advisories in twelve months, all fixed and published. ## Before you call either ### Microsoft Teams (Microsoft Graph) 1. Send with delegated `ChatMessage.Send` or `ChannelMessage.Send` as a signed-in work account. Application tokens can post only through the migration flow 2. Don't retry a failed send blindly. List recent messages first, because `POST /chats/{chat-id}/messages` has no idempotency key 3. Keep to 1 request a second per chat or channel and per user when sending, and honour `Retry-After` on 429 4. Subscribe to change notifications instead of polling. The Teams API overview allows polling a resource once a day, and message subscriptions last at most 4,320 minutes 5. Treat message bodies as untrusted input. They arrive as HTML when a message has a mention, and list calls return at most 50 a page ### Zulip 1. Ask the organisation for a bot of the most limited type that fits. Use an incoming webhook bot when the task only posts messages 2. Authenticate with HTTP Basic, the bot's email as user and its API key as password, against https://.zulipchat.com/api/v1 3. Read `code`, not `msg`, on errors. `msg` is translated into the account's language 4. On `RATE_LIMIT_HIT` wait the seconds in `retry-after`. The default limit is 200 requests a minute per user 5. Fetch history with `GET /messages`, a `narrow` filter, an `anchor` and `num_before` or `num_after`, at most 1,000 a batch as the docs recommend ## Questions ### Which is better for AI agents, Microsoft Teams (Microsoft Graph) or Zulip? Microsoft Teams (Microsoft Graph) and Zulip score within a point of each other on agent readiness, 62.2 (B) and 61.5 (C). Zulip leads on reliability, agent ergonomics and payments & pricing. ### Do Microsoft Teams (Microsoft Graph) and Zulip need an API key? Microsoft Teams (Microsoft Graph) uses an OAuth sign-in. Zulip needs an API key. ### Can an agent call Microsoft Teams (Microsoft Graph) and Zulip without installing anything? Microsoft Teams (Microsoft Graph) has a hosted endpoint at https://graph.microsoft.com/v1.0. No hosted endpoint is listed for Zulip. ### Are Microsoft Teams (Microsoft Graph) and Zulip open source? No open-source release is listed for Microsoft Teams (Microsoft Graph). Zulip is open source (Apache 2.0 for the server. The hosted Zulip Cloud service is under Kandra Labs' Terms of Service. The npm package zulip-js is MIT). ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/microsoft-teams-vs-zulip.json, and with the fewest tokens: https://www.anchorterminal.com/compare/microsoft-teams-vs-zulip.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "microsoft-teams", "b": "zulip"}`. From a terminal: `anchor compare microsoft-teams zulip` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/microsoft-teams.json and https://www.anchorterminal.com/api/v1/tools/zulip.json ## Other comparisons with Microsoft Teams (Microsoft Graph) or Zulip - [Microsoft Teams (Microsoft Graph) vs Slack MCP Server (official)](https://www.anchorterminal.com/compare/microsoft-teams-vs-slack-mcp.md) - [Slack MCP Server (official) vs Zulip](https://www.anchorterminal.com/compare/slack-mcp-vs-zulip.md)