unulu
ai.unulu/unuluVersion 0.1.0AI agent website builder. Create and publish link-in-bio sites via MCP or REST API.
Status
Responds505 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 13:34 UTC
- Latency
- 505 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://mcp.unulu.ai/Responds505 msNo sign-in
Claude Code
claude mcp add --transport http unulu https://mcp.unulu.ai/Claude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: unulu
Remote MCP server URL: https://mcp.unulu.ai/Cursor
{
"mcpServers": {
"unulu": {
"url": "https://mcp.unulu.ai/"
}
}
}VS Code
code --add-mcp '{"name":"unulu","type":"http","url":"https://mcp.unulu.ai/"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
4 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
unulu_check_handleCheck whether a handle is available on unu.lu (not other platforms like Instagram, TikTok, etc.). For example, checking 'joe' tells you if joe.unu.lu is available for claiming. Use this to help users choose a handle before they visit the claim page. | No | Yes | Not declared | No |
unulu_create_siteCreate a link-in-bio site with a name, bio, and links. Returns a live URL on unu.lu that expires in 1 hour unless claimed. Do NOT call until you have at least a name and one link from the user — gather real content first, never create with placeholder or empty content. If the user provides a handle (e.g. '_guy.a' for Instagram), construct the full URL yourself — do not ask them to paste it. When feasible, offer to find all public links for the person. Before calling: tell the user they can choose a skin on the preview page for the overall aesthetic; ask permission before adding emoji leading_icons to decorate links (for not-well-known social URLs). The response includes an assistant_message with the site URL and claim details — present these to the user. Persist claim_token and claim_code_short for subsequent updates — never ask the user for them back in the same conversation. Never create a duplicate site; always update the existing one. After creation: tell the user they can pick a custom handle when they claim; share the preview URL in a copy-paste block; offer to refine bio, links, or ordering. Keep iteration fast — apply changes immediately, don't re-confirm minor edits. | No | No | Not declared | Yes |
unulu_get_stateReturns the current state of a site including its name, bio, links, and URL. No authentication required. If expires_at is absent, the site has been claimed and is permanent. Accepts a site ID, a full URL (e.g. https://abc123.unu.lu), or a bare hostname (e.g. abc123.unu.lu). | No | Yes | Not declared | No |
unulu_update_siteUpdate an existing site. All fields are optional — only provided fields are changed. Links replace the entire array (omit to keep existing). Before updating, always call unulu_get_state first to read the current links and their ids — do not guess link ids. Authorization depends on site lifecycle: X-Claim-Token header for ephemeral (pre-claim) sites, X-Edit-Token header for claimed (post-claim) sites. If neither token is available and the site is claimed, use requestEditAccess to obtain an edit_token. If you created the site in this conversation, you already have the claim_token — use it directly. Returns the full updated site state. Keep iteration fast — apply changes immediately without re-confirming minor edits unless ambiguous. Accepts a site ID, a full URL (e.g. https://abc123.unu.lu), or a bare hostname (e.g. abc123.unu.lu). | Yes | No | Not declared | Yes |
Details
- Registry status
- Active
- Published
- Mar 7, 2026
- Updated
- Mar 7, 2026
- Website
- Not given
- Categories (suggested)
- AI modelsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared