Synapse — GEO Growth Layer

Lints + auto-fixes how AI coding agents discover any new product. 24 rules, 6 tools, score 0-100.

E-CommerceTypeScriptv0.1.2

Synapse — GEO Growth Layer

The GEO check every vibe coder runs before they launch.

npx synapse check

Synapse is a CLI + MCP server + linter that makes a new product discoverable and recommendable by AI coding agents (Cursor, Claude Code, Windsurf, v0, Bolt, Lovable). Run synapse check against a project path or URL and get a 0–100 Growth Score plus a list of failing rules and one-command auto-fixes.

Packages

PackageDescription
@synapse/geo-lint24-rule GEO linter. Programmatic API: lint(target) → LintReport.
@synapse/cliCLI with init, check, fix, deploy, status. Installs as synapse.
synapseThin meta-wrapper for the npx synapse UX.
@synapse/mcp-serverMCP server exposing 6 tools, 3 resources, 3 prompts. Stdio + streamable HTTP.

Quick start

# In a fresh project:
npx @synapse/cli init           # scaffolds synapse.config.json + tracker stub
npx @synapse/cli check          # 24-rule lint, prints scored report
npx @synapse/cli fix            # apply auto-fixes (llms.txt, robots.txt, agent-answer)

# With an account:
export SYNAPSE_API_KEY=…
npx @synapse/cli deploy         # register the site, get a /s/<slug> dashboard
npx @synapse/cli status         # live agent-mention stats

MCP install

Synapse runs as an MCP server so any agent can call geo_check, geo_fix, geo_track_init, geo_prompts, geo_status, and geo_corpus_query directly during a build session.

Cursor — .cursor/mcp.json

{
  "mcpServers": {
    "synapse-geo": {
      "command": "npx",
      "args": ["-y", "@synapse/mcp-server"],
      "env": { "SYNAPSE_API_KEY": "" }
    }
  }
}

Claude Code

claude mcp add synapse-geo -- npx -y @synapse/mcp-server

Windsurf — ~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "synapse-geo": { "command": "npx", "args": ["-y", "@synapse/mcp-server"] }
  }
}

Cline — VS Code settings

Add to cline.mcpServers:

"synapse-geo": { "command": "npx", "args": ["-y", "@synapse/mcp-server"] }

Continue — config.json

{
  "mcpServers": [
    { "name": "synapse-geo", "command": "npx", "args": ["-y", "@synapse/mcp-server"] }
  ]
}

Zed — ~/.config/zed/settings.json

{
  "context_servers": {
    "synapse-geo": {
      "command": { "path": "npx", "args": ["-y", "@synapse/mcp-server"] }
    }
  }
}

Monorepo development

pnpm install
pnpm build                      # builds all packages
pnpm test                       # runs vitest in packages/geo-lint
node packages/cli/dist/index.js check https://example.com
node packages/mcp-server/dist/index.js   # stdio MCP server
PORT=8787 node packages/mcp-server/dist/http.js   # streamable HTTP

Authentication model

SurfaceRead-only toolsWrite / account tools
CLIinit, check, fix work with no accountdeploy, status need SYNAPSE_API_KEY
MCPgeo_check, geo_prompts, geo_status, geo_corpus_query work with no authgeo_fix, geo_track_init require SYNAPSE_API_KEY

Web app + backend (apps/web)

Lives in this same repo. Next.js 14 (App Router) + Supabase. Free during the Founding 1000 — no Stripe, no paywalls.

Pages: /, /install, /guide, /methodology, /leaderboard, /discover, /corpus, /s/[slug] (with dynamic OG + default badge SVG).

Public assets: /llms.txt, /llms-full.txt, /sitemap.xml, /robots.txt, /.well-known/agent-answer.json, /discover.json, /s.js (tracker beacon).

API routes against Supabase:

RoutePurpose
POST /api/sitesRegister a new site (used by synapse deploy).
POST /api/eventsTracker beacon endpoint, CORS-enabled.
GET /api/sites/[slug]/statusLive dashboard data.
GET /api/corpusPublic corpus snapshot.
GET/POST /api/recommend?intent=…Agent-facing recommendation endpoint.
POST /api/cli-telemetryAnonymous CLI usage events.

Dogfood result: Synapse scores 98/100 (grade A) against its own linter.

Deploy

  1. Supabase: create a project, then run apps/web/supabase/migrations/0001_init.sql (paste into the SQL editor, or psql $SUPABASE_DB_URL -f …). RLS is configured for public reads of visible sites; all writes go through the service role from the API routes.
  2. Env: copy apps/web/.env.example to .env.local and fill in NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY, NEXT_PUBLIC_SITE_URL.
  3. Vercel: link apps/web to a Vercel project and ship.
    vercel link --cwd apps/web
    vercel env add NEXT_PUBLIC_SUPABASE_URL
    vercel env add NEXT_PUBLIC_SUPABASE_ANON_KEY
    vercel env add SUPABASE_SERVICE_ROLE_KEY
    vercel env add NEXT_PUBLIC_SITE_URL
    vercel --prod --cwd apps/web --yes
    

Each surface fails closed with a clear error if Supabase isn't configured — the homepage and /install still render statically without it.

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @calvin8miles/mcp-server

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-calvinling2021-star-synapse-geo": {
      "command": "npx",
      "args": [
        "-y",
        "@calvin8miles/mcp-server"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@calvin8miles/mcp-servernpm

Compatible MCP Clients

Synapse — GEO Growth Layer works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More