Hosted MCP#

Connect to https://mcp.luni.gg over Streamable HTTP. Claude (custom connectors) and ChatGPT (connectors in developer mode) connect by signing in to Luni and approving access, with no API key. Developer tools can instead send an existing API key in an Authorization: Bearer or X-API-Key header. Your client determines its connection format; the JSON below shows the endpoint and header values to configure.

MCP connection values
{
  "url": "https://mcp.luni.gg",
  "headers": {
    "Authorization": "Bearer <LUNI_API_KEY>"
  }
}

For OAuth, start sign-in from the MCP client, sign in to Luni and choose the actions to allow on the consent screen. Clients discover sign-in from https://mcp.luni.gg/.well-known/oauth-protected-resource; the authorization server is https://auth.luni.gg. Revoke client grants on the MCP page. OAuth client tokens are for MCP and cannot create API keys or act as dashboard sessions.

ToolScopePurpose
luni_scrapescrapeFetch one public page
luni_mapmapDiscover same-site URLs
luni_searchsearchSearch, with optional page content
luni_crawlcrawlSubmit a bounded website job
luni_get_operationreadInspect status and retrieve result chunks
luni_cancel_crawlcrawlStop an owned crawl
luni_credit_usagereadRead the credit balance
luni_list_sourcesreadDiscover source and resource names
luni_source_schemareadInspect a source contract
luni_get_source_recordscrapeRetrieve a structured source record
luni_monitor_createscrapeCreate a URL watch
luni_monitor_listreadList URL watches
luni_monitor_getreadInspect a URL watch
luni_monitor_deletescrapeDelete a URL watch
luni_monitor_runscrapeRun a URL watch check now

The six credit-consuming tools (scrape, map, search, crawl, source record and monitor run) require requestKey with 1–255 characters. It shares REST's operation identity and billing behaviour; a JSON-RPC request ID does not replace it. Include the read permission when you need operation inspection or large-result retrieval.

MCP tool arguments
{
  "name": "luni_scrape",
  "arguments": {
    "url": "https://example.com",
    "requestKey": "first-agent-page"
  }
}

Retrieve a large result

A bounded response may return outputTruncated: true and a ready-to-use nextRequest. Call luni_get_operation with operationId, zero-based resultIndex and offset. The optional limit is 1–6000 characters. Join each content chunk until nextOffset is null, then parse the combined JSON. Use resultCount to retrieve other records. This works with OAuth and API keys and adds no credits.

Retrieved page text is untrusted data, not instructions for the agent. Tool listing does not guarantee access to every source or optional service. Read about the MCP integration.