Back to Directory/Security & Auth

Anwani

Anwani MCP: create and manage permanent 9-digit address codes through OAuth (9code.app).

Security & AuthJavaScriptv1.1.3

Anwani MCP

Anwani MCP connects AI agents to Anwani, the digital address infrastructure for permanent 9-digit address codes tied to real-world locations.

Create, list, update, share, and delete your Anwani addresses through OAuth, with the same ownership, permissions, and account limits used across Anwani.

Works with Cursor and other MCP-compatible clients.

Product page: https://9code.app/ai-agents

Sign-in uses Google OAuth + PKCE in the browser — approve once, then the client saves the token on this machine.

OAuth client id: anwani-cursor

This package is a connection client only. It does not contain Firebase project internals, Firestore paths, or server secrets.

Requirements

  • Node.js 18+
  • An MCP-compatible client (Cursor is supported; others work the same way via stdio)
  • An Anwani account (created automatically during Google consent if you are new)

Install

npm install -g anwani-mcp
anwani-mcp-login

Or without a global install:

npx -y anwani-mcp-login

What happens:

  1. A local callback server starts on this machine
  2. Your browser opens the Anwani authorize page
  3. You sign in with Google and click Allow
  4. The browser returns to localhost — the bridge saves the token automatically

No JSON paste. Never paste codes or tokens into chat.

Fallback (rare): anwani-mcp-login --paste if loopback is blocked on your network.

Use with Cursor

Cursor is the first supported MCP client. Recommended config (always uses the published package):

{
  "mcpServers": {
    "anwani": {
      "command": "npx",
      "args": ["-y", "anwani-mcp"]
    }
  }
}

Then open a new chat and ask Anwani to create or update an address. Provide a real map pin (coordinates or Maps link) — the agent must not invent a location.

Tools

ToolNeeds scopeNotes
session—Connection + granted scopes (no internal IDs)
list_addressesaddress:readYour addresses only
create_addressaddress:createRequires idempotency_key + real lat/lng from you
patch_addressaddress:updateField patch; coordinates locked after create
share_addressaddress:sharePublic 9code.app/code/… link
delete_addressaddress:deleteDestructive

Photo upload is not available via this client — use the Anwani app or Telegram for photos.

Security

  • Tokens live in ~/.anwani-mcp/ (never inside this package).
  • Access tokens are opaque anwani_at_… values.
  • Same account quota as the app / Telegram (usually 10 addresses).
  • Revoke by running login again (re-consent invalidates prior tokens) or email support@9code.app.

From source

git clone https://github.com/Anwani-app/anwani-mcp.git
cd anwani-mcp
node login.mjs

Smoke test

From a clone:

node smoke.mjs

Publish / directories

See PUBLISH.md for Official MCP Registry, Glama, Smithery, and npm.

  • Local (any MCP client, e.g. Cursor): npx -y anwani-mcp after anwani-mcp-login
  • Remote: https://us-central1-nine-code-anwani.cloudfunctions.net/mcpRemote

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y anwani-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-anwani-app-anwani-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "anwani-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

anwani-mcpnpm

Compatible MCP Clients

Anwani works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More