@usrivastava92/teamblind-mcp
v1.1.1
Published
MCP server for TeamBlind. Let your AI agent research Blind discussions on your behalf.
Readme
Let your AI agent research Blind discussions on your behalf.
Give Claude, VS Code Copilot, and any MCP-compatible assistant access to your TeamBlind — search posts, browse your feed, read company gossip, and stay on top of workplace conversations without switching tabs.
Installation Methods
npx Setup (Recommended)
Prerequisites: Node.js >= 22.14.0
One-time login
npx @usrivastava92/teamblind-mcp --loginThis opens a Chromium browser window. Log into TeamBlind normally (Google, Apple, or email). The server detects your login, saves the session, and exits. You have 5 minutes to complete login and any 2FA challenges by default.
If you are already logged in, the command detects the active session, refreshes the saved state, and exits without forcing the login screen.
To intentionally reset the saved session and log in again:
npx @usrivastava92/teamblind-mcp --login --forceClient Configuration
Claude Desktop / Generic MCP Client (claude_desktop_config.json):
{
"mcpServers": {
"teamblind": {
"command": "npx",
"args": ["-y", "@usrivastava92/teamblind-mcp@latest"]
}
}
}VS Code (.vscode/mcp.json):
{
"servers": {
"teamblind": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@usrivastava92/teamblind-mcp@latest"]
}
}
}The @latest tag ensures you always run the newest version — npx checks npm on each client launch and updates automatically. The server starts quickly and reuses your saved browser session from ~/.config/teamblind-mcp/.
Note: Early tool calls may return an authentication error if your session has expired. Re-run
npx @usrivastava92/teamblind-mcp --loginto refresh, or add--forceto wipe the saved session first.
Local Setup (Develop & Contribute)
Contributions are welcome! Please open an issue first to discuss features or bug fixes before submitting a PR.
Prerequisites: Git, Node.js >= 22.14.0, Yarn 4.x
# 1. Clone the repo
git clone https://github.com/usrivastava92/teamblind-mcp
cd teamblind-mcp
# 2. Install dependencies
yarn install
# 3. Build
yarn build
# 4. Login (one-time)
yarn login
# 5. Start the MCP server
yarn startClient Configuration (pointing to your local checkout):
{
"mcpServers": {
"teamblind": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/teamblind-mcp"
}
}
}Available Tools
| Tool | Description |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| search | Search TeamBlind for posts matching a query. Returns extracted post summaries (title, author, company, content, stats). |
| fetch_post | Fetch a TeamBlind post by slug. Returns post details and comments. |
| get_feed | Get recent posts from your authenticated TeamBlind home feed. Accepts scrollCount to load more items. |
| list_my_companies | List all company private channels you have access to on TeamBlind. Returns company names and aliases. |
| get_company_channel | Get posts from a company's private channel (e.g. Google). Requires employee-level access. Accepts company alias and optional scrollCount. |
| close_session | Close the browser session and clean up resources. Saves cookies before closing. |
CLI Reference
teamblind-mcp --login Open browser for interactive login
teamblind-mcp --login --force Clear saved session, then re-login
teamblind-mcp --logout Clear stored authentication state
teamblind-mcp [flags] Start the MCP server (stdio)| Flag | Default | Description |
| ----------------- | ------------------------- | ---------------------------------------------- |
| --no-headless | false | Show the browser window (useful for debugging) |
| --log-level | ERROR | One of DEBUG, INFO, WARN, ERROR |
| --login-timeout | 300 | Login timeout in seconds |
| --user-data-dir | ~/.config/teamblind-mcp | Path to persistent browser profile |
| --timeout | 15000 | Browser page operation timeout in milliseconds |
| --tool-timeout | 180 | Per-tool execution timeout in seconds |
Environment variable equivalents exist for most flags:
| Variable | Description |
| ------------------------- | ----------------------------------------------- |
| TEAMBLIND_BASE_URL | Base URL (default: https://www.teamblind.com) |
| TEAMBLIND_USER_DATA_DIR | Override session storage path |
| HEADLESS | Set to 0 or false for non-headless |
| LOGIN_TIMEOUT | Login timeout in seconds |
| LOG_LEVEL | Logging level |
| TIMEOUT | Browser page timeout in ms |
| TOOL_TIMEOUT | Per-tool timeout in seconds |
Session Storage
All session data is stored under ~/.config/teamblind-mcp/:
~/.config/teamblind-mcp/
├── profile/ # Chromium persistent profile
├── cookies.json # Portable cookie export
└── source-state.json # Session metadata- Profile: Your browser profile persists between restarts — cookies, localStorage, and IndexedDB are all preserved
- Cookies: Exported as JSON for portability and validation
- Permissions: All session files are created with owner-only permissions (
0700for dirs,0600for files)
Troubleshooting
| Symptom | Fix |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| "No authentication state found" | You haven't logged in yet. Run npx @usrivastava92/teamblind-mcp --login. |
| "Not logged into TeamBlind" | Your session may have expired. Run npx @usrivastava92/teamblind-mcp --login to reuse it if still valid, or --login --force for a fresh session. |
| Browser window doesn't open on --login | Chromium is downloaded automatically on npm install. If missing, run: npx playwright install chromium. |
| Tool calls time out | Increase the timeout: --timeout 30000 or set TIMEOUT=30000. |
| Want to debug browser actions? | Use --no-headless to see the browser window while tools execute. |
| Clear everything and start fresh | Run npx @usrivastava92/teamblind-mcp --logout then npx @usrivastava92/teamblind-mcp --login, or just use npx @usrivastava92/teamblind-mcp --login --force. |
| Login hangs or captcha appears | Run --login with --no-headless so you can solve the captcha manually in the browser window. |
[!IMPORTANT] FAQ
Is this safe to use? Will I get banned?
This tool controls a real authenticated browser session; it doesn't exploit undocumented APIs or bypass authentication. That said, TeamBlind's Terms of Service may prohibit automated tools and browser automation. So far, no user bans related to this project have been reported. However, platform policies can change at any time, so use responsibly and at your own discretion. If you encounter any issues, please open a discussion or issue on GitHub.
What if my agents execute too many actions?
TeamBlind may apply rate limits, additional verification checks, or other restrictions if it detects excessive automated activity. This MCP executes tool calls sequentially through a shared browser session but does not enforce platform-specific rate limits. Prompt your agents responsibly and avoid unnecessary or excessive requests.
Acknowledgements
Built with Model Context Protocol SDK and Playwright.
Use in accordance with TeamBlind's Terms of Service. This project automates access to TeamBlind through a user-authenticated browser session. Users are responsible for ensuring their usage complies with TeamBlind's Terms of Service and applicable policies.
