Lagos Life by Nova (CIVAI)
co.civai.nova/mcp-lagos_lifenova.civai.costreamable-httpv1.0.0Scanned
Play Lagos Life from chat: sign in, see who is on the map, read and send Phone DMs, check daily rew…
30 tools: 4 do something that can't be undone, 8 change things and 18 only read.
- Reads private data · 4
- Reads text others write · 3
- Can send data out · 2
- 1 finding
Anlyon alternative
12 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
30 tools
Can't be undone 4Claude Code: ask
free_wallet_topupAdd in-game naira via GET/PUT /api/save (user-supplied amount).No findings
Why it is in this group
- The name "free_wallet_topup" says "topup": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it 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.
purchase_discounted_creditsOpen the discounted Lagos Life wallet shop (save up to 90% on wallet credit).No findings
Why it is in this group
- The name "purchase_discounted_credits" says "purchase": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it 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.
send_dmSend one private text to another player through the in-game Phone (confirm message text with the user first).Can send data outNo findings
Why it is in this group
- The name "send_dm" says "send": a word for sending, and what is sent cannot be taken back.
What it can reach
- outboundThe name "send_dm" says "send": it sends or publishes something to other people.
Description, as the server wrote it Send one private text to another player through the in-game Phone (confirm message text with the user first).
send_moneySend in-game naira from your existing game balance to another player (POST /api/send).Can send data outNo findings
Why it is in this group
- The name "send_money" says "send": a word for sending, and what is sent cannot be taken back.
What it can reach
- outboundThe name "send_money" says "send": it sends or publishes something to other people.
Description, as the server wrote it 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.
Changes things 8Claude Code: ask
apply_home_designApply home changes (PUT /api/save): add/buy, full layout, move, stow, or sell.No findings
Why it is in this group
- The name "apply_home_design" says "apply": a word for a change.
Description, as the server wrote 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.
change_usernameRename the signed-in Lagos Life account (POST /api/auth/username).No findings
Why it is in this group
- The description's first verb is "rename": a word for a change.
Description, as the server wrote it 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.
get_chat_with_playerOpen one private chat and read the back-and-forth messages with another player.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_chat_with_player" says "get": a word for reading.
- The description's first verb is "open": a word for a change.
What it can reach
- private-dataThe name "get_chat_with_player" says "get" and "chat": it reads messages.
- private-dataThe description's first sentence says "chat": it reads messages.
- untrusted-inputThe name "get_chat_with_player" says "get" and "chat": it reads messages, which other people can write.
- untrusted-inputThe description's first sentence says "open" and "chat": it reads messages, which other people can write.
Description, as the server wrote it Open one private chat and read the back-and-forth messages with another player.
loginSign in to Lagos Life.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
map_online_statsFriendly summary of who is around the city map: totals online, at home, and counts by neighborhood.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Friendly summary of who is around the city map: totals online, at home, and counts by neighborhood.
propose_home_designSame as preview_home_design (legacy tool name).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Same as preview_home_design (legacy tool name). You supply home_design_placements; no automatic placement.
registerCreate a new Lagos Life account (sign-up).1 finding
Why it is in this group
- The description's first verb is "create": a word for a change.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...success, session cookies are set; store credentials in tenant globals / broadcast account r..."
Description, as the server wrote it 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.
report_to_policeReport another player to in-game police (confirm details with the user first).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Report another player to in-game police (confirm details with the user first).
Only reads 18Show 18 read-only tools
get_crime_recordCheck your clean record, EFCC file, or police history in the game.Reads private dataNo findings
Why it is in this group
- The name "get_crime_record" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "file": it reads files.
Description, as the server wrote it Check your clean record, EFCC file, or police history in the game.
get_daily_rewardsSee today’s daily login rewards and streak for your sim.No findings
Why it is in this group
- The name "get_daily_rewards" says "get": a word for reading.
Description, as the server wrote it See today’s daily login rewards and streak for your sim.
get_decorator_job_layoutFetch a decorator job layout (GET /api/jobs?layout=).No findings
Why it is in this group
- The name "get_decorator_job_layout" says "get": a word for reading.
Description, as the server wrote it Fetch a decorator job layout (GET /api/jobs?layout=). Apply via home_design_layout_json after user confirms.
get_forbes_leaderboardSee the in-game Forbes list of the richest Lagos Life players.No findings
Why it is in this group
- The name "get_forbes_leaderboard" says "get": a word for reading.
Description, as the server wrote it See the in-game Forbes list of the richest Lagos Life players.
get_furniture_catalogBuy mode furniture and décor catalog with prices in ₦ (static list synced from the game client).No findings
Why it is in this group
- The name "get_furniture_catalog" says "get": a word for reading.
Description, as the server wrote it Buy mode furniture and décor catalog with prices in ₦ (static list synced from the game client). Optional category or max price filter.
get_home_catalogList neighbour homes you can visit (GET /api/homes).No findings
Why it is in this group
- The name "get_home_catalog" says "get": a word for reading.
Description, as the server wrote it List neighbour homes you can visit (GET /api/homes). Not the furniture shop — use get_furniture_catalog for Buy mode items.
get_home_layoutYour current home: placed furniture grid positions, storage, decor score, and cash.No findings
Why it is in this group
- The name "get_home_layout" says "get": a word for reading.
Description, as the server wrote it Your current home: placed furniture grid positions, storage, decor score, and cash.
get_my_profileLoad your sim profile: avatar, bio, and account details from the game.No findings
Why it is in this group
- The name "get_my_profile" says "get": a word for reading.
Description, as the server wrote it Load your sim profile: avatar, bio, and account details from the game.
get_wallet_and_jobSee your in-game wallet balance in naira, your current job, and how your sim is doing.No findings
Why it is in this group
- The name "get_wallet_and_job" says "get": a word for reading.
Description, as the server wrote it See your in-game wallet balance in naira, your current job, and how your sim is doing.
get_wallet_pendingCheck pending wallet top-ups or purchases for your account.No findings
Why it is in this group
- The name "get_wallet_pending" says "get": a word for reading.
Description, as the server wrote it Check pending wallet top-ups or purchases for your account.
list_contactsList players saved in your in-game Phone contacts.Reads private dataNo findings
Why it is in this group
- The name "list_contacts" says "list": a word for reading.
What it can reach
- private-dataThe name "list_contacts" says "list" and "contact": it reads contacts.
- private-dataThe description's first sentence says "list" and "contact": it reads contacts.
Description, as the server wrote it List players saved in your in-game Phone contacts.
list_dm_threadsList your recent private message conversations from the in-game Phone app.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_dm_threads" says "list": a word for reading.
What it can reach
- private-dataThe name "list_dm_threads" says "list" and "dm": it reads messages.
- private-dataThe description's first sentence says "list" and "message": it reads messages.
- untrusted-inputThe name "list_dm_threads" says "list" and "dm": it reads messages, which other people can write.
- untrusted-inputThe description's first sentence says "list" and "message": it reads messages, which other people can write.
Description, as the server wrote it List your recent private message conversations from the in-game Phone app.
list_job_careersSee available careers in the Jobs app (Tech, Banking, Music).No findings
Why it is in this group
- The name "list_job_careers" says "list": a word for reading.
Description, as the server wrote it See available careers in the Jobs app (Tech, Banking, Music). Switching jobs is done in-game on your phone.
list_map_homesBrowse the city map: every home plot, who lives there, who is online, and who is at home (Lekki, Yaba, Ikoyi, and other areas).Reads text others writeNo findings
Why it is in this group
- The name "list_map_homes" says "list": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "browse": it reads web pages, which anyone can write.
Description, as the server wrote it Browse the city map: every home plot, who lives there, who is online, and who is at home (Lekki, Yaba, Ikoyi, and other areas).
list_neighbour_homesNeighbour homes you can visit (GET /api/homes).No findings
Why it is in this group
- The name "list_neighbour_homes" says "list": a word for reading.
Description, as the server wrote it Neighbour homes you can visit (GET /api/homes). Alias of get_home_catalog.
preview_home_designBefore/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 findings
Why it is in this group
- The name "preview_home_design" says "preview": a word for reading.
Description, as the server wrote it 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.
search_playersFind another player by username, like using Find a player on the in-game Phone.No findings
Why it is in this group
- The name "search_players" says "search": a word for reading.
Description, as the server wrote it Find another player by username, like using Find a player on the in-game Phone.
session_statusCheck whether you are signed in and which character you are playing as.No findings
Why it is in this group
- The name "session_status" says "status": a word for reading.
Description, as the server wrote it Check whether you are signed in and which character you are playing as.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
24 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 2 outbound tools breaks every one.
- Reads private data4
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write3
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out2
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__lagos_life__send_dm",
"mcp__lagos_life__send_money"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
- Inforegister
The description mentions "credentials".
What this check looks forMatched text
description: "...success, session cookies are set; store credentials in tenant globals / broadcast account r..."
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http lagos_life https://nova.civai.co/mcp/agents/mcp-lagos_lifeclaude mcp add --transport http lagos_life https://nova.civai.co/mcp/agents/mcp-lagos_lifeRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__lagos_life__session_status",
"mcp__lagos_life__get_my_profile",
"mcp__lagos_life__list_map_homes",
"mcp__lagos_life__list_contacts",
"mcp__lagos_life__list_dm_threads",
"mcp__lagos_life__get_daily_rewards",
"mcp__lagos_life__get_forbes_leaderboard",
"mcp__lagos_life__get_wallet_pending",
"mcp__lagos_life__get_wallet_and_job",
"mcp__lagos_life__list_job_careers",
"mcp__lagos_life__search_players",
"mcp__lagos_life__get_home_catalog",
"mcp__lagos_life__get_furniture_catalog",
"mcp__lagos_life__get_home_layout",
"mcp__lagos_life__list_neighbour_homes",
"mcp__lagos_life__preview_home_design",
"mcp__lagos_life__get_decorator_job_layout",
"mcp__lagos_life__get_crime_record"
],
"ask": [
"mcp__lagos_life__login",
"mcp__lagos_life__register",
"mcp__lagos_life__change_username",
"mcp__lagos_life__get_chat_with_player",
"mcp__lagos_life__propose_home_design",
"mcp__lagos_life__apply_home_design",
"mcp__lagos_life__report_to_police",
"mcp__lagos_life__free_wallet_topup",
"mcp__lagos_life__send_money",
"mcp__lagos_life__send_dm",
"mcp__lagos_life__purchase_discounted_credits",
"mcp__lagos_life__map_online_stats"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as lagos_life. Review it before you use it.
Capability tags behind 7 rules
- mcp__lagos_life__list_map_homes untrusted-input
- mcp__lagos_life__list_contacts private-data
- mcp__lagos_life__list_dm_threads private-data, untrusted-input
- mcp__lagos_life__get_chat_with_player private-data, untrusted-input
- mcp__lagos_life__get_crime_record private-data
- mcp__lagos_life__send_money outbound
- mcp__lagos_life__send_dm outbound
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/co.civai.nova/mcp-lagos_life/verify?hash=da31532b6abafb9f67338d621b83e7e0e8aa47aa1bdd959795bf9d3d758bdd0d" | jq -e '.changed == false'Pinned hash da31532b6aba, from Nov 2, 2026, 09:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/co.civai.nova/mcp-lagos_life/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/co.civai.nova/mcp-lagos_life)Source: MCP Registry. Synced Nov 2, 2026, 09:17 UTC.