The AI-visibility CLI, built for agents

Point a coding agent at Kolaria and it runs the whole loop from the command line: find the questions where AI names a competitor, write the page that wins them back, ship it, and report the lift. One npm install. On every plan.

Get started in seconds

Three lines to your first gap

Install the package, set your token, run the first pass. Your token lives under Settings, then Integrations at kolaria.com.

bash
# install the CLI
npm install -g fulcru

# set your token (Settings -> Integrations)
export FULCRU_TOKEN=pk_...

# find the questions you are losing
$ fulcru gaps

Prefer no account? The free fulcru Claude Skill runs the same playbook with nothing but web access. The CLI is what you reach for when you want it measured, over and over, instead of once.

Runs from any agent

Your agent already knows how to drive it

Point Claude Code, Cursor, Codex, or any MCP-capable agent at the Kolaria CLI and it runs the loop end to end, no dashboard in the way. The output is terse lines, not JSON blobs, because the reader is usually an LLM and its context is the scarce thing.

  • Claude Code
  • Cursor
  • Codex
  • Devin
  • OpenCode
  • n8n
  • Windsurf
  • OpenClaw
  • Hermes

A fulcru gaps call costs an agent about 50 tokens. The same data as raw API JSON costs about 800. Terse output is a design choice, so the agent spends its context on the work.

The loop, in four commands

Find the gap, write the page, ship it, measure the lift

Four commands run the whole play. Add --json to any of them for the raw payload.

  • 01
    fulcru gaps

    The questions where AI names a competitor and not you, worst first. Pass a number to cap the list.

    0% k57jc... best AI visibility tracker -> AI names Profound, Peec AI
  • 02
    fulcru write <promptId>

    Drafts the page that closes one gap, grounded in what AI actually cites. Markdown to stdout.

    fulcru write k57jc... > page.md
  • 03
    fulcru publish <pageId> <url>

    Marks the page live and snapshots the baseline the next tracking pass measures against.

    Published. Baseline: AI names you in 0% of 9 answers.
  • 04
    fulcru delta

    What your published pages actually did, in mention-rate points. This line is the whole point.

    0% -> 44% +44pts Best AI Visibility Trackers, Compared

Want the full picture instead of the gap list? Run fulcru report for overview, competitors, sources, mentions, or prompts.

Claude connector

Add Kolaria to Claude in three steps

Paste one URL and sign in. Claude talks to Kolaria over OAuth, so there is no token to copy and nothing to keep in a config file. It takes about a minute.

  1. 01

    Open the connector form

    In Claude, go to Settings, then Connectors, then Add custom connector.

  2. 02

    Paste the URL

    Use https://api.kolaria.com/mcp. If your client cannot reach that host yet, paste https://little-orca-977.convex.site/mcp instead. Same server, same tools.

  3. 03

    Sign in and approve

    Claude opens a Kolaria sign-in page. Sign in or create an account, approve the request, and the five tools appear in the chat.

What happens the first time

  • Claude registers itself. Nothing to create beforehand. There is no client id to paste and no key to copy, because the server accepts dynamic client registration.

  • You sign in once. Approve one screen at kolaria.com. Claude holds the grant and refreshes it on its own, so an hour later the tools still answer without a second sign-in.

  • Tools read one brand. Every tool works on the brand in your account. A brand-new account should run onboarding at kolaria.com first, or the tools reply that there is no brand to read.

What each tool does

Three read your data. Two change it, and both stay inside the limits your plan already sets, because an agent calls the same guarded code the app calls.

  • fulcru_gapsReads

    List visibility gaps

    The questions where AI names a competitor and not you, worst first. Each one carries a promptId for the next tool.

  • fulcru_write_pageWrites

    Write a gap-closing page

    Drafts the article that closes one gap, grounded in the sources AI cites in that space. Returns Markdown. Spends the account's AI budget and is rate limited.

  • fulcru_publish_pageWrites

    Publish a page and snapshot baseline

    Marks a draft live at a URL and records today's mention rate as the baseline every later pass is measured against.

  • fulcru_deltaReads

    Report published-page delta

    For each published page, the mention rate when it went live against the rate now.

  • fulcru_visibilityReads

    Read AI-visibility report

    One slice of the brand's report: overview, competitors, sources, mentions or prompts.

OAuth endpoints

You never need these to connect. They are here for anyone who wants to check the flow by hand.

Issuer
https://kolaria.com
Authorize
https://kolaria.com/api/auth/mcp/authorize
Token
https://kolaria.com/api/auth/mcp/token
Register
https://kolaria.com/api/auth/mcp/register
JWKS
https://kolaria.com/api/auth/mcp/jwks
Server metadata
https://kolaria.com/.well-known/oauth-authorization-server
Resource metadata
/.well-known/oauth-protected-resource/mcp, on the MCP host

Token auth, for the CLI

The older path, still working

The CLI and the fulcru-mcp proxy send a token instead of signing in. Anything that cannot do OAuth can use this. Your token lives under Settings, then Integrations at kolaria.com, and it starts with pk_.

Both paths reach the same five tools and the same data. Use the connector above in Claude, and the token here for a shell, a script, or a client with no browser to sign in from.

agent config
{
  "mcpServers": {
    "fulcru": {
      "url": "https://api.kolaria.com/mcp",
      "headers": { "Authorization": "Bearer pk_..." }
    }
  }
}

Endpoint https://api.kolaria.com/mcp. If that host does not resolve for you yet, swap in https://little-orca-977.convex.site/mcp, which is the Convex origin behind it and serves the same server.

Start with a free visibility report

See where AI names a competitor instead of you, no card needed. Then let the CLI or your agent run the loop that closes the gap.