Phase 3 · Enterprise plan

Connect your LLM to Lunexa via MCP

The Lunexa MCP server lets Claude Desktop, ChatGPT, Cursor, Continue.dev, and any other Model Context Protocol client search your project's data through the same API key you already use for the REST API. No scraping, no copy, no separate sync layer.

Tools your LLM can call

All four tools are read-only. The Lunexa MCP server exposes the same scopes the calling API key already grants — a key scoped to one collection only sees that collection.

lunexa_search

Run a keyword search against one collection in your project. Returns ranked hits with citations.

lunexa_multi_search

Run up to 8 parallel searches across collections in one round-trip. Best when an answer needs evidence from multiple data sets.

lunexa_list_collections

Return the schemas the LLM can search against. Use this to plan which collection to query.

lunexa_get_document

Fetch a single record by id after a search hit. Handy when the LLM needs the full document, not just the search snippet.

Setup recipes

Replace luna_...with an API key from your project's dashboard. Project scope on the key is the project the LLM will see — keys can't cross projects.

Claude Desktop

Add a single MCP server to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows). Restart Claude Desktop to pick up the change.

{
  "mcpServers": {
    "lunexa": {
      "url": "https://api.ailunexa.com/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer luna_..."
      }
    }
  }
}

ChatGPT custom GPT

Create a custom GPT, open Configure → Actions, and import the OpenAPI schema below. Set Authentication → API key → Auth type Bearer, paste your Lunexa key.

# Actions schema (paste into the OpenAPI box)
openapi: 3.1.0
info:
  title: Lunexa MCP
  version: "1.0"
servers:
  - url: https://api.ailunexa.com/api/v1
paths:
  /mcp:
    post:
      operationId: lunexaMCP
      summary: Lunexa MCP streamable transport
      requestBody:
        required: true
        content:
          application/json: {}
      responses:
        "200":
          description: OK

Note: ChatGPT's MCP support is evolving. If your tenant requires a different transport (e.g. stdio over WebSocket) please contact support — we ship a streamable HTTP transport today.

Cursor

Cursor → Settings → MCP. Paste the same JSON as Claude Desktop. Cursor restarts the connection automatically when you save.

{
  "mcpServers": {
    "lunexa": {
      "url": "https://api.ailunexa.com/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer luna_..."
      }
    }
  }
}

Continue.dev

Add to ~/.continue/config.yaml. Continue rereads the config on save; no IDE restart required.

mcpServers:
  - name: lunexa
    url: https://api.ailunexa.com/api/v1/mcp
    headers:
      Authorization: "Bearer luna_..."

Auth via API keys

Bearer auth, same keys as the REST API. Scope on the key (project + collections + actions) is the scope your LLM sees. Revoke a key in the dashboard and the LLM loses access on the next request.

Streamable HTTP transport

We expose the official MCP streamable HTTP transport on POST /api/v1/mcp. Most clients (Claude Desktop, Cursor, Continue) need only the URL + Bearer header.

Audit log of every call

Every tool call appears in the per-org audit log with the key id, tool name, and timestamp. Same surface super-admins use to track REST traffic — MCP traffic is metered and audited identically.

Pricing

  • Enterprise plan ($499/mo): includes 20,000 MCP tool calls per month — bundled value before any overage starts. Need more? Contact sales for a higher commit.
  • Overage: $2.00 per 1,000 calls past the included quota, metered to Stripe daily. The same billable-delta math the REST overages use, so the customer is never charged for in-quota usage.
  • Hard cap: 2× the included quota (so 40,000 calls/mo on Enterprise) is a runaway- protection ceiling. Past that, requests return 429 Too Many Requests with a Retry-After hint until next billing period — or contact support to lift.
  • Free / Starter / Pro: MCP is not in plan today — calls return 402 Payment Required. Contact sales to discuss earlier-tier access.

Quick smoke test (curl)

Verify the endpoint accepts your key + lists the four tools without spinning up an LLM client.

# 1. Initialize a session
curl -sN -X POST https://api.ailunexa.com/api/v1/mcp \
  -H "Authorization: Bearer luna_..." \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",
       "params":{"protocolVersion":"2025-06-18",
                 "capabilities":{},
                 "clientInfo":{"name":"smoke","version":"1"}}}'

# 2. The response includes Mcp-Session-Id; pass it on tools/list
curl -sN -X POST https://api.ailunexa.com/api/v1/mcp \
  -H "Authorization: Bearer luna_..." \
  -H "Mcp-Session-Id: <session-id>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

Expect four tool entries: lunexa_search, lunexa_multi_search, lunexa_list_collections, lunexa_get_document.

Ready to plug in?

MCP access is on the Enterprise plan. Talk to sales for a BAA, custom limits, or a sandbox project to test against.

Talk to sales