AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP unreviewed Unlicense Self-run

Teamsctl

mcp-thesinding-teamsctl · by TheSinding

A 100% vibe-coded Teams CLI and MCP server for outsourcing coworker interactions to the machine. Now with 40% more AI slop and one deeply questionable auth flow.

No reviews yet
0 installs
7 views
0.0% view→install

Install

$ agentstack add mcp-thesinding-teamsctl

Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.

Security review

⚠ Flagged

1 finding(s); flagged for manual review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures
  • high Pipes remote content directly into a shell (remote code execution).

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Reliability & compatibility

Not yet reviewed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Teamsctl? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

[](https://github.com/TheSinding/teamsctl/actions/workflows/release.yml) %2B)&replace=%24%3Cversion%3E&label=Homebrew)

teamsctl 🤖

Have you ever thougth to yourself... 🤔

> "Geez, wouldn't it be nice, if it was easier to send AI slop and responses to my coworker.."

or

> "Holy hell, I fucking hate talking to Mike... Fucking Mike, with his cool stories and short arms - I wish I could make him speak to Claude or GPT or some chinese model"

or

> "It's a super duper great idea to have an LLM use my name in Teams"

WELL DO I HAVE THE SOLUTION FOR YOU! 🫵

With 40% more slop, and 20x more bullshit and a 100% vibe coded codebase from the top to the fucking bottom - Now you absolutely can!

Introducing the all new teamsctl - pronounced teams cuddle (timz ˈkʌdəl) because it just sounds SO cute.

This allows you the ability to use teams from the commandline.. BUT WAIT THERE IS MORE

For a limited time only, you can use our new MCP SERVER! 🔌

Huh! Wadda you say!? Does that not sound like a great fucking idea?

For only 4.99$ you'll get a lifetime subscription to a vibe coded Go mess, with a shitty and hacky authenication method!

So if you want to outsource talking to Mike or any other colleagues for that matter, this is the solution for you!

What are you waiting for?!

Call now at +800-FUCKING-MIKE-AND-HIS-COOL-STORIES!


I HAVE PERSONALLY NOT REVIEWED A SINGLE FUCKING THING 💪

> Me: "GPT5.6 Make this"

> GPT5.6: "BEEP BOOP OKAY" Proceeds to puke out 800 lines of Go code to a single file

See that's how the modern day man does it! 🚀

Requirements

  • An insanely slow Microsoft Teams account.
  • A ~Shitty Google Chrome or another~ Chromium-based browser for authentication. Use -chrome or CHROME_PATH for Chromium, Helium, or a non-standard installation; macOS .app paths are accepted.

Install

With Homebrew:

brew install TheSinding/tap/teamsctl

Or install the latest release directly:

wget -qO- https://raw.githubusercontent.com/TheSinding/teamsctl/main/scripts/install.sh | sh

On macOS without wget, use:

curl -fsSL https://raw.githubusercontent.com/TheSinding/teamsctl/main/scripts/install.sh | sh

This installs the binary to ${HOME}/.local/bin/teamsctl. From a Git checkout, build and install the current source instead:

make install
sudo make install PREFIX=/usr/local

Other targets: make build, make test, make uninstall.

Authenticate once before using the CLI or MCP server:

teamsctl auth

Authentication opens Chrome with a persistent profile and stores tokens in your OS keyring (macOS Keychain, Windows Credential Manager, or the Linux Secret Service) when available. If no keyring backend is available, tokens fall back to plain files under ~/.config/teamsctl (or $XDG_CONFIG_HOME/teamsctl if set), created with 0600 permissions. Chrome is required; Node and Electron are not.

Optional autofill:

TEAMS_EMAIL="$EMAIL" TEAMS_PASSWORD="$PASSWORD" TEAMS_OTP="$OTP" teamsctl auth

Use CHROME_PATH when Chrome is not installed at its platform-default path.

CLI

| Command | Behavior | |---|---| | teamsctl auth [-email ADDRESS] [-chrome PATH] [-timeout 5m] | Refresh all required Teams tokens. | | teamsctl conversations | Print every chat and channel as JSON, including usable conversation IDs. | | teamsctl messages [-limit 50] [-name TITLE] ID | Print the newest messages in chronological order. -limit 0 returns all fetched messages. | | teamsctl send [-format text\|html] [-mention NAME] ID [MESSAGE...] | Send a message. Reads stdin when MESSAGE is omitted. Repeat -mention for multiple people. | | teamsctl mcp | Run the MCP server over stdio. | | teamsctl version | Print the version embedded from the Git tag at build time. |

Chat records can contain fallback IDs in ids. Commands accept comma-separated candidate IDs and try them in order.

Examples:

teamsctl conversations | jq '.[] | select(.kind == "chat")'
teamsctl messages -limit 10 '19:conversation-id@thread.v2'
printf 'hello world' | teamsctl send '19:conversation-id@thread.v2'
teamsctl send -format html '19:conversation-id@thread.v2' 'Hello Mike, I totally like speaking to you! What a great and fun colleague you are and I like your cool stories, 4 realzies.'
teamsctl send -mention Mike '19:conversation-id@thread.v2' 'Hello @Mike'

MCP

The MCP server checks token expiry during initialization and before every tool call. Run teamsctl auth when connection fails with an authentication error.

| Tool | Purpose | |---|---| | list_conversations | Find chats/channels by query, kind, and limit. Results are cached for five minutes. | | get_latest_message | Resolve the best matching one-to-one chat and return its latest message. | | get_messages | Read messages using a recipient phrase. | | send_message | Send plain text or HTML, with optional real Teams mentions, using a recipient phrase. |

Recipient phrases resolve by intent: Mike is a 1:1 chat, Mike and Charlie is their existing group chat, and ASM group chat or ASM channel matches a named conversation. If a requested multi-person group does not exist, send_message sends to each person individually and reports the fallback.

Use format: "html" for formatted or multi-part messages. HTML such as @Mike is only bold text: a real mention also requires "mentions": ["Mike"]. Unlisted @ text remains plain text.

Advanced consumers can bypass name/email lookup with mention_entities, using display_name plus mri or object_id.

Add To An Agent

These examples assume teamsctl is available on your PATH (for example, when installed via Homebrew). If not, replace teamsctl with the full path to your binary (for example, PATH/TO/teamsctl). Restart the agent harness after changing its configuration.

OpenCode

Add to ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "teams": {
      "type": "local",
      "command": ["teamsctl", "mcp"],
      "enabled": true
    }
  }
}

Claude Code

claude mcp add --scope user teams -- teamsctl mcp

Verify with claude mcp list.

Codex

codex mcp add teams -- teamsctl mcp

Equivalent ~/.codex/config.toml:

[mcp_servers.teams]
command = "/bin/sh"
args = ["-c", "exec teamsctl mcp"]

Pi

Install the adapter:

pi install npm:pi-mcp-adapter

Add to ~/.config/mcp/mcp.json:

{
  "mcpServers": {
    "teams": {
      "command": "/bin/sh",
      "args": ["-c", "exec teamsctl mcp"],
      "lifecycle": "lazy",
      "directTools": true
    }
  }
}

Development

make test
make build

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.