{
  "markdown": "# Verity MCP Server\n\nPublic MCP (Model Context Protocol) server for [Verity](https://verityskills.com) skills. Six callable endpoints your AI agent can invoke before any trade: detect coordinated activity, score market subjects, cross-check claims, flag disinformation patterns.\n\n**Production endpoint:** `https://mcp.verityskills.com/mcp`\n\n## Why Verity skills\n\nApeWisdom has a dashboard. StockTwits has a feed. Verity has skills. The pre-trade integrity check most AI workflows are missing. Connect once; every Verity capability becomes a function call from inside your Claude, Cursor, LangChain, or LlamaIndex workflow.\n\nEvery skill needs a Verity API key. Issue one in seconds at https://verityskills.com/account/api-keys.\n\n## Install\n\n### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows). Native HTTP transport (Claude Desktop 2026 builds):\n\n```json\n{\n  \"mcpServers\": {\n    \"verity\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.verityskills.com/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer vtk_<your-token>\"\n      }\n    }\n  }\n}\n```\n\nIf your Claude Desktop is older and rejects `type: \"http\"`, use the `mcp-remote` stdio bridge. See `docs/CLAUDE_DESKTOP.md` for the full guide. Fully quit Claude Desktop (Cmd-Q on macOS) before relaunch.\n\n### Cursor\n\nAdd to `~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"verity\": {\n      \"url\": \"https://mcp.verityskills.com/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer vtk_<your-token>\"\n      }\n    }\n  }\n}\n```\n\nRestart Cursor. See `docs/CURSOR.md` for the full guide.\n\n### Direct API (curl, no MCP client required)\n\n```bash\ncurl -sS -X POST https://mcp.verityskills.com/mcp \\\n  -H 'content-type: application/json' \\\n  -H 'Authorization: Bearer vtk_your_key_here' \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"id\": 1,\n    \"method\": \"tools/call\",\n    \"params\": {\n      \"name\": \"coordination-heat\",\n      \"arguments\": { \"subject\": \"GME\" }\n    }\n  }'\n```\n\nAll six skills require an API key issued at https://verityskills.com/account/api-keys.\n\n### Other agent runtimes\n\nAny MCP-compliant agent runtime works. The endpoint is `https://mcp.verityskills.com/mcp` over HTTP+SSE (the SSE channel is a future addition; HTTP POST works today). Add `Authorization: Bearer vtk_<token>` for every skill.\n\n## Available skills\n\n| Skill | Auth | Capability |\n|---|---|---|\n| `coordination-heat` | Required | Score a topic, ticker, or narrative for coordinated activity. |\n| `verity-score` | Required | Composite integrity score for a market subject. |\n| `morning-brief` | Required | Daily briefing of overnight signals across a watchlist. |\n| `verity-scan` | Required | Real-time scan of a topic, ticker, or claim. |\n| `cross-check-alert` | Required | Cross-reference a claim against monitored sources. |\n| `disinfo-alert` | Required | Monitor a topic or ticker for disinformation patterns. |\n\n## Marketplace listings\n\n- [Smithery.ai](https://smithery.ai) (pending review)\n- [Cursor Directory](https://cursor.directory) (pending review)\n- PulseMCP, Glama, MCP.so (pending review)\n\n## Architecture\n\nThin bearer-token proxy on Cloudflare Workers. Zero state, zero DB credentials.\n\n- Translates `Authorization: Bearer vtk_*` from MCP clients into the upstream `x-verity-key` header for [verityskills.com](https://verityskills.com) skill routes.\n- JSON-RPC 2.0 framing per the MCP spec (`2025-03-26`).\n- 402 `TRIAL_CAP_REACHED` responses are rewritten to inject an absolute `upgrade_url` so MCP clients can route trial-cap users to the right upgrade page.\n- 5xx upstream responses are wrapped as JSON-RPC -32603 envelopes with HTTP 200 to keep transport-layer retry semantics correct.\n- Per-tool kill switch via the `MCP_TOOLS_DISABLED` Wrangler secret. Global kill switch via `MCP_KILL_SWITCH=on`.\n- Sentry instrumentation via [@sentry/cloudflare](https://www.npmjs.com/package/@sentry/cloudflare). Bearer tokens are scrubbed from any captured event via a `beforeSend` hook.\n\n## Operations\n\n| Concern | Source |\n|---|---|\n| Deploy + secrets + DNS | [`docs/DEPLOY_RUNBOOK.md`](./docs/DEPLOY_RUNBOOK.md) |\n| Post-deploy smoke | `scripts/post-deploy-smoke.sh <base-url>` |\n| Synthetic monitoring | 5-minute cron at `cchurctrip/verity:app/api/cron/mcp-synthetic-smoke/route.ts` |\n| Health endpoint | `GET https://mcp.verityskills.com/health` |\n| Marketplace submission | [`docs/SMITHERY.md`](./docs/SMITHERY.md), [`docs/CURSOR.md`](./docs/CURSOR.md) |\n\n## Development\n\n```bash\ngit clone https://github.com/cchurctrip/verity-mcp\ncd verity-mcp\nnpm install\nnpm test            # 237 unit + property + integration tests\nnpm run lint\nnpm run typecheck\nnpm run check-manifest\nnpx wrangler dev    # local worker on http://localhost:8787\n```\n\n## License\n\nMIT. See [LICENSE](./LICENSE).\n",
  "bytes": 4833,
  "sha": "6cc728cc4be53b275af5b1210fd569f0ceb0e444d6d3b04fbaef43bb15e93390",
  "repo_slug": "cchurctrip/verity-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_cchurctrip_verity_cc96864f/readme"
}