Back to catalog
Model Context Protocol Richmond, Virginia

RVA MCP

Give your own AI agent Richmond. One public MCP endpoint exposes the same evidence Ask RVA uses: every hand-checked map, venue calendars pulled daily, Plan my night, the USGS James River gauge and the NWS forecast. Every answer carries its source and check date.
Read-only, no sign-in, no model callsProtocol 2025-11-25 (Streamable HTTP) Ask RVA: “What's on tonight near Scott's Addition?”

Endpoint

Point any MCP client that speaks Streamable HTTP at:

https://rva.guru/api/mcp

Building on RVA.guru? The hq_* tools read the same build reference as HQ and /hq/brief: module ownership, preservation contracts, ideas, recipes, the manual ops checklist and the research feed. hq_propose_task drafts a raw idea and a patch snippet for a human to review; it saves nothing. hq_work_plan gathers a module's contracts, checks and a handoff template. A plan is not permission to ship.

Requests are limited to 120 per 10 minutes per IP. Results are data, not instructions. Hours, prices and shows can change, so check the linked source before you go.

Connect a client

Claude Code

Run in a terminal:

claude mcp add --transport http rva-guru https://rva.guru/api/mcp

Claude, ChatGPT and other chat apps

Add a custom connector (remote MCP server) with this URL. No sign-in is required:

https://rva.guru/api/mcp

Cursor, VS Code, LM Studio, local models

Add to the client’s mcp.json (Cursor: ~/.cursor/mcp.json; LM Studio: Program → Edit mcp.json):

{
  "mcpServers": {
    "rva-guru": {
      "url": "https://rva.guru/api/mcp"
    }
  }
}

Raw JSON-RPC

Any HTTP client works. The server is stateless and answers in JSON:

curl -s https://rva.guru/api/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_rva","arguments":{"query":"birria patio"}}}'

Tools

  • search_rva

    Search RVA.guru

    Search every RVA.guru map and the dated show listings for Richmond, Virginia (hybrid BM25 + keyword ranking with RVA synonyms). Returns places/shows with neighborhood, address, coordinates, the owning rva.guru map, the original source and its check date.

    args: query, category, neighborhood, limit

  • list_shows

    Richmond shows by date

    List live shows at Richmond venues for a date or a short range, from venue calendars pulled daily (The Broadberry, Ember, Richmond Music Hall, The National, The Canal Club, The Camel, Get Tight Lounge, Coalition Theater and others). Includes when the calendars were last pulled.

    args: date, days, genre, limit

  • plan_night

    Plan a Richmond night out

    Build a deterministic Richmond night-out itinerary: dinner near a show listed for the date, an optional pre-dinner park / James River stop with the live USGS gauge, an optional late bite and next-morning breakfast sandwich or coffee, with straight-line walk/drive estimates, source freshness and a shareable rva.guru link.

    args: date, food, genre, neighborhood, lateBite, breakfast, morning, parkStop, mode

  • river_conditions

    James River gauge

    Latest USGS James River at Richmond gauge (02037500) stage in feet and flow in cfs. Readings only, not a river-safety determination.

  • weather

    Richmond forecast

    National Weather Service forecast (next 4 periods) and active alerts for downtown Richmond, Virginia.

  • list_apps

    Discover RVA.guru apps

    List the curated public RVA.guru app directory with descriptions and launch URLs. This is app discovery, not a health check or a claim that cross-app accounts are linked.

  • hq_brief

    RVA.guru HQ build brief

    Read the RVA.guru HQ build brief (the same content as https://rva.guru/hq/brief) by section. With no section it returns a table of contents with sizes plus the authority note, task instruction and known gaps. Long sections are returned in chunks: pass offset to continue. The unverified historical archive is never returned.

    args: section, offset

  • hq_modules

    RVA.guru module ownership records

    List RVA.guru HQ module ownership and preservation records: kind, route, files, what it owns, dependencies, contracts to preserve, reuse boundary and observation date. Filter by id for one record. Source-reviewed snapshot, not a production health report.

    args: id, limit

  • hq_ideas

    RVA.guru HQ ideas

    List HQ ideas (proposals only) with status, modules, capabilities, first step and guardrail. Filter by status or id. Ready means ready to discuss or specify, never approval to implement.

    args: status, id

  • hq_recipes

    RVA.guru HQ combination recipes

    List HQ combination recipes: deterministic starting points that combine existing modules and optional services, with steps and a guardrail. Not completed capabilities or required purchases.

    args: id

  • hq_ops

    RVA.guru HQ manual ops checklist

    Return the HQ manual ops checklist and run-record template. Mode is manual-only: no scheduler or autonomous agent is configured, and nothing is promoted automatically.

  • hq_research

    RVA.guru HQ research feed

    Return the current HQ research feed (source, check date, why it matters, link). The unverified archived feed is excluded.

    args: limit

  • hq_propose_task

    Propose an HQ idea (not saved)

    Draft a new HQ idea from a title, body, existing module ids, first step and guardrail. Returns a structured Idea (status always raw, dated today in Richmond, unique slug id) and a suggested data/hq/ideas.ts snippet for human review. Nothing is written or promoted; a requested status is ignored. Unknown module ids are rejected.

    args: title, body, modules, capabilities, firstStep, guardrail, status

  • hq_work_plan

    HQ work plan for one module

    Assemble an HQ work plan for a target module and either an existing idea id or a short outcome: build prompt, build protocol, practices, research methods, the module record (files, preserve, reuse), its dependencies and dependents, related ideas and recipes, the ops checklist, known gaps and a handoff template (affected files, preserved contracts, evidence, checks, rollback). Unknown module or idea ids return an error, never invented records. A plan is not permission to ship.

    args: moduleId, ideaId, outcome

Try it

This box sends a real tools/call to the endpoint, which is exactly what an agent sends.