内容
<div align="center">
<img src="assets/banner.png" alt="TeamBlind MCP 服务器" width="800" />
**让您的 AI 代理代表您研究 Blind 讨论。**
[](https://www.npmjs.com/package/@usrivastava92/teamblind-mcp)
[](https://github.com/usrivastava92/teamblind-mcp/actions/workflows/ci.yml)
[](LICENSE)
[](https://scorecard.dev/status/github.com/usrivastava92/teamblind-mcp)
让 Claude、VS Code Copilot 和任何与 MCP 兼容的助手访问您的 TeamBlind - 搜索帖子、浏览您的订阅、阅读公司八卦并随时了解工作场所对话,无需切换标签页。
</div>
---
## 安装方法
[](https://github.com/npm/cli#readme)
### npx 设置(推荐)
**先决条件:** [Node.js](https://nodejs.org) >= 22.14.0
#### 一次性登录
```bash
npx @usrivastava92/teamblind-mcp --login
```
这将打开一个 Chromium 浏览器窗口。正常登录 TeamBlind(Google、Apple 或电子邮件)。服务器检测到您的登录信息,保存会话并退出。您有 **5 分钟** 的时间完成登录和任何 2FA 挑战。
如果您已经登录,命令会检测到活动会话,刷新保存的状态并退出,而无需强制登录屏幕。
要故意重置保存的会话并再次登录:
```bash
npx @usrivastava92/teamblind-mcp --login --force
```
#### 客户端配置
**Claude Desktop / 通用 MCP 客户端** (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"teamblind": {
"command": "npx",
"args": ["-y", "@usrivastava92/teamblind-mcp@latest"]
}
}
}
```
**VS Code** (`.vscode/mcp.json`):
```json
{
"servers": {
"teamblind": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@usrivastava92/teamblind-mcp@latest"]
}
}
}
```
`@latest` 标签确保您始终运行最新版本 - `npx` 在每个客户端启动时检查 npm 并自动更新。服务器快速启动并重用您保存的浏览器会话来自 `~/.config/teamblind-mcp/`。
> **注意:** 早期工具调用可能会返回身份验证错误,如果您的会话已过期。重新运行 `npx @usrivastava92/teamblind-mcp --login` 以刷新,或添加 `--force` 以首先清除保存的会话。
---
### 本地设置(开发和贡献)
欢迎贡献!请先打开一个问题讨论功能或错误修复,然后再提交 PR。
**先决条件:** [Git](https://git-scm.com/downloads),[Node.js](https://nodejs.org) >= 22.14.0,[Yarn](https://yarnpkg.com) 4.x
```bash
# 1. 克隆仓库
git clone https://github.com/usrivastava92/teamblind-mcp
cd teamblind-mcp
# 2. 安装依赖
yarn install
# 3. 构建
yarn build
# 4. 登录(一次性)
yarn login
# 5. 启动 MCP 服务器
yarn start
```
**客户端配置** (指向您的本地复刻):
```json
{
"mcpServers": {
"teamblind": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/teamblind-mcp"
}
}
}
```
---
## 可用工具
| 工具 | 描述 |
| --- | --- |
| `search` | 搜索 TeamBlind 中匹配查询的帖子。返回提取的帖子摘要(标题、作者、公司、内容、统计信息)。 |
| `fetch_post` | 通过 slug 获取 TeamBlind 帖子。返回帖子详情和评论。 |
| `get_feed` | 从您的身份验证的 TeamBlind 首页获取最近的帖子。接受 `scrollCount` 以加载更多项目。 |
| `list_my_companies` | 列出您有权访问的所有公司私有频道。返回公司名称和别名。 |
| `get_company_channel` | 从公司的私有频道(例如 `Google`)获取帖子。需要员工级访问。接受 `company` 别名和可选 `scrollCount`。 |
| `close_session` | 关闭浏览器会话并清理资源。保存 cookie 后关闭。 |
---
## CLI 参考
```
teamblind-mcp --login 打开浏览器进行交互式登录
teamblind-mcp --login --force 清除保存的会话,然后重新登录
teamblind-mcp --logout 清除存储的身份验证状态
teamblind-mcp [flags] 启动 MCP 服务器(stdio)
```
| 标志 | 默认值 | 描述 |
| --- | --- | --- |
| `--no-headless` | `false` | 显示浏览器窗口(适用于调试) |
| `--log-level` | `ERROR` | 之一 `DEBUG`、`INFO`、`WARN`、`ERROR` |
| `--login-timeout` | `300` | 登录超时(秒) |
| `--user-data-dir` | `~/.config/teamblind-mcp` | 持久浏览器配置文件路径 |
| `--timeout` | `15000` | 浏览器页面操作超时(毫秒) |
| `--tool-timeout` | `180` | 每个工具执行超时(秒) |
环境变量等效项存在于大多数标志:
| 变量 | 描述 |
| --- | --- |
| `TEAMBLIND_BASE_URL` | 基本 URL(默认:`https://www.teamblind.com`) |
| `TEAMBLIND_USER_DATA_DIR` | 重写会话存储路径 |
| `HEADLESS` | 设置为 `0` 或 `false` 以非无头模式 |
| `LOGIN_TIMEOUT` | 登录超时(秒) |
| `LOG_LEVEL` | 日志级别 |
| `TIMEOUT` | 浏览器页面操作超时(毫秒) |
| `TOOL_TIMEOUT` | 每个工具超时(秒) |
---
## 会话存储
所有会话数据存储在 `~/.config/teamblind-mcp/` 下:
```
~/.config/teamblind-mcp/
├── profile/ # Chromium 持久配置文件
├── cookies.json # 便携式 cookie 导出
└── source-state.json # 会话元数据
```
- **配置文件**:您的浏览器配置文件在重启之间持续存在 - cookie、localStorage 和 IndexedDB 均被保留
- **cookie**:以 JSON 导出以便移植和验证
- **权限**:所有会话文件均使用仅所有者权限创建(目录 `0700`,文件 `0600`)
---
## 故障排除
| 症状 | 修复 |
| --- | --- |
| **"未找到身份验证状态"** | 您尚未登录。运行 `npx @usrivastava92/teamblind-mcp --login`。 |
| **"未登录到 TeamBlind"** | 您的会话可能已过期。运行 `npx @usrivastava92/teamblind-mcp --login` 以重用它(如果仍然有效),或 `--login --force` 以获取新的会话。 |
| **`--login` 时浏览器窗口不打开** | Chromium 在 `npm install` 时自动下载。如果丢失,运行:`npx playwright install chromium`。 |
| **工具调用超时** | 增加超时:`--timeout 30000` 或设置 `TIMEOUT=30000`。 |
| **想要调试浏览器操作?** | 使用 `--no-headless` 在工具执行时查看浏览器窗口。 |
| **清除所有内容并重新开始** | 运行 `npx @usrivastava92/teamblind-mcp --logout` 然后 `npx @usrivastava92/teamblind-mcp --login`,或仅使用 `npx @usrivastava92/teamblind-mcp --login --force`。 |
| **登录卡住或出现验证码** | 使用 `--no-headless` 运行 `--login`,以便您可以在浏览器窗口中手动解决验证码。 |
---
> [!IMPORTANT]
> 常见问题
>
> 是否安全使用?会不会被封禁?
>
> 此工具控制一个真实的身份验证浏览器会话;它不利用未公开的 API 或绕过身份验证。话虽如此,TeamBlind 的服务条款可能会禁止自动工具和浏览器自动化。到目前为止,没有与此项目相关的用户封禁报告。但是,平台政策可能会随时更改,因此请负责任地使用并自行承担风险。如果您遇到任何问题,请在 GitHub 上开启讨论或问题。
>
> 如果我的代理执行的操作太多怎么办?
>
> TeamBlind 可能会应用速率限制、额外的验证检查或其他限制,如果它检测到过多的自动化活动。此 MCP 通过共享的浏览器会话顺序执行工具调用,但不强制执行特定于平台的速率限制。请负责任地提示您的代理并避免不必要的或过多的请求。
---
## 致谢
使用 [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk) 和 [Playwright](https://playwright.dev) 构建。
按照 [TeamBlind 的服务条款](https://us.teamblind.com/setting/term) 使用。此项目通过用户身份验证的浏览器会话自动访问 TeamBlind。用户有责任确保其使用符合 TeamBlind 的服务条款和适用政策。
## 许可证
[MIT](LICENSE)