{
  "markdown": "# Eveoy MCP\n\n> Marketing was always a bet. We made it a sure thing.\n>\n> Real customers · in real stores · from any AI.\n\nThe official Eveoy MCP server — **a knowledgeable Eveoy associate any AI agent can install.** It's here to help and educate first, not to sell. Through one endpoint an agent can learn what Eveoy is, get an exact quote, save the brand it represents, and — when ready — **order verified in-store customer visits end to end, anonymously, no sign-in.**\n\nYou don't pay for tokens. You don't pay for clicks. You don't pay for hope. You pay **$24.99** per real customer who walks into your store, spends 10+ minutes, completes your tasks, and brings back 2 authentic photos to prove it (and buys at your register on purchase visits). No-shows are **100% refunded.**\n\nBuilt as a native **Cloudflare Worker** (`McpAgent` + Durable Objects). Registry: **`com.eveoy/mcp`** (v1.1.1).\n\n**Endpoint** `https://mcp.eveoy.com/mcp` · Streamable HTTP (MCP spec `2025-06-18`) · legacy SSE at `/sse`\n\n**Humans:** `mcp.eveoy.com` is an agent endpoint. A browser that lands on `/`, `/index.html`, or `/mcp` (Accept: `text/html`) is **302-redirected to the human-facing page at [www.eveoy.com/mcp](https://www.eveoy.com/mcp)**. Agents (Accept `*/*`, `application/json`, `text/event-stream`) are never redirected, and static/discovery paths (`/llms.txt`, `/robots.txt`, `/.well-known/*`, `/info.json`, `/health`, `POST /mcp`, `/sse`) pass through untouched.\n\n## Add it to your AI\n\nRemote, no auth — connects immediately. `mcp-remote` is **not** needed.\n\n| Client | One-line setup |\n|---|---|\n| **Claude.ai / Claude Desktop** | Settings → Connectors → **Add custom connector** → paste `https://mcp.eveoy.com/mcp`. |\n| **Claude Code** | `claude mcp add --transport http eveoy https://mcp.eveoy.com/mcp` |\n| **ChatGPT** | Settings → Connectors → Add → paste the URL (developer mode). |\n| **Cursor** | `.cursor/mcp.json` → `{\"mcpServers\":{\"eveoy\":{\"url\":\"https://mcp.eveoy.com/mcp\"}}}` |\n| **VS Code (Copilot)** | `.vscode/mcp.json` → `{\"servers\":{\"eveoy\":{\"type\":\"http\",\"url\":\"https://mcp.eveoy.com/mcp\"}}}` |\n| **Windsurf** | `mcp_config.json` → `{\"mcpServers\":{\"eveoy\":{\"serverUrl\":\"https://mcp.eveoy.com/mcp\"}}}` |\n| **Lovable** | Connectors → Chat connectors → New MCP server → paste the URL → Add. |\n\n## What it does\n\n**11 tools · 5 prompts · 10 resources.** One endpoint. Just receipts. The Worker is a thin adapter — read/static tools run at the edge; the rest call Eveoy's Supabase edge functions (\"the brain\") with the publishable anon key only. Every interaction is logged to Eveoy's CRM (Zoho, via a Supabase `crm-log` edge function); high-intent events — profile captured, demo booked, checkout started, order paid, human requested — also ping the team in Zoho Cliq.\n\n**Learn**\n- `ask_eveoy` — any question about Eveoy (proxies the live brain; public-only KB fallback)\n- `get_case_studies` — outcome stories (aggregate; no client PII)\n- `list_industries` — the 16 B2C sectors Eveoy serves\n- `get_app_link` — canonical app / install links\n\n**Quote**\n- `get_pricing` — exact price; mirrors eveoy.com/order ($24.99/customer · $999 Starter pilot for 40 customers)\n\n**Buy & convert**\n- `capture_profile` — save the brand the agent represents (→ Zoho Lead)\n- `start_checkout` — returns a Stripe Checkout URL directly · anonymous, no sign-in (→ Zoho Deal)\n- `book_demo` — book a live walkthrough\n- `subscribe_newsletter` — newsletter opt-in\n\n**Status & handoff**\n- `check_order_status` — masked order lookup by session id\n- `request_human` — escalate to a person (→ Zoho Task + Cliq)\n\n**Prompts** — `/recommend_pilot` · `/eveoy_price_quote` · `/eveoy_objection_handle` · `/pitch_for_role` · `/pilot_scope_intake`\n\n**Resources** — 10 read-only KB docs at `eveoy://kb/*` (`overview`, `product`, `pricing`, `comparison`, `sectors`, `why-now`, `ugc-ripple`, `validation`, `directory`, and **`for-agents`** — the end-to-end how-to-buy guide written for agents).\n\nContracts: [`docs/API_CONTRACTS.md`](docs/API_CONTRACTS.md). Backend integration + current state: [`docs/NOTES_FOR_LOVABLE.md`](docs/NOTES_FOR_LOVABLE.md).\n\n## What it won't say\n\nThis server speaks public Eveoy only. A versioned classifier in [`src/classifier/denylist.ts`](src/classifier/denylist.ts) blocks every internal pattern — financials, roadmap, partner names, sales playbook, secrets — before it can leave the server, and the same `assertPublic` gate ([src/classifier/public-only.ts](src/classifier/public-only.ts)) runs on every CRM payload. If a question can't be answered from the public set, the response is *\"That detail isn't publicly available — email brad@eycrowd.com for more.\"*\n\n---\n\n## Architecture (Cloudflare-native)\n\n```\nmcp.eveoy.com  (Worker Custom Domain)\n   │\n   ▼  one Worker (src/index.ts)\n ├─ \"/\" → Lovable's mcp-landing edge fn (marketing source of truth)\n ├─ /info.json            live tool list + pricing + industries\n ├─ static assets (public/)      /privacy, icons, /.well-known/server-card.json,\n │    served free from the edge    robots.txt, sitemap.xml, llms.txt, eveoy.dxt\n ├─ EveoyMCP  (McpAgent + Durable Object + SQLite)\n │    wraps the official SDK McpServer; per-session state (profile, session_id) + SSE resumability\n │    serve('/mcp') = Streamable HTTP · serveSSE('/sse') = legacy\n │    start_checkout → anonymous agent path on create-checkout-session (no sign-in)\n ├─ src/integrations/crm.ts → crm-log edge fn (Zoho Activity/Lead/Deal + Cliq) · fire-and-forget\n ├─ KV (CACHE)            15-min eveoy.com fetch cache (not used for rate counting)\n └─ Rate Limit binding    per-session + per-IP soft limit (60 / 60s)\n```\n\nThe deterministic core (`src/lib/pricing.ts`, `src/classifier/*`, `src/industries.ts`, `src/mcp/schemas.ts`, `src/knowledge/*`, tool/prompt bodies) is platform-agnostic — no Cloudflare imports. The Worker shell (`src/index.ts`) and `src/config.ts` are the only platform-coupled files.\n\n## Local development\n\n```bash\nnpm install\ncp .dev.vars.example .dev.vars      # set IP_HASH_SALT, SUPABASE_ANON_KEY\nnpm run dev                         # wrangler dev → http://localhost:8787 (workerd)\nnpm run inspect                     # MCP Inspector against localhost:8787/mcp\n```\n\n## Quality gates\n\n```bash\nnpm run typecheck                   # tsc --noEmit\nnpm test                            # 110 tests across 20 files (vitest)\nnpm run lint:descriptors            # tool-descriptor integrity gate\nnpx wrangler deploy --dry-run --outdir dist   # bundle validation, no login\n```\n\nThe classifier suite must stay at 100% — every internal pattern from the about-eveoy KB has a deny case. The handshake suite asserts every tool follows the canonical description template, carries zero anti-slop tokens, and that `server.json` + `dxt/manifest.json` descriptions stay ≤100 chars.\n\n## Deploy\n\nSee [`docs/CLOUDFLARE_DEPLOY.md`](docs/CLOUDFLARE_DEPLOY.md) for the full runbook (account, KV namespace, secrets, custom domain, DNS zone, registry publish). Short version:\n\n```bash\nwrangler login\nwrangler kv namespace create CACHE          # paste the id into wrangler.jsonc\nwrangler secret put IP_HASH_SALT\nwrangler secret put SUPABASE_ANON_KEY\nwrangler deploy\n```\n\n## Security posture\n\n- Streamable HTTP per MCP spec `2025-06-18`\n- Origin allowlist + Host pinning + HSTS + CORS in the Worker fetch gate ([src/index.ts](src/index.ts))\n- Zod `.strict()` schemas on every tool — no extra params; inputs mirror eveoy.com/order\n- **Anonymous by design** — agents read *and* buy without sign-in; no OAuth friction on the path to purchase\n- Per-session + per-IP soft rate limit (Cloudflare Rate Limit binding), fail-open on limiter error\n- Fail-closed public-only output classifier — every response *and* every CRM payload passes `assertPublic`\n- No tokens or secrets ever logged; IPs HMAC-hashed with a rotating salt\n- Session state isolated per Durable Object\n\n## Distribution\n\n- [`mcp/server.json`](mcp/server.json) — Official MCP Registry (`com.eveoy/mcp`, v1.1.1)\n- [`smithery.yaml`](smithery.yaml) — Smithery · [`dxt/manifest.json`](dxt/manifest.json) — Claude Desktop `.dxt` (`npm run build:dxt` → served at `/eveoy.dxt`)\n- `/.well-known/mcp/server-card.json` · `/llms.txt` · `/sitemap.xml` · `/robots.txt`\n- Listed on mcp.so, awesome-mcp-servers, Glama, PulseMCP, and Smithery. Packets + status: [`docs/DIRECTORY_SUBMISSIONS.md`](docs/DIRECTORY_SUBMISSIONS.md).\n\n## License\n\nProprietary. © The Eveoy™ MCP by Eveoy, Inc.\n",
  "bytes": 8425,
  "sha": "03f522171be91ad017178fc217a832b6424d56263fb6e6c51d1f84c55af5d7c9",
  "repo_slug": "eveoy/eveoy-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_eveoy_mcp_31b8c433/readme"
}