protogrid

Search / ai.unulu/unulu

unulu

R0· no sign-in

AI agent website builder. Create and publish link-in-bio sites via MCP or REST API.

v0.1.0 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality82good
Trust81of 100
Uptime, 30 days96%
Latency p50288 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "unulu": {
      "type": "http",
      "url": "https://mcp.unulu.ai"
    }
  }
}
claude mcp add --transport http unulu https://mcp.unulu.ai
[mcp_servers.unulu]
url = "https://mcp.unulu.ai"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "unulu": {
      "type": "remote",
      "url": "https://mcp.unulu.ai",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "unulu": {
      "type": "http",
      "url": "https://mcp.unulu.ai"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=unulu&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLnVudWx1LmFpIn0%3D"
}
{
  "servers": {
    "unulu": {
      "type": "http",
      "url": "https://mcp.unulu.ai"
    }
  }
}
{
  "mcpServers": {
    "unulu": {
      "httpUrl": "https://mcp.unulu.ai"
    }
  }
}
extensions:
  "unulu":
    enabled: true
    name: "unulu"
    type: streamable_http
    uri: "https://mcp.unulu.ai"
    timeout: 300

Quality 82 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations4 of 4 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: unulu_create_site (idempotentHint); unulu_get_state (idempotentHint); unulu_update_site (idempotentHint); …
  • pass
    tools.token_costabout 2,090 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

4 tools, about 2,090 tokens to load them all · tool set 9e4fc140e7bc · checked 2026-10-21 02:10 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 81 / 100

provenance75
liveness98
freshness45
hygiene100

+repository +dns-namespace +reachable +uptime-96% -stale-228d

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.unulu.ai streamable-httpnoneyes96%288 ms2025-03-262026-10-21

Tools (4)

unulu_check_handleread-onlyCheck 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.
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.
unulu_get_stateread-onlyReturns 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).
unulu_update_sitedestructiveUpdate 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).

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "ai.unulu/unulu",
  "title": "unulu",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.unulu.ai",
      "type": "streamable-http"
    }
  ],
  "version": "0.1.0",
  "repository": {
    "url": "https://github.com/unulu-ai/unulu",
    "source": "github"
  },
  "description": "AI agent website builder. Create and publish link-in-bio sites via MCP or REST API."
}