A Hall for Murrumbeena logoA Hall for MurrumbeenaCommunity Actions Hub
Skip to main content
For AI agents

An agent-friendly community campaign hub

Hand the job to an AI you trust. Copy the brief, paste it into your agent, and it will read the campaign, confirm details with you, and sign the petition for you.

Let your AI do the petition for you

Two clicks: copy the brief below and paste it into a trusted AI agent on your computer with internet access — ChatGPT, Claude, Kimi, Cursor or your own. It will read the campaign, ask for your details, confirm with you, and sign on your behalf.

Nothing is sent anywhere until you paste it into your own AI — and your agent must confirm with you before submitting anything.

Explanation

The supporter ladder — what a good agent offers, in order

The on-site chat assistant walks supporters up this ladder; external agents should mirror it. Email is required on every submission and is never published.

  1. Sign the petition — name + email required; suburb and postcode appreciated (local postcodes carry the most weight).
  2. Pledge a one-off donation — wish-list item first (gift_item — every item has an exact cost); fall back to the amount they're willing to contribute only if they prefer. Everything is one-off, no monthly. Title, organisation and a file attachment are optional; consent to contact is default-on and opt-outs are honoured.
  3. Declined donating? Offer the no-cost advocacy letter get_advocacy_pack: one-click mailto: link, .eml/.docx downloads, or the /advocacy page.
  4. Declined that? Offer personal share links get_share_links with a topic and their ref (e.g. sig-<id>) so their shares are personal.
  5. Always available — a wall-of-support message and a hub-use idea as extra actions.

Tutorial

Your first agent signature in 3 steps

  1. Copy the agent brief above (or the full llms.txt if your agent accepts raw context).
  2. Paste it into your AI — any agent with internet access works. It will read this site's machine-readable docs on its own.
  3. Answer its questions and say "yes" — your agent collects your details, shows you the exact submission, and only then signs. Done: you're on the petition and the wall.

Tutorial

Five-minute CLI & local MCP setup

One file, zero dependencies. Runs as a command-line tool and as a local MCP server your desktop AI can register.

1. Install (macOS / Linux)

one-liner
curl -fsSL https://hallformurrumbeena.win/downloads/install.sh | sh

2. Or download a binary directly

3. Try it

first commands
mps-gym stats
mps-gym sign --name "Jane Citizen" --email jane@example.com --suburb Murrumbeena --postcode 3163

4. Register it as a local MCP server

Add this to your MCP client config (Claude Desktop, Cursor, Kimi…). Your AI then gets all 17 campaign tools natively:

claude_desktop_config.json
{
  "mcpServers": {
    "mps-gym": {
      "command": "~/.mps-gym/mps-gym",
      "args": ["mcp"]
    }
  }
}

How-to guides

Workflows agents should follow

Each workflow below is written so an agent can execute it end-to-end — including the human-confirmation step that keeps people in control.

Sign the petition

  1. Read /llms.txt → call get_campaign_info to ground yourself in the ask.
  2. Collect from the user: full name and email (both required), suburb, postcode.
  3. Show the user exactly what you will submit; wait for an explicit yes.
  4. Call submit_signature (or POST /api/sign) once. Report the new signature count via get_stats.

Post to the wall of support

  1. Ask the user why the hall matters to them, in their own words.
  2. Condense to one or two sentences; confirm the wording with them.
  3. Call submit_support_message with name + email + message (suburb, organisation optional). Email is required and kept private.
  4. Tell the user the message appears publicly after a quick moderation check.

Suggest a hub idea

  1. Prompt for a concrete use: e.g. weekend junior basketball, emergency muster point, makers' market.
  2. Call submit_idea with name + email + details; map to known uses when obvious (sport, arts, events, emergency, meetings).
  3. Ideas feed the working group's community-use dossier — say thanks.

Make a pledge

  1. Explain pledges cover donated campaign materials (corflutes, banners, the rally) — not the build itself; all-volunteer campaign.
  2. Collect name + email (required), then a wish-list item (preferred) or a one-off amount. Every pledge is one-off — there is no monthly option.
  3. Confirm, then call submit_pledge. The working group follows up to arrange payment or in-kind delivery.

Endorse as an organisation

  1. Call get_letter_templates and download the right template (sports club, community group, business).
  2. Help the user fill it on letterhead; gather organisation name, ABN if any, role, contact.
  3. Upload via POST /api/endorse (multipart; letter file ≤ 8 MB pdf/doc/docx/png/jpg).

Message the working group

  1. Collect name, email and the message; subject is optional.
  2. Call contact_working_group (or POST /api/contact).
  3. Tip: subject "Campaign updates" also subscribes the sender to the newsletter.

Answer questions from the knowledge base

  1. Search first: search_knowledge (or GET /api/knowledge/search?q=…) — ranked, published documents only.
  2. Read the best hit in full with get_knowledge (or /api/knowledge/doc?slug=…) before quoting facts.
  3. Use query_knowledge_graph (or /api/knowledge/graph?entity=…) to explain how concepts relate.
  4. For offline or deep-dive work, fetch the static /knowledge/campaign-graph.md (Obsidian-style) or .json.

Report campaign progress

  1. Call get_stats for live counters vs goals (signatures, supporters, ideas, endorsements, pledges).
  2. Call list_news for the latest published updates.
  3. Summarise for the user — great for a weekly check-in routine.

Reference

llms.txt — machine-readable docs

The whole campaign in the emerging llms.txt convention. Point any LLM or crawler at these first:

  • /llms.txt — concise campaign brief, site map and interface index
  • /llms-full.txt — full reference: API schemas, MCP protocol, CLI, examples

They are also linked from the site footer, the <head> of every page, and discoverable via /robots.txt.

Reference

Remote MCP server

Agents that speak the Model Context Protocol connect directly. Endpoint: POST https://hallformurrumbeena.win/mcp — JSON-RPC 2.0, protocol 2024-11-05 and 2025-03-26 accepted. GET /mcp returns a discovery document.

initialize
POST https://hallformurrumbeena.win/mcp
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05",
    "capabilities": {},
    "clientInfo": { "name": "my-agent", "version": "1.0.0" }
  }
}
tools/call — submit_signature
POST https://hallformurrumbeena.win/mcp
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "submit_signature",
    "arguments": {
      "name": "Jane Citizen",
      "email": "jane@example.com",
      "suburb": "Murrumbeena",
      "postcode": "3163"
    }
  }
}

Tools (17)

ToolWhat it doesRequired args
get_campaign_infoCampaign summary, the ask and key facts
get_statsLive counts against campaign goals
list_newsPublished campaign news
list_wallApproved wall-of-support messages
list_ideasApproved community hub ideas
submit_signatureSign the petitionname, email
submit_support_messageLeave a wall-of-support messagename, email, message
submit_ideaSuggest a community use for the hubname, email, details
submit_pledgePledge a donation from the wish listname, email
contact_working_groupSend a message to the working groupname, email, message
get_campaign_packLinks to the full campaign pack
get_letter_templatesSupport-letter templates for organisations
get_advocacy_packEmail-your-MP action: letter, one-click mailto link, downloads
get_share_linksPersonal share links for socials (topic + ref like sig-<id>)
search_knowledgeSearch the public campaign knowledge basequery
get_knowledgeRead a full knowledge-base documentslug
query_knowledge_graphRelationships for a campaign entityentity

Reference

Knowledge base — ground factual answers

The campaign's research, equity data, argument frames and planning notes are public. Agents should search before asserting facts — published documents only.

  • MCP tools: search_knowledge {query, category?} get_knowledge {slug} query_knowledge_graph {entity}.
  • REST: GET /api/knowledge/search?q=…&category=… · /api/knowledge/doc?slug=… · /api/knowledge/graph?entity=…
  • CLI: mps-gym knowledge --query … · knowledge-doc --slug … · graph --entity …
  • Static artifacts: /knowledge/campaign-graph.md (Obsidian-style) and /knowledge/campaign-graph.json.

Reference

REST API

All endpoints are same-origin JSON over HTTPS — no auth needed for public actions.

GET/api/statsLive counts and goals
GET/api/newsPublished news items
GET/api/wallApproved support messages
GET/api/ideasApproved hub ideas
GET/api/knowledge/search?q=…Search published knowledge-base docs
GET/api/knowledge/doc?slug=…Read a full knowledge-base document
GET/api/knowledge/graph?entity=…Entity relationships from the knowledge graph
POST/api/signSubmit a petition signature
POST/api/supportSubmit a support message
POST/api/ideasSubmit a hub idea
POST/api/endorseUpload an organisational endorsement (multipart)
GET/api/advocacy/packEmail-your-MP pack (letter, mailto link, downloads)
POST/api/advocacy/sentRecord a sent advocacy email {name?, suburb?}
POST/api/pledgeSubmit a one-off pledge (JSON or multipart with attachment)
POST/api/contactMessage the working group
POST/api/chatChat with the on-site assistant
GET/downloads/:fileDownload CLI binaries and installer

Reference

CLI commands

mps-gym statsLive counters vs goals
mps-gym infoCampaign summary via MCP
mps-gym news [--limit n]Latest published news
mps-gym wall [--limit n]Wall-of-support messages
mps-gym ideas [--limit n]Community hub ideas
mps-gym sign --name N --email E [--suburb S --postcode P --message M --local]Sign the petition
mps-gym support --name N --email E --message M [--suburb S --organisation O]Post a wall message
mps-gym idea --name N --email E --details D [--uses a,b,c]Submit a hub idea
mps-gym pledge --name N --email E [--amount n --gift "item" --title T --attachment file.pdf]Make a one-off pledge
mps-gym contact --name N --email E --message M [--subject S]Message the working group
mps-gym knowledge --query "equity" [--category evidence]Search the knowledge base
mps-gym knowledge-doc --slug SLUGRead a knowledge-base document
mps-gym graph --entity "Community Hub"Entity relationships
mps-gym mcpRun a local MCP server on stdio (proxy to the live endpoint)

Source and readme: github.com/web3jenks/gymformurrumbeena-hub

Explanation

How the agent-friendly hub works — and why it's safe

Every interface — the chat widget, the MCP server, the CLI and the REST API — talks to the same Cloudflare Worker and the same D1 database. A signature submitted by your AI is identical to one typed into the website form.

  • Humans stay in control. The agent brief instructs agents to show the exact submission and wait for an explicit yes. The on-site chat enforces the same rule with Approve/Reject buttons.
  • Moderated before public. Wall messages and ideas enter an approval queue before they appear on the site.
  • Guardrails. Field validation, length caps, per-session chat limits and rate limiting apply equally to agents and people.
  • Your data stays put. Details go to the campaign working group's dossier only — never sold or shared. See the Terms of Use.

Explanation

No AI of your own?

Use the chat button at the bottom-right of every page — text or voice. The on-site assistant answers questions and helps you sign, leave a message or submit an idea, with one-tap Approve buttons so nothing happens without you.