REMOTE MCP · HOSTED

The MCP server

A hosted MCP server at mcp.rii.link that lets agents mint, route, and read links. OAuth is recommended for interactive agents; existing workspace keys remain available for headless automation. Nothing to install and nothing to version.

1

Connect with OAuth

https://mcp.rii.link/mcp

Choose OAuth when your client prompts. The consent screen shows the workspace, callback host and requested read/write access. Settings → Connections then shows the agent, scopes and last use, with immediate disconnect.

REMOTE MCP
https://mcp.rii.link/mcp
OAuth 2.1 · PKCE S256 · one-hour access tokens
2

Connect Claude

Settings → Connectors

On claude.ai and Claude Desktop, add a custom connector with the endpoint above. Claude Code takes the same hosted server in one line and opens the OAuth flow when authentication is required.

CLAUDE CODE
claude mcp add --transport http rii https://mcp.rii.link/mcp
3

Connect Cursor, VS Code & the rest

mcp.json

Any current client that speaks Streamable HTTP takes the same URL. Cursor supports OAuth for remote servers; project configuration lives in .cursor/mcp.json and global configuration in ~/.cursor/mcp.json.

MCP.JSON
{
"mcpServers": {
"rii": {
"url": "https://mcp.rii.link/mcp"
}
}
}
4

Use an API key for automation

Dashboard → Settings → API keys

Headless clients can still send the same Bearer keys as /v1 and inherit the key’s workspace, environment and scopes — a read-only key yields a read-only agent. Keep the key in an environment variable, never in a repository.

CLAUDE CODE · API KEY
claude mcp add --transport http rii https://mcp.rii.link/mcp \
--header "Authorization: Bearer $RII_KEY"
5

Configure API-key headers

mcp.json

For non-interactive Cursor or VS Code setups, add an Authorization header. Use a global or machine-managed configuration so the credential is not committed with a project.

MCP.JSON · API KEY
{
"mcpServers": {
"rii": {
"url": "https://mcp.rii.link/mcp",
"headers": { "Authorization": "Bearer rii_live_8f31k2…" }
}
}
}
6

Let the agent route

tools/list

Tool names mirror the resources in this reference — create_link, list_links, update_link, delete_link, list_domains, render_qr, link_stats. Ask for a link and watch the call; errors surface with the same stable codes as the REST envelope.

AGENT TRANSCRIPT
> "Shorten example.com/summer as rii.link/summer and send
German visitors to example.de/sommer."
⏺ create_link {"url": "https://example.com/summer", "slug": "summer",
"routing": [{"if": {"country": "DE"}, "to": "https://example.de/sommer"}]}
⎿ {"short_url": "https://rii.link/summer"}
YOU SHOULD SEE —the agent answering with the live short link — routing rule attached in one call