@three-ws/naming-mcp
v0.1.1
Published
Resolve Solana .sol names and check *.threews.sol agent-identity availability from any AI agent. sns_resolve maps a .sol name to its owner wallet, sns_reverse maps a wallet to its primary name, and threews_availability checks whether a three.ws agent hand
Downloads
325
Maintainers
Readme
A Model Context Protocol server that gives any AI assistant the three.ws naming / identity layer over stdio. Resolve a Solana
.solname to the wallet that owns it, reverse-lookup a wallet to its primary name, and check whether a*.threews.solagent handle is still free to claim.
This is the three.ws identity layer: where avatars give your agent a face and scenes give it a world, names give it an identity. A *.threews.sol subdomain showcases an agent profile at https://three.ws/u/<label> — claiming one gives your agent a name. No API key, no signer, no payment — every call hits the public /api/sns and /api/threews/subdomain endpoints, backed by Solana / Bonfida SNS (mainnet).
Note: minting a
*.threews.solsubdomain is the authenticated write path on the three.ws HTTP API. This MCP server exposes the public resolution + availability reads; once you find a free handle, claim it from your three.ws account.
Install
npm install @three-ws/naming-mcpOr run with npx (no install):
npx @three-ws/naming-mcpQuick start
Claude Code, one line:
claude mcp add naming -- npx -y @three-ws/naming-mcpClaude Desktop / Cursor (claude_desktop_config.json or mcp.json):
{
"mcpServers": {
"naming": {
"command": "npx",
"args": ["-y", "@three-ws/naming-mcp"]
}
}
}Inspect the surface with the MCP Inspector:
npx -y @modelcontextprotocol/inspector npx @three-ws/naming-mcpTools
| Tool | Type | What it does |
| ---------------------- | --------- | -------------------------------------------------------------------------------------------- |
| sns_resolve | read-only | Resolve a .sol name → the base58 wallet that owns it. |
| sns_reverse | read-only | Reverse-lookup a wallet → its primary .sol name. |
| threews_availability | read-only | Check whether <label>.threews.sol is free to claim as a three.ws agent identity. |
All three are live public reads against Solana mainnet. A .sol name with no owner (or a wallet with no favorite name) returns resolved: false — a routine, expected answer, not an error.
Input parameters
sns_resolve — name (required: a .sol label, subdomain, or full name with or without the trailing .sol).
sns_reverse — address (required: a base58 Solana public key).
threews_availability — label (required: the handle to check, e.g. nick for nick.threews.sol; 1–63 chars of [a-z0-9-]).
Example
// sns_resolve
> { "name": "bonfida" }
{
"ok": true,
"name": "bonfida.sol",
"address": "Fw1ETanDZafof7xEULsnq9UY6o71Tpds89tNwPkWLb1v",
"resolved": true
}
// threews_availability
> { "label": "test" }
{
"ok": true,
"full": "test.threews.sol",
"label": "test",
"available": true,
"owner": null,
"on_chain_check": "ok",
"showcase_url": null
}Requirements
- Node.js >= 20.
- Network access to
https://three.ws(or your ownTHREE_WS_BASE).
Environment variables
| Variable | Required | Default |
| --------------------- | -------- | ------------------ |
| THREE_WS_BASE | no | https://three.ws |
| THREE_WS_TIMEOUT_MS | no | 20000 |
Links
- Homepage: https://three.ws
- Changelog: https://three.ws/changelog
- Issues: https://github.com/nirholas/three.ws/issues
- License: Apache-2.0 — see LICENSE
