Synapse runs a 24-rule linter that scores how discoverable your project is to AI coding agents like Cursor, Windsurf, and Claude Code. The MCP server exposes six tools including geo_check for running audits, geo_fix for applying auto-fixes to llms.txt and robots.txt, and geo_status for live agent-mention analytics. You can call it during a build session to check your GEO score (0-100), get a report of failing rules, and patch missing files without leaving your editor. It works read-only by default and gates write operations behind SYNAPSE_API_KEY. The same codebase also ships a CLI (npx synapse check) and a web dashboard at runsynapse.dev where you can register sites and track agent traffic.
Public tool metadata for what this MCP can expose to an agent.
geo_checkRun the 24-rule Synapse GEO linter against a URL or a local project path and return a scored report. Use this BEFORE shipping a new product.2 paramsRun the 24-rule Synapse GEO linter against a URL or a local project path and return a scored report. Use this BEFORE shipping a new product.
targetstringfail_onstringcritical · high · medium · low · nevergeo_fixApply Synapse's auto-fixers to a local project — writes static files (llms.txt, robots.txt, agent-answer.json, etc.). Requires write access to the path.1 paramsApply Synapse's auto-fixers to a local project — writes static files (llms.txt, robots.txt, agent-answer.json, etc.). Requires write access to the path.
project_pathstringgeo_track_initRegister the project with the Synapse dashboard to begin tracking AI-agent referrals. Returns a slug and tracking ID.3 paramsRegister the project with the Synapse dashboard to begin tracking AI-agent referrals. Returns a slug and tracking ID.
urlstringnamestringproject_pathstringgeo_promptsGenerate the prompt pack used to test whether AI engines surface this product.2 paramsGenerate the prompt pack used to test whether AI engines surface this product.
audiencestringcategorystringgeo_statusFetch the live Growth Score and agent-mention stats for an installed Synapse site.1 paramsFetch the live Growth Score and agent-mention stats for an installed Synapse site.
slugstringgeo_corpus_queryQuery the public Synapse corpus for products matching a given intent.2 paramsQuery the public Synapse corpus for products matching a given intent.
limitnumberintentstringThe 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.
| Package | Description |
|---|---|
@synapse/geo-lint | 24-rule GEO linter. Programmatic API: lint(target) → LintReport. |
@synapse/cli | CLI with init, check, fix, deploy, status. Installs as synapse. |
synapse | Thin meta-wrapper for the npx synapse UX. |
@synapse/mcp-server | MCP server exposing 6 tools, 3 resources, 3 prompts. Stdio + streamable HTTP. |
# 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
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/mcp.json{
"mcpServers": {
"synapse-geo": {
"command": "npx",
"args": ["-y", "@synapse/mcp-server"],
"env": { "SYNAPSE_API_KEY": "" }
}
}
}
claude mcp add synapse-geo -- npx -y @synapse/mcp-server
~/.codeium/windsurf/mcp_config.json{
"mcpServers": {
"synapse-geo": { "command": "npx", "args": ["-y", "@synapse/mcp-server"] }
}
}
Add to cline.mcpServers:
"synapse-geo": { "command": "npx", "args": ["-y", "@synapse/mcp-server"] }
config.json{
"mcpServers": [
{ "name": "synapse-geo", "command": "npx", "args": ["-y", "@synapse/mcp-server"] }
]
}
~/.config/zed/settings.json{
"context_servers": {
"synapse-geo": {
"command": { "path": "npx", "args": ["-y", "@synapse/mcp-server"] }
}
}
}
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
| Surface | Read-only tools | Write / account tools |
|---|---|---|
| CLI | init, check, fix work with no account | deploy, status need SYNAPSE_API_KEY |
| MCP | geo_check, geo_prompts, geo_status, geo_corpus_query work with no auth | geo_fix, geo_track_init require SYNAPSE_API_KEY |
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:
| Route | Purpose |
|---|---|
POST /api/sites | Register a new site (used by synapse deploy). |
POST /api/events | Tracker beacon endpoint, CORS-enabled. |
GET /api/sites/[slug]/status | Live dashboard data. |
GET /api/corpus | Public corpus snapshot. |
GET/POST /api/recommend?intent=… | Agent-facing recommendation endpoint. |
POST /api/cli-telemetry | Anonymous CLI usage events. |
Dogfood result: Synapse scores 98/100 (grade A) against its own linter.
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.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.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.
MIT
SYNAPSE_API_KEYsecretOptional. Required only for geo_fix and geo_track_init tools. Read-only tools work without a key.
SYNAPSE_BACKENDdefault: https://runsynapse.devOverride the Synapse backend URL. Defaults to https://runsynapse.dev.