Overview
The GEO Assistant is the chat sidebar inside the Cited app. It's powered by the same set of tools that the Cited MCP server exposes to Claude Desktop — same operations, same parameter shapes, different transport. Where Claude Desktop talks to Cited over OAuth + JSON-RPC, the in-app Assistant talks directly to the backend in-process.
Use it to ask questions about your data and to make changes you'd otherwise click through several pages to reach.
What it can do
The Assistant can both read and write on your behalf. Read tools are always safe; write tools change state and the Assistant will tell you what it's about to do before invoking them.
Read tools:
Business list_businesses, get_business
Audit list_audits, get_audit_status, get_audit_result,
get_audit_question_detail
Recommendations list_recommendations, get_recommendation_status,
get_recommendation_result
Validation get_check_status
Action Plan list_priority_actions, get_priority_action_summary
Analytics get_business_analytics
Knowledge base search_knowledge_base
Briefing get_agent_brief (composite "what to do next")
Write tools (state-changing):
create_business Add a new business to your account
start_audit Trigger an audit run (~2 min, 1 monthly credit)
start_recommendation Generate recommendations from a completed audit
update_priority_action_status Mark / dismiss / reopen a priority action
validate_recommendation Re-run the deterministic check for one recommendation
Some example things to ask:
- "What businesses do I have?" — read
- "What's my latest audit result for [Business Name]?" — read
- "Show me the priority actions I haven't done yet" — read
- "Mark the 'Add Organization JSON-LD' action complete" — write (auto-validates)
- "What should I do next for [Business Name]?" — read (briefing)
- "Add CNN as a business and run an audit on it" — multi-step write chain
- "Run an audit for my active business" — write
- "Validate recommendation [ID]" — write
- "How am I trending on visibility?" — read
The Assistant scopes everything to your account — it can't see or modify other users' data. It also won't perform irreversible operations (deleting businesses, audits, recommendations) — those still require the dashboard UI.
Cost-aware behavior
Audits and recommendation runs cost real money (LLM API calls) and count against your monthly plan quota. Before invoking a write tool with meaningful cost, the Assistant will tell you what it's about to do — for example:
"I'll create a 'CNN' business and run a full audit on it (uses 1 of your 10 monthly audit credits, takes about 2 minutes). Sound good?"
It returns a job_id after starting any background job and can poll status when you ask. If you hit a plan-tier or quota limit, the Assistant surfaces the error verbatim and points you toward an upgrade path — it won't retry blindly.
There's a backstop write rate limit (~10 writes per minute per user) to bound runaway loops. Normal multi-step workflows never hit it.
Audit log
Every tool call the Assistant makes is recorded in an internal audit log: who called what, with what arguments, and what the result was. This lets us trace any anomaly ("did the Assistant actually run that audit?") and is useful for support reviews. The log is account-scoped — it only contains your own activity.
The tool-status pill
Whenever the Assistant calls a tool, you'll see an inline pill in its response:
┌────────────────────────────────────────────┐
│ 🟠 Calling list_priority_actions... │ amber spinner — call in progress
└────────────────────────────────────────────┘
┌────────────────────────────────────────────┐
│ 🟢 list_priority_actions │ green wrench — call complete
└────────────────────────────────────────────┘
Amber + spinner = the tool is fetching live data right now. Green + wrench = the call returned. Click the pill to expand and see the parameters the Assistant passed and the result it received — useful when you want to verify the Assistant grounded its answer in real data rather than hallucinating.
If a tool call fails (auth error, missing record, network), you'll see a red pill with the error message — the Assistant will read the error and either retry with different parameters or explain what went wrong.
How it differs from the MCP server
The same tool surface, two transports:
| Surface | Where it lives | Transport | Auth |
|---|---|---|---|
| In-app GEO Assistant | Chat sidebar in /app/* | Direct Python service-call (in-process) | Cited session cookie |
| Cited MCP server | mcp.youcited.com | JSON-RPC over HTTPS | OAuth bearer token |
If you want to talk to Cited from outside the app — Claude Desktop, Cursor, a custom agent — use the MCP setup guide. If you're already in the app, the in-app Assistant is faster and doesn't need separate auth.
The two surfaces are kept in sync deliberately. Any tool you can call from Claude Desktop is callable from the in-app Assistant with the same parameter names and the same return shape.
Common Questions
How do I know what tools the Assistant has access to? Ask it: "What tools do you have?" — it'll list them. The list above is current as of writing; the registry is the source of truth.
The Assistant said it did something but I don't see the change. Click the green pill on the tool call. Check the parameters — sometimes the Assistant uses the wrong business ID or status filter. If the parameters look right but the change isn't reflected, refresh the page (the Assistant updates the backend immediately, but UI panels may have their own cache).
Can I make the Assistant more proactive (e.g., auto-mark actions complete)? No, by design. The Assistant is reactive — it does what you ask. Bulk operations like "mark every action complete that I've already done" should go through the Action Plan UI's bulk-edit, not chat.
Where do I report problems? Use the in-product feedback widget — include the conversation ID (visible in the URL) so we can pull the tool-call history.
Next Steps
- Connect Claude Desktop or another MCP client: Claude Desktop MCP Setup
- Understand what the validation tools surface: Validation Engine
- See the full API surface: API Overview