{"_id":"@deus-ai/teams-mcp","name":"@deus-ai/teams-mcp","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@deus-ai/teams-mcp","version":"1.0.0","description":"Microsoft Teams MCP server — standalone Bot Framework integration for any MCP client","type":"module","main":"dist/index.js","bin":{"deus-ai-teams-mcp":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","test":"vitest run"},"dependencies":{"@deus-ai/channel-core":"^1.1.0","@modelcontextprotocol/sdk":"^1.12.1","botbuilder":"^4.23.1","express":"^5.1.0","pino":"^10.3.1","zod":"^4.3.6"},"devDependencies":{"@types/express":"^5.0.0","@types/node":"^22.10.7","typescript":"^6.0.2","vitest":"^4.1.2"},"engines":{"node":">=20"},"publishConfig":{"access":"public"},"license":"MIT","_id":"@deus-ai/teams-mcp@1.0.0","gitHead":"d76d3dd64d7a39c5c52a4063d4995b00fb235f67","types":"./dist/index.d.ts","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-yhiAT3408aoKxjQnWluxZZxvaTp8LbitDLBzDs8qLg8r73S7WptBU2IZBeFFgUg0FSXMe+jdDZk7LqOA3JTo+A==","shasum":"38220043c871a8387bed253d4599f5e97b2644bd","tarball":"https://registry.npmjs.org/@deus-ai/teams-mcp/-/teams-mcp-1.0.0.tgz","fileCount":15,"unpackedSize":45589,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHHs18ItZ0nAx1jXG6DjnCC07Z/+aX41c6+Bh+CtGnR3AiA56KHZhFbW7W7pQBwDjc3UgvfHOUhlg0imqHzVpB+NCg=="}]},"_npmUser":{"name":"sliamh11","email":"sliamh11@gmail.com"},"directories":{},"maintainers":[{"name":"sliamh11","email":"sliamh11@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/teams-mcp_1.0.0_1782579536701_0.24523235407787136"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-27T16:58:56.593Z","1.0.0":"2026-06-27T16:58:56.821Z","modified":"2026-06-27T16:58:57.006Z"},"maintainers":[{"name":"sliamh11","email":"sliamh11@gmail.com"}],"description":"Microsoft Teams MCP server — standalone Bot Framework integration for any MCP client","license":"MIT","readme":"# @deus-ai/teams-mcp\n\nStandalone Microsoft Teams MCP server. Connects a Teams bot via the Azure Bot\nService (Bot Framework) and exposes it as an MCP channel: it receives activities\non a public `/api/messages` endpoint, forwards each conversation to the MCP\nclient as an incoming message, and sends proactive replies.\n\nIt implements the `ChannelProvider` contract from `@deus-ai/channel-core` and is\nthe Teams analog of `@deus-ai/slack-mcp`.\n\n## Configuration (env vars)\n\n| Var | Default | Meaning |\n|-----|---------|---------|\n| `TEAMS_APP_ID` | — | Azure Bot / Entra app (client) ID |\n| `TEAMS_APP_PASSWORD` | — | client secret value |\n| `TEAMS_APP_TENANT_ID` | — | directory (tenant) ID for single-tenant; omit for multi-tenant |\n| `TEAMS_PORT` | `3978` | messaging-endpoint port |\n| `TEAMS_CREDENTIALS_DIR` | `~/.teams-mcp/` | where conversation references persist |\n| `LOG_LEVEL` | `info` | pino log level (stderr) |\n\n## Public endpoint required\n\nUnlike Slack's Socket Mode, the Bot Framework pushes activities to a **public\nHTTPS endpoint**. This server listens on `TEAMS_PORT` locally; you must expose\nthat port via a dedicated tunnel (e.g. ngrok/Cloudflare → `http://localhost:3978`)\nand set the Azure Bot **messaging endpoint** to `https://<your-tunnel>/api/messages`.\nDeus's existing ingress tunnel forwards only the gateway port and does **not**\ncover `TEAMS_PORT`.\n\n## Run\n\n```bash\nnpm install && npm run build\nnode dist/index.js   # stdio MCP server; auto-connects if credentials exist\n```\n\n## JID format\n\nEach conversation maps to `teams:<conversationId>`.\n\n## Known limitation\n\nOutbound replies use Bot Framework proactive messaging, which needs a stored\nconversation reference captured from a prior inbound activity (persisted to\n`~/.teams-mcp/conversations.json`). A reply to a conversation the bot has never\nreceived a message from is logged and skipped.\n","readmeFilename":"README.md","_rev":"1-862df9b8eede731781032395f2339349"}