{
  "markdown": "# VerdictSwarm MCP Server\n\n<!-- mcp-name: io.github.sentien-labs/verdictswarm-mcp -->\n\n[![PyPI](https://img.shields.io/pypi/v/verdictswarm-mcp)](https://pypi.org/project/verdictswarm-mcp/)\n[![Python](https://img.shields.io/badge/python-3.10+-blue)](https://github.com/sentien-labs/verdictswarm-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![MCP](https://img.shields.io/badge/MCP-1.0-blue)](https://modelcontextprotocol.io)\n\nVerdictSwarm is a pre-trade security layer for agents that touch crypto. This MCP server exposes the Verdict API v2 as a small set of read-only tools for token checks, size-aware exit screening, and live pricing discovery.\n\n## Quick start\n\nNo account setup is required. If `VS_API_KEY` is absent, the server mints a free key on the first API-backed tool call and saves it in the platform user config directory.\n\n```bash\nuvx verdictswarm-mcp\n```\n\nThen ask your MCP client: “Check `DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263` on Solana at fast level.”\n\nTo supply an existing free or credits-backed key:\n\n```bash\nVS_API_KEY=vs1_your_key uvx verdictswarm-mcp\n```\n\n### Claude Desktop, Cursor, Windsurf, and OpenClaw\n\nUse this server entry (the `env` block is optional):\n\n```json\n{\n  \"mcpServers\": {\n    \"verdictswarm\": {\n      \"command\": \"uvx\",\n      \"args\": [\"verdictswarm-mcp\"],\n      \"env\": {\n        \"VS_API_KEY\": \"vs1_your_key\"\n      }\n    }\n  }\n}\n```\n\nWithout `VS_API_KEY`, the self-provisioned key is stored at:\n\n- macOS: `~/Library/Application Support/VerdictSwarm/config.json`\n- Linux: `${XDG_CONFIG_HOME:-~/.config}/verdictswarm/config.json`\n- Windows: `%APPDATA%\\VerdictSwarm\\config.json`\n\nThe file is created with user-only permissions where the operating system supports them. Set `VS_CONFIG_DIR` to override the directory.\n\n## Tools\n\n| Tool | Description |\n|---|---|\n| `check_token(address, chain=\"solana\", level=\"fast\")` | Calls `POST /v2/verdict` and returns action, score, summary, and the five strongest signals. Levels are `triage`, `fast`, and `deep`. |\n| `exit_sim(address, size_usd, side)` | Requests `include:[\"exit_sim\"]` and returns the fresh Solana exit-simulation block. Side is `buy` or `sell`. |\n| `get_pricing()` | Reads live pricing, levels, limits, and supported chains from `GET /v2/verdict/info`. |\n\nThe 0.1.x names `scan_token`, `get_quick_score`, `check_rug_risk`, `get_token_report`, and `verify_payment` are no longer advertised as MCP tools; clients see only the three current v2 tools above. An explicit call to an old name still returns a migration response and makes no legacy pay-lane request.\n\n## Free quota and x402 overflow\n\nFree keys have per-level daily limits advertised by the API. If a limit is exhausted, the tool response says when the quota resets and preserves the complete x402 challenge. To continue immediately, set `VS_API_KEY` to a credits-backed key or use the returned x402 payment instructions.\n\nThe MCP client sends these attribution headers on API requests:\n\n- `X-VS-Integration: mcp`\n- `X-VS-SDK-Version: 0.2.1`\n\n## Configuration\n\n| Environment variable | Default | Description |\n|---|---|---|\n| `VS_API_KEY` | unset | Optional free or credits-backed v2 API key. |\n| `VS_API_URL` | `https://api.vswarm.io` | VerdictSwarm API base URL. |\n| `VS_TIMEOUT` | `120` | HTTP request timeout in seconds. |\n| `VS_CONFIG_DIR` | platform user config dir | Directory for the self-provisioned key. |\n| `VS_TRANSPORT` | `stdio` | MCP transport. Use `streamable-http` for HTTP. |\n| `HOST` | `0.0.0.0` | HTTP bind host. |\n| `PORT` | `8000` | HTTP bind port. |\n\nFor HTTP transport:\n\n```bash\nVS_TRANSPORT=streamable-http HOST=0.0.0.0 PORT=8000 uvx verdictswarm-mcp\n```\n\n## Programmatic client\n\n```python\nimport asyncio\nfrom verdictswarm_mcp import VerdictSwarmApiClient\n\nasync def main():\n    client = VerdictSwarmApiClient()\n    verdict = await client.check_token(\"TOKEN_ADDRESS\", \"solana\", \"fast\")\n    print(verdict[\"verdict\"][\"action\"], verdict[\"verdict\"][\"score\"])\n\nasyncio.run(main())\n```\n\n## Development\n\n```bash\ngit clone https://github.com/sentien-labs/verdictswarm-mcp.git\ncd verdictswarm-mcp\nuv sync --extra dev\nuv run --extra dev python -m pytest -q\n```\n\nThe server supports Python 3.10–3.13 and both stdio and HTTP transports.\n\n## Feedback and community\n\nUsed the server in an agent, bot, wallet, or dashboard? Share the client,\nruntime, where the risk check fits, and what worked or failed through the\n[VerdictSwarm community page](https://www.vswarm.io/community?utm_source=github&utm_medium=repository&utm_campaign=community_proof_v1&utm_content=verdictswarm-mcp).\nYou can also [show an integration](https://github.com/sentien-labs/verdictswarm-mcp/discussions/categories/show-and-tell),\n[choose a structured issue form](https://github.com/sentien-labs/verdictswarm-mcp/issues/new/choose),\nor add your project to [ADOPTERS.md](ADOPTERS.md). Praise is never required.\nStars should come only from people who independently find the project useful;\nagents must not automate them.\n\n## Links\n\n- [VerdictSwarm](https://www.vswarm.io)\n- [API documentation](https://api.vswarm.io/docs)\n- [GitHub repository](https://github.com/sentien-labs/verdictswarm-mcp)\n- [Security policy](SECURITY.md)\n\nMIT licensed. See [LICENSE](LICENSE).\n",
  "bytes": 5244,
  "sha": "2dcd53b7f268c36bd55705c1daecac12dde1b1756c8687d6f70d7d196aceaf20",
  "repo_slug": "sentien-labs/verdictswarm-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_sentien_labs_verdictswarm_mcp_56d877ae/readme"
}