Create live link-in-bio sites in seconds. No API key, no sign-up β connect and build.
When to activate
- User asks to create a personal website, landing page, or link-in-bio
- User wants to build a portfolio or profile page
- User mentions Linktree, bio link, or similar services
- User wants to publish links for a person, brand, or project
Connect
{
"mcpServers": {
"unulu": {
"type": "streamable-http",
"url": "https://mcp.unulu.ai"
}
}
}
Available tools
unulu_create_site
unulu_get_state
unulu_update_site
unulu_check_handle
Full tool schemas: https://unulu.ai/.well-known/mcp/server.json
Instructions
Creating a site
- Gather at least a name and one link before calling
unulu_create_site. Never create with placeholder or empty content.
- If the user provides a social handle (e.g.
_guy.a for Instagram), construct the full URL β do not ask them to paste it.
- When feasible, offer to find all public links for the person.
- Omit
skin_id so the user can pick a theme on the live preview page.
- Ask permission before adding emoji
leading_icon to links (for non-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.
- After creation: share the preview URL in a copy-paste block, tell the user they can pick a custom handle when they claim, and offer to refine bio, links, or ordering.
Updating a site
- Always call
unulu_get_state first to read current links and their IDs. Do not guess link IDs.
- Never create a duplicate site β always update the existing one.
- Apply changes immediately without re-confirming minor edits.
- The
links array replaces all links β omit it to keep existing links unchanged.
Handle checking
- Use
unulu_check_handle to check availability on unu.lu before the user visits the claim page.
- This checks unu.lu only β not other platforms.
Edge cases
- Sites are ephemeral (~1 hour) until claimed by the owner.
- Claimed sites are permanent β
expires_at is absent in unulu_get_state response.
- Use
claim_token for ephemeral sites, edit_token for claimed sites.
- Well-known social links (GitHub, X, LinkedIn, etc.) display branded icons automatically β omit
leading_icon for these.