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.
{
"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.
| Tool | Scope | Purpose |
|---|---|---|
luni_scrape | scrape | Fetch one public page |
luni_map | map | Discover same-site URLs |
luni_search | search | Search, with optional page content |
luni_crawl | crawl | Submit a bounded website job |
luni_get_operation | read | Inspect status and retrieve result chunks |
luni_cancel_crawl | crawl | Stop an owned crawl |
luni_credit_usage | read | Read the credit balance |
luni_list_sources | read | Discover source and resource names |
luni_source_schema | read | Inspect a source contract |
luni_get_source_record | scrape | Retrieve a structured source record |
luni_monitor_create | scrape | Create a URL watch |
luni_monitor_list | read | List URL watches |
luni_monitor_get | read | Inspect a URL watch |
luni_monitor_delete | scrape | Delete a URL watch |
luni_monitor_run | scrape | Run 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.
{
"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.
