{
  "markdown": "<!-- mcp-name: io.github.LeoMbm/malt-mcp -->\n# Malt MCP Server\n\n[![PyPI](https://img.shields.io/pypi/v/malt-mcp?color=blue)](https://pypi.org/project/malt-mcp/)\n[![Python](https://img.shields.io/badge/python-3.12+-3776ab?logo=python&logoColor=white)](https://python.org)\n[![License](https://img.shields.io/badge/License-Apache%202.0-%233fb950?labelColor=32383f)](LICENSE)\n\nMCP server for [Malt.fr](https://www.malt.fr). Lets Claude (or any MCP client) read your freelance profile, stats, and missions.\n\n[![Install MCP Bundle](https://img.shields.io/badge/Claude_Desktop_MCPB-d97757?style=for-the-badge&logo=anthropic&logoColor=white)](#-claude-desktop-mcp-bundle)\n[![uvx](https://img.shields.io/badge/uvx-Quick_Install-de5fe9?style=for-the-badge&logo=uv&logoColor=white)](#-uvx-setup-universal)\n[![Docker](https://img.shields.io/badge/Docker-Coming_Soon-2496ED?style=for-the-badge&logo=docker&logoColor=white)](#docker-coming-soon)\n\n<p align=\"center\">\n  <img src=\"assets/malt-demo.gif\" alt=\"Malt MCP Server demo\" width=\"800\">\n</p>\n\n## Tools\n\n| Tool | Description | Status |\n|------|-------------|--------|\n| `authenticate` | Log in to Malt interactively from Claude Desktop | working |\n| `get_profile` | Get freelance profile info (bio, daily rate, skills, rating). Omit username to fetch your own profile. | working |\n| `get_statistics` | View profile stats (views, response rate, missions) | working |\n| `get_missions` | List mission conversations from messaging | working |\n| `get_mission_details` | Get full details of a specific mission (budget, skills, messages) | working |\n| `close_session` | Close the browser and free resources | working |\n\n## 📦 Claude Desktop MCP Bundle\n\n**Prerequisites:** [Claude Desktop](https://claude.ai/download).\n\n**One-click installation:**\n\n1. Download the latest `.mcpb` from [releases](https://github.com/LeoMbm/malt-mcp/releases/latest)\n2. Double-click the `.mcpb` file to install it into Claude Desktop\n3. Ask Claude \"connecte-moi a Malt\" - a browser opens, you log in, done\n4. Call any Malt tool\n\nNo terminal needed. Session is saved in `~/.malt-mcp/` and reused across restarts.\n\n> [!NOTE]\n> Google OAuth doesn't work (blocked by Google when automated). Use email/password.\n\n## 🚀 uvx Setup (Universal)\n\n**Prerequisites:** [uv](https://docs.astral.sh/uv/getting-started/installation/) installed.\n\nAdd to your MCP client config (Claude Desktop, Claude Code, or any MCP-compatible client):\n\n```json\n{\n  \"mcpServers\": {\n    \"malt\": {\n      \"command\": \"uvx\",\n      \"args\": [\"malt-mcp@latest\"],\n      \"env\": { \"UV_HTTP_TIMEOUT\": \"300\" }\n    }\n  }\n}\n```\n\n`@latest` pulls the newest version from PyPI on each launch. First auth-requiring call opens a browser for login.\n\nTo log in ahead of time:\n\n```bash\nuvx malt-mcp@latest --login\n```\n\n### Docker (coming soon)\n\n## ⚙️ CLI Options\n\n| Option | Description |\n|--------|-------------|\n| `--login` | Open browser to log in and save session |\n| `--logout` | Clear stored browser profile |\n| `--no-headless` | Show browser window (debug) |\n| `--log-level` | Set log level (DEBUG, INFO, WARNING, ERROR) |\n| `--timeout` | Browser timeout in ms (default: 5000) |\n\n## ❗ Troubleshooting\n\n**Login issues:**\n\n- Google OAuth won't work. Use email/password.\n- Session expired? Re-run `uvx malt-mcp@latest --login`.\n- Cloudflare challenge on first load is normal - the browser handles it, give it a few seconds.\n\n**Timeout issues:**\n\n- Pages not loading? Try `--timeout 10000`. Slow connections might need `15000`.\n\n**Browser issues:**\n\n- Headless mode doesn't work - Cloudflare blocks it. The browser window is expected.\n- First run downloads Chromium (~200 MB via Patchright). One-time thing.\n- **Upgrading from v0.3.x?** Run `uvx malt-mcp@latest --logout` then `--login`. The browser engine changed from system Chrome to managed Chromium.\n\n## 🔒 How it works\n\nUnder the hood, this is browser automation via [Patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright) (Playwright fork). No API, no reverse-engineering - it drives a real browser like you would.\n\n- **Credentials stay local.** Cookies live in `~/.malt-mcp/profile/`, nowhere else.\n- **Read-only.** Nothing is modified on your Malt account (for now).\n- **Runs locally.** The server talks to Malt.fr and nothing else.\n\n> [!IMPORTANT]\n> Malt's TOS may prohibit automated tools. Don't bulk-scrape. Use responsibly.\n\n## 🐍 Development\n\nContributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture guidelines.\n\n```bash\ngit clone https://github.com/LeoMbm/malt-mcp.git\ncd malt-mcp\nuv sync --group dev\npre-commit install\n```\n\n**Run the MCP Inspector** (local testing):\n\n```bash\nuv run mcp dev malt_mcp_server/server.py\n```\n\n**Run tests:**\n\n```bash\nuv run pytest --cov -v\n```\n\n**Type check:**\n\n```bash\nuv run ty check\n```\n\n## License\n\n[Apache 2.0](LICENSE)\n",
  "bytes": 4810,
  "sha": "77f0f4358ac0073de7e8b5d6244d831035aac8e550e5368f0424e6b9b8e6407c",
  "repo_slug": "leombm/malt-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_leombm_malt_mcp_bfa03816/readme"
}