内容
<!-- mcp-name: io.github.LeoMbm/malt-mcp -->
# Malt MCP 服务器
[](https://pypi.org/project/malt-mcp/)
[](https://python.org)
[](LICENSE)
适用于 [Malt.fr](https://www.malt.fr) 的 MCP 服务器。让 Claude(或任何 MCP 客户端)读取您的自由职业者个人资料、统计数据和任务。
[](#-claude-desktop-mcp-bundle)
[](#-uvx-setup-universal)
[](#docker-coming-soon)
<p align="center">
<img src="assets/malt-demo.gif" alt="Malt MCP 服务器演示" width="800">
</p>
## 工具
| 工具 | 描述 | 状态 |
|------|-------------|--------|
| `authenticate` | 使用 Claude Desktop 交互式登录 Malt | 工作中 |
| `get_profile` | 获取自由职业者个人资料信息(简介、日薪、技能、评分)。省略用户名以获取您自己的个人资料。 | 工作中 |
| `get_statistics` | 查看个人资料统计数据(浏览量、响应率、任务) | 工作中 |
| `get_missions` | 从消息列表中获取任务对话 | 工作中 |
| `get_mission_details` | 获取特定任务的完整详细信息(预算、技能、消息) | 工作中 |
| `close_session` | 关闭浏览器并释放资源 | 工作中 |
## 📦 Claude Desktop MCP 捆绑包
**前提条件:** [Claude Desktop](https://claude.ai/download)。
**一键安装:**
1. 从 [releases](https://github.com/LeoMbm/malt-mcp/releases/latest) 下载最新的 `.mcpb` 文件
2. 双击 `.mcpb` 文件将其安装到 Claude Desktop 中
3. 询问 Claude “connecte-moi a Malt” - 浏览器打开,您登录,完毕
4. 调用任意 Malt 工具
无需终端。会话保存在 `~/.malt-mcp/` 中,并在重启之间重复使用。
> [!NOTE]
> Google OAuth 不起作用(被 Google 自动阻止)。使用电子邮件/密码。
## 🚀 uvx 设置(通用)
**前提条件:** 已安装 [uv](https://docs.astral.sh/uv/getting-started/installation/)。
将以下内容添加到您的 MCP 客户端配置中(Claude Desktop、Claude Code 或任何 MCP 兼容客户端):
```json
{
"mcpServers": {
"malt": {
"command": "uvx",
"args": ["malt-mcp@latest"],
"env": { "UV_HTTP_TIMEOUT": "300" }
}
}
}
```
`@latest` 在每次启动时从 PyPI 拉取最新版本。第一个需要身份验证的调用将打开浏览器进行登录。
提前登录:
```bash
uvx malt-mcp@latest --login
```
### Docker(即将推出)
## ⚙️ CLI 选项
| 选项 | 描述 |
|--------|-------------|
| `--login` | 打开浏览器登录并保存会话 |
| `--logout` | 清除存储的浏览器配置文件 |
| `--no-headless` | 显示浏览器窗口(调试) |
| `--log-level` | 设置日志级别(DEBUG、INFO、WARNING、ERROR) |
| `--timeout` | 浏览器超时时间(毫秒)(默认值:5000) |
## ❗ 故障排除
**登录问题:**
- Google OAuth 不起作用。使用电子邮件/密码。
- 会话过期?重新运行 `uvx malt-mcp@latest --login`。
- 首次加载时出现 Cloudflare 挑战是正常的 - 浏览器会处理它,请等待几秒钟。
**超时问题:**
- 页面无法加载?尝试 `--timeout 10000`。慢速连接可能需要 `15000`。
**浏览器问题:**
- 无头模式不起作用 - Cloudflare 阻止它。浏览器窗口是预期的。
- 首次运行下载 Chromium(~200 MB via Patchright)。一次性操作。
- **从 v0.3.x 升级?** 运行 `uvx malt-mcp@latest --logout` 然后 `--login`。浏览器引擎从系统 Chrome 更改为托管 Chromium。
## 🔒 工作原理
在底层,这是通过 [Patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright)(Playwright 分叉)进行浏览器自动化。没有 API,没有逆向工程 - 它驱动一个真正的浏览器,就像您一样。
- **凭证保持本地。** Cookie 存储在 `~/.malt-mcp/profile/` 中,其他地方没有。
- **只读。** 您的 Malt 帐户上没有任何内容被修改(目前)。
- **本地运行。** 服务器与 Malt.fr 对话,其他内容都没有。
> [!IMPORTANT]
> Malt 的 TOS 可能禁止自动化工具。不要批量抓取。请负责任地使用。
## 🐍 开发
欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解架构指南。
```bash
git clone https://github.com/LeoMbm/malt-mcp.git
cd malt-mcp
uv sync --group dev
pre-commit install
```
**运行 MCP 检查器**(本地测试):
```bash
uv run mcp dev malt_mcp_server/server.py
```
**运行测试:**
```bash
uv run pytest --cov -v
```
**类型检查:**
```bash
uv run ty check
```
## License
[Apache 2.0](LICENSE)