Synapse — GEO Growth Layer

io.github.calvinling2021-starPublished by GitHub account calvinling2021-starv0.1.2Updated Oct 24, 2026

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

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingDeveloper Tools

Overview

AI-generated overview

Synapse is a GEO linter MCP server that lets an assistant score and auto-fix how discoverable a new product is to AI coding agents.

What you can do
Lint a project path or URL against 24 GEO rules and get a 0–100 Growth Score with failing rules and one-command auto-fixes (geo_check, geo_fix). Generate agent-facing prompts and query the public recommendation corpus (geo_prompts, geo_corpus_query). Register a site for tracking and read live agent-mention stats (geo_track_init, geo_status).
When to use it
Use it before launching a new product when you want AI coding agents such as Cursor, Claude Code, Windsurf, v0, Bolt or Lovable to discover and recommend the site, and want a scored report plus fixes applied during a build session.
Requirements
Runs as a remote endpoint at runsynapse.dev or as a local npm package (@calvin8miles/mcp-server) over stdio, typically via npx, so Node.js is needed locally. Read-only tools work without a key; geo_fix and geo_track_init require the SYNAPSE_API_KEY environment variable. SYNAPSE_BACKEND can override the backend URL.
Before you install
geo_fix applies auto-fixes that write files such as llms.txt, robots.txt and an agent-answer file into the project. geo_track_init registers the site with the Synapse backend and needs SYNAPSE_API_KEY, which is sent to that service. The README also mentions anonymous CLI telemetry events.

Installation

In SourceWeft

  1. Open Synapse — GEO Growth Layer in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.calvinling2021-star%2Fsynapse-geo/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "synapse-geo-growth-layer": {
      "type": "http",
      "url": "https://runsynapse.dev/api/mcp"
    }
  }
}

README

Synapse — GEO Growth Layer

The GEO check every vibe coder runs before they launch.

sh
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

sh
# In a fresh project:npx @synapse/cli init           # scaffolds synapse.config.json + tracker stubnpx @synapse/cli check          # 24-rule lint, prints scored reportnpx @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> dashboardnpx @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

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

Claude Code

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

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

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

Cline — VS Code settings

Add to cline.mcpServers:

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

Continue — config.json

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

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

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

Monorepo development

sh
pnpm installpnpm build                      # builds all packagespnpm test                       # runs vitest in packages/geo-lintnode packages/cli/dist/index.js check https://example.comnode packages/mcp-server/dist/index.js   # stdio MCP serverPORT=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.
    sh
    vercel link --cwd apps/webvercel env add NEXT_PUBLIC_SUPABASE_URLvercel env add NEXT_PUBLIC_SUPABASE_ANON_KEYvercel env add SUPABASE_SERVICE_ROLE_KEYvercel env add NEXT_PUBLIC_SITE_URLvercel --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

Source: README.md at commit 57f8e4c

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v0.1.2LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts