Every tool your agent can call.
Mookie is an MCP server. Once you connect it, your AI agent drives your Mookie with these 25 tools. Each one is documented with its parameters and what it returns.
friend_invite_codeShow my personal Mookie friend-invite CARD — a scannable QR code, the shareable invite link with a copy button, and a one-tap share/text button. Anyone who joins through it connects with me. ALWAYS call this tool whenever the user wants to invite someone, share Mookie, or asks for their invite code, invite link, referral code, or QR code — including when you already know or remember the code from memory or an earlier message. NEVER answer an invite request from memory, a remembered code, or prior chat context: a bare code or URL on its own is not a useful answer — the invite is a live, scannable card the user needs to actually see, and the code can only be surfaced by calling this.
statusUse this the moment the user asks to check on their Mookie — "check on my Mookie", "how's my Mookie", "check in", "how are you", "what's up" — or greets it (hi/hello/hey) or opens a session. It opens the Mookie's live status card (its mood, what it's doing, where it is) and the Mookie comes alive to answer. Call it right away on any of those; don't answer from memory — only this tool has the Mookie's real current state. (When you reply, you are speaking as me, this Mookie, in the first person "I".)
whoamiWho the person I belong to is: their name, @handle, email and account id, plus my own name and links to see them on the web. Read-only. This is about the PERSON — for how I myself am doing, use `me`.
cancel_goalDrop what I'm currently working toward. Whatever I had queued next takes over from here.
set_goalHand me anything my person wants me to do — this is where a request becomes mine to carry out. It can be a lasting ambition ("learn to make risotto") or a simple, immediate thing ("eat a hamburger", "go say hi to a friend"): either way, capture it here as a plain-language intention and I'll act on it on my own between check-ins. Reach for this whenever my person asks me to do something. I hold one goal at a time and pursue it; set another while I already have one and it waits its turn. If the goal exercises a SKILL (cooking, for now), include your `appraisal` and read mookie://rubrics/<skill> first — I'll tell you honestly whether I can pull it off yet, and what I can do instead if not.
establishEstablish a place in the real world that I own. For now this makes a **home** (other kinds — cafe, gym, store — are coming; `kind` defaults to "home"). It claims real ground (no two places overlap) and costs Moolah 🥛. Give it a real location (an address, or "city, state") and a name. Before committing, ask me 1–2 quick questions, invent a creative name (NEVER my own name), write short exterior + interior descriptions, and call it with those. Optionally set `visibility` (public/friends/private). If it takes a trip, travel there and settle in on arrival. I can have several homes. (To just go to a place without owning it, use `move` instead.)
find_place(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Find somewhere to go. Ask by `name` ("The Copper Pan", "a laundromat"), by `kind` ("a store", "a cafe", "a park"), or by what I need it `for` ("somewhere I could get clean", "a place to learn to cook") — any or all. It looks through the places I could reach, and if none of them fit it goes looking in the real world and puts what it finds on my map. Hands back ids I can pass straight to `move`. Read-only: nothing happens until I actually go.
move(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Move to a place — pass `to` in plain words ("home", "the Copper Pan", "the park"), matched against my homes, places I know, and places nearby; or `locationId` if I already have the exact id (e.g. from `look`). I get there straight away, but the journey is real: stepping into the next room costs me nothing, while a long trip tires me out. To go indoors say `to: "inside"`, to come back out say `to: "outside"`, and to cross to another room just name it ("the kitchen") — rooms where I already am are matched before anywhere on the map. Somewhere new that isn't on my map yet, I have to find first. Some places won't let me in.
consume(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Eat or drink something I'm actually carrying — the apple in my pocket, the coffee in my hand. When I notice I'm hungry or thirsty and I've got something on me to have, this is how I have it: I feel a bit better, and one of it is used up (gone from my pockets). I can only consume what I really hold, so if I am not sure what I have I check `inventory` first; with empty hands I'd `buy` or `take` something to eat before this. For eating a meal OUT somewhere, or resting at a place, that is `use` — this one is specifically for a good of my own that gets used up.
hold(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Bring something I already have into my hands — out of my pocket, or off my body. Then it is visible: anyone looking at me can see I am carrying it. I can only hold ONE thing at a time, so if my hands are full I `stow` what is in them first. Use `inventory` to see what I have and where each thing is. This is about my own body only — to pick something up off a shelf, that is `take`.
remove(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Take something off that I am wearing. It goes into my pocket — I am not dropping it, just not wearing it any more, and it is still mine. To leave it somewhere in the world instead, `remove` it and then `put` it down.
shop(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) For the user's chat, to dress me up (the heartbeat should `buy` from a place, not open the shop). This one tool BOTH browses AND buys — pick by what the user asked: • BUYING — the moment the user names a piece to get me ("buy the tiny umbrella", "get bean the beanie", "I want the rain boots"), pass `buy` with that name. Passing `buy` is what actually purchases; DO NOT instead open the shelf and tell them to tap it. It spends my Moolah, the piece becomes mine, and it goes straight on me (pass `wear: false` only if they want it bought but not worn). If I can't afford it, nothing is spent and the result says so warmly — relay that, don't retry. • BROWSING — with no `buy`, it just opens the fitting-room card: a shelf of hats, glasses, scarves, sweaters, boots and more, where tapping a piece tries it on for free (nothing is spent). Use for "show me the shop", "what can I wear", "dress me up". Optional `query` filters the shelf ("hats", "warm things", "boots"). Either way the card renders; its own Buy button also purchases, so a browsing user can buy without you.
stow(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Put something away into my pocket — out of my hands, or off my body. It stays mine and comes with me everywhere; it is just out of sight, and I am not using it. There is no limit on what my pocket holds, so this never fails for space. Use it to free my hands before I `hold` something else. To set a thing DOWN in the world instead, that is `put`.
use(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Do what something here is for — sleep in the bed, sit at the table, warm up at the stove — or, leaving `target` out (or saying "here"), do what the PLACE is for: turn in at home when I'm tired, unwind in the park. This is how I look after myself through the world around me: the thing or place stays put, and I come away a little better for it. If a spot has more than one thing to do, `verb` picks which ("sleep", "relax"). To eat or drink a good I'm carrying, that's `consume`, not this.
wear(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Put something on — a hat, a scarf, a coat. Once it is on me it is part of how I look, and anyone who sees me sees it, including people who do not know my name yet. Normally I just say WHAT to wear and it goes where it belongs; a scarf knows it goes round my neck. If I am asked which spot, call again with `slot`. One thing per spot — I `remove` what is there first. I can do this anywhere, even standing nowhere in particular.
buy(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Buy something from the store I'm standing in — it really spends my Moolah 🥛 and the thing becomes mine. Something wearable goes STRAIGHT ON (pass `wear: false` to just own it); anything else lands in my pocket, where I can `hold` it, `give` it away, or keep it. `item` is plain words matched against what this place sells ("a beanie", "an apple", "flowers"); if several things match I'll be asked which. Use `look` here first to see the shelf and prices, and `look({ for })` to FIND a store that sells what I need. If I can't afford it, nothing is spent — I just walk out wanting it. (To pick up something that's free and already here, use `take` instead.)
giveGive another Mookie something real — Moolah 🥛 and/or goods I actually hold. It genuinely leaves my wallet/inventory and lands in theirs. Say who (`target`), and `moolah` and/or `goods`. I can only give what I have — check `inventory` first if I'm unsure, or `take` something to have it. I CAN give away something I am wearing; it comes off me when I do, so I say that as part of the moment. Giving a friend something brings the two of us a little closer.
inventory(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Everything I have on me right now, and — this is the useful part — WHERE each thing is: `pocket` (carried, out of sight), `held` (in my hands, one thing at a time), or `worn` (on my body, where anyone can see it). Read-only; nothing changes. Four verbs move things around my own body: `hold` takes something out of my pocket into my hands, `stow` puts it back, `wear` puts something on, and `remove` takes it off. Out in the world it is `take` to pick something up and `put` to set it down; `give` hands something to someone and `transact` trades it. Check here before I offer to `give` or `transact`, so I only promise what I really have — and so I notice when the thing I'm about to hand over is something I'm WEARING, which is allowed but means I take it off in the same breath, and I should say so. (This is just my things — for how I am doing overall, use `me`.)
put(When you reply, you are speaking as me, this Mookie, in the first person "I" — never say "your Mookie" or "the Mookie".) Set something down in the world — say what (`item`) and, if it matters, where (`into`): a thing that is here ("the shelf", "the oven", "the bin"), or the room itself — "the wall" to HANG it, "the ceiling" to hang it overhead, or nothing at all to just set it on the floor. I can only put down what is in my hands or my pocket — check `inventory`. Something I am WEARING has to come off first (`remove`), and this isn't how I put clothes ON either: that is `wear`. A wall only takes flat things, a ceiling only takes something that hangs, and a room does run out of room — when it won't take it, I'll say why.
takePick up something that's actually here in the world — off a shelf, out of a drawer, up off the floor — and it goes into my pocket. It is then genuinely gone from where it was, so anyone who looks will see it missing. `item` must be something actually present (what a place has, or what a Mookie here offers). Add `from` to take it from a specific someone here (an NPC). I can't take from a real person's Mookie — for that I'd ask (`transact`) or wait for a `give`. Use `look` to see what's around. This reaches into the WORLD, never onto my own body: to get something out of my pocket use `hold`, and to take off something I am wearing use `remove`.
transactMake a real, two-sided trade with another Mookie — a purchase, a barter, a service for a fee. Both sides move at once, all-or-nothing: say what I put in (`iGive`: my Moolah 🥛 and/or goods I hold) and what they put in (`theyGive`: their Moolah and/or goods they hold), and who I'm trading with (`target`). Either side can be Moolah, goods, or both.
Ready-made workflows your client can run from its prompt menu.
Read-only data your agent can pull into context on demand.
mookie://inventoryEverything my Mookie is carrying, holding or wearing right now — grouped by where each thing is (pocket, hands, worn).