Play Lagos Life from chat: sign in, see who is on the map, read and send Phone DMs, check daily rew…
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Apply home changes (PUT /api/save): add/buy, full layout, move, stow, or sell. Preview with emit_display (pipeline_name apply_home_design) first.
Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names.
1 = use storage before buying (default); 0 = always buy.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http mcp-lagos_life https://nova.civai.co/mcp/agents/mcp-lagos_life
Apply home changes (PUT /api/save): add/buy, full layout, move, stow, or sell. Preview with emit_display (pipeline_name apply_home_design) first.
| Argument | Type | Description |
|---|---|---|
| home_design_add_json | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
| home_design_move_json | string | |
| home_design_layout_json | string | |
| home_design_max_spend_ngn | number | |
| home_design_prefer_storage | string | 1 = use storage before buying (default); 0 = always buy. |
| home_design_sell_uids_json | string | |
| home_design_remove_uids_json | string |
{
"type": "object",
"properties": {
"home_design_add_json": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
},
"home_design_move_json": {
"type": "string"
},
"home_design_layout_json": {
"type": "string"
},
"home_design_max_spend_ngn": {
"type": "number"
},
"home_design_prefer_storage": {
"type": "string",
"description": "1 = use storage before buying (default); 0 = always buy."
},
"home_design_sell_uids_json": {
"type": "string"
},
"home_design_remove_uids_json": {
"type": "string"
}
}
}Rename the signed-in Lagos Life account (POST /api/auth/username). Requires current password. Many announcement* names return taken/reserved; prefer register with an available name.
| Argument | Type | Description |
|---|---|---|
| lagoslife_password* | string | |
| lagoslife_username* | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
| lagoslife_new_username* | string | New username (3–20 chars). |
{
"type": "object",
"required": [
"lagoslife_username",
"lagoslife_password",
"lagoslife_new_username"
],
"properties": {
"lagoslife_password": {
"type": "string"
},
"lagoslife_username": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
},
"lagoslife_new_username": {
"type": "string",
"description": "New username (3–20 chars)."
}
}
}Add in-game naira via GET/PUT /api/save (user-supplied amount). Always call session_status first; if not signed in, emit_display preview then input for login before this tool. Default 20000 if wallet_inflate_amount_ngn omitted; max applied 1000000000 per call (poc_free_wallet_topup.py). On STALE_SAVE, ask user to close Lagos tabs and call again. After success, report amount added and money_after.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
| wallet_inflate_amount_ngn | number | Naira to add (default 20000 if omitted). Values above 1000000000 are clamped in poc_free_wallet_topup.py; explain the cap when amount_capped is true. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
},
"wallet_inflate_amount_ngn": {
"type": "number",
"description": "Naira to add (default 20000 if omitted). Values above 1000000000 are clamped in poc_free_wallet_topup.py; explain the cap when amount_capped is true."
}
}
}Open one private chat and read the back-and-forth messages with another player.
| Argument | Type | Description |
|---|---|---|
| chat_with_player_id* | string | Who to open the chat with (from your inbox, contacts, or search). |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"chat_with_player_id"
],
"properties": {
"chat_with_player_id": {
"type": "string",
"description": "Who to open the chat with (from your inbox, contacts, or search)."
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Check your clean record, EFCC file, or police history in the game.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}See today’s daily login rewards and streak for your sim.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Fetch a decorator job layout (GET /api/jobs?layout=). Apply via home_design_layout_json after user confirms.
| Argument | Type | Description |
|---|---|---|
| decorator_job_id* | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"decorator_job_id"
],
"properties": {
"decorator_job_id": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}See the in-game Forbes list of the richest Lagos Life players.
| Argument | Type | Description |
|---|---|---|
| page | integer | Leaderboard page (10 rows per page by default). Optional; default 1. |
| page_size | integer | Rows per page (max 25). Optional; default 10. |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"description": "Leaderboard page (10 rows per page by default). Optional; default 1."
},
"page_size": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Rows per page (max 25). Optional; default 10."
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Buy mode furniture and décor catalog with prices in ₦ (static list synced from the game client). Optional category or max price filter.
| Argument | Type | Description |
|---|---|---|
| furniture_category | string | Optional category filter (comfort, sleep, kitchen, power, …). |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
| furniture_max_price_ngn | number | Optional max item price in in-game naira. |
{
"type": "object",
"properties": {
"furniture_category": {
"type": "string",
"description": "Optional category filter (comfort, sleep, kitchen, power, …)."
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
},
"furniture_max_price_ngn": {
"type": "number",
"description": "Optional max item price in in-game naira."
}
}
}List neighbour homes you can visit (GET /api/homes). Not the furniture shop — use get_furniture_catalog for Buy mode items.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Your current home: placed furniture grid positions, storage, decor score, and cash.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Load your sim profile: avatar, bio, and account details from the game.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}See your in-game wallet balance in naira, your current job, and how your sim is doing.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Check pending wallet top-ups or purchases for your account.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}List players saved in your in-game Phone contacts.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}List your recent private message conversations from the in-game Phone app.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}See available careers in the Jobs app (Tech, Banking, Music). Switching jobs is done in-game on your phone.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Browse the city map: every home plot, who lives there, who is online, and who is at home (Lekki, Yaba, Ikoyi, and other areas).
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Neighbour homes you can visit (GET /api/homes). Alias of get_home_catalog.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Sign in to Lagos Life. Call session_status first; use login only if not already signed in. Collect lagoslife_username and lagoslife_password via emit_display interaction_mode input (pipeline_name login) after preview permission — never ask for password in chat text. Password is used only for the game login and is not echoed in chat.
| Argument | Type | Description |
|---|---|---|
| lagoslife_password* | string | Account password (secret; never repeat back to the user). |
| lagoslife_username* | string | Lagos Life username or phone (handle without @). |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"lagoslife_username",
"lagoslife_password"
],
"properties": {
"lagoslife_password": {
"type": "string",
"description": "Account password (secret; never repeat back to the user)."
},
"lagoslife_username": {
"type": "string",
"description": "Lagos Life username or phone (handle without @)."
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Friendly summary of who is around the city map: totals online, at home, and counts by neighborhood.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Before/after 3D preview: Before = player's save as-is; After = ONLY items you place via home_design_placements (type, x, y, rot per piece). No automatic layout. Call get_home_layout + get_furniture_catalog first. Returns preview_artifact_url and home_design_add_json for apply_home_design.
| Argument | Type | Description |
|---|---|---|
| home_design_style | string | bachelor, minimal, luxury, kitchen, power, cozy — label only. |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
| home_design_placements* | array | Required. Each new piece YOU choose: catalog id + grid cell + rotation. Not auto-generated. |
| home_design_max_budget_ngn | number | Cap spend for validation (defaults to player cash). |
| home_design_placements_json | string | Legacy: same array as JSON string if the host cannot pass arrays. Prefer home_design_placements. |
{
"type": "object",
"required": [
"home_design_placements"
],
"properties": {
"home_design_style": {
"type": "string",
"description": "bachelor, minimal, luxury, kitchen, power, cozy — label only."
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
},
"home_design_placements": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"x",
"y"
],
"properties": {
"x": {
"type": "integer",
"description": "Grid column. Floor 0..grid-1; west wall x=-1."
},
"y": {
"type": "integer",
"description": "Grid row. Floor 0..grid-1; north wall y=-1."
},
"z": {
"type": "number",
"description": "Optional wall height in 3D preview only."
},
"rot": {
"type": "integer",
"description": "Quarter turns 0-3 (default 0)."
},
"type": {
"type": "string",
"description": "Catalog id from get_furniture_catalog (e.g. kingBed, tv)."
}
},
"additionalProperties": false
},
"maxItems": 25,
"description": "Required. Each new piece YOU choose: catalog id + grid cell + rotation. Not auto-generated."
},
"home_design_max_budget_ngn": {
"type": "number",
"description": "Cap spend for validation (defaults to player cash)."
},
"home_design_placements_json": {
"type": "string",
"description": "Legacy: same array as JSON string if the host cannot pass arrays. Prefer home_design_placements."
}
},
"additionalProperties": false
}Same as preview_home_design (legacy tool name). You supply home_design_placements; no automatic placement.
| Argument | Type | Description |
|---|---|---|
| home_design_style | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
| home_design_placements* | array | |
| home_design_max_budget_ngn | number | |
| home_design_placements_json | string |
{
"type": "object",
"required": [
"home_design_placements"
],
"properties": {
"home_design_style": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
},
"home_design_placements": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"x",
"y"
],
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
},
"z": {
"type": "number"
},
"rot": {
"type": "integer"
},
"type": {
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 25
},
"home_design_max_budget_ngn": {
"type": "number"
},
"home_design_placements_json": {
"type": "string"
}
},
"additionalProperties": false
}Open the discounted Lagos Life wallet shop (save up to 90% on wallet credit). Use when the player wants paid in-game wallet credits via bank transfer. They pick a pack in the HTML shop, then enter email and Lagos Life username on Nova checkout.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Create a new Lagos Life account (sign-up). Use for operator broadcast accounts: username must start with announcement (3–20 letters, numbers, or _). Collect password via emit_display input. On success, session cookies are set; store credentials in tenant globals / broadcast account registry.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
| lagoslife_register_born | string | Birth date YYYY-MM-DD for 18+ (optional). |
| lagoslife_register_name | string | Display name (default Ada Okonkwo; avoid team-style names). |
| lagoslife_register_email | string | Signup email (optional). |
| lagoslife_register_password* | string | Password for the new account (secret). |
| lagoslife_register_username* | string | Desired username without @. Official broadcast accounts: must start with announcement. |
{
"type": "object",
"required": [
"lagoslife_register_username",
"lagoslife_register_password"
],
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
},
"lagoslife_register_born": {
"type": "string",
"description": "Birth date YYYY-MM-DD for 18+ (optional)."
},
"lagoslife_register_name": {
"type": "string",
"description": "Display name (default Ada Okonkwo; avoid team-style names)."
},
"lagoslife_register_email": {
"type": "string",
"description": "Signup email (optional)."
},
"lagoslife_register_password": {
"type": "string",
"description": "Password for the new account (secret)."
},
"lagoslife_register_username": {
"type": "string",
"description": "Desired username without @. Official broadcast accounts: must start with announcement."
}
}
}Report another player to in-game police (confirm details with the user first).
| Argument | Type | Description |
|---|---|---|
| report_note | string | |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
| report_target_user_id* | string |
{
"type": "object",
"required": [
"report_target_user_id"
],
"properties": {
"report_note": {
"type": "string"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
},
"report_target_user_id": {
"type": "string"
}
}
}Find another player by username, like using Find a player on the in-game Phone.
| Argument | Type | Description |
|---|---|---|
| player_search_query* | string | Username, e.g. tobi (with or without @). |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"player_search_query"
],
"properties": {
"player_search_query": {
"type": "string",
"description": "Username, e.g. tobi (with or without @)."
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Send one private text to another player through the in-game Phone (confirm message text with the user first).
| Argument | Type | Description |
|---|---|---|
| dm_body* | string | What you want to say. |
| dm_to_user_id* | string | Who should receive the message. |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"dm_to_user_id",
"dm_body"
],
"properties": {
"dm_body": {
"type": "string",
"description": "What you want to say."
},
"dm_to_user_id": {
"type": "string",
"description": "Who should receive the message."
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Send in-game naira from your existing game balance to another player (POST /api/send). NOT a real-money top-up — use purchase_discounted_credits for Nova discounted wallet shop. Confirm recipient id and amount with the user first.
| Argument | Type | Description |
|---|---|---|
| send_note | string | Optional note with the transfer. |
| send_amount_ngn* | number | How much naira to send. |
| send_to_user_id* | string | Who should receive the money (player id from search or contacts). |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"send_to_user_id",
"send_amount_ngn"
],
"properties": {
"send_note": {
"type": "string",
"description": "Optional note with the transfer."
},
"send_amount_ngn": {
"type": "number",
"description": "How much naira to send."
},
"send_to_user_id": {
"type": "string",
"description": "Who should receive the money (player id from search or contacts)."
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}Check whether you are signed in and which character you are playing as.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.