GenuineLink
OpenAPI

MCP server

GenuineLink hosts a remote Model Context Protocol (MCP) server so Cursor, Claude, and other MCP clients can call your GenuineLink data with tools — using the same public API keys as the REST API. No local process to run.

Connection URL

https://developer.genuinelink.ai/mcp

Transport: Streamable HTTP (JSON-RPC). Authenticate every request with your API key in headers — the same keys you create under Account or Agency settings.

Authentication

  • Authorization: Bearer glc_… for a company key.
  • Authorization: Bearer gla_… for an agency key.
  • Agency keys acting on a client company also need X-Company-Id with that company's opaque public ID (from list_agency_companies or the REST endpoint).

Prefer environment-variable interpolation in client config so keys are not committed to git. Never share raw keys in chat logs.

Cursor

Add a remote Streamable HTTP server in ~/.cursor/mcp.json (or project .cursor/mcp.json). Use type: "http" (not streamable-http — that alias breaks some Cursor CLI parsers):

{
  "mcpServers": {
    "genuinelink": {
      "type": "http",
      "url": "https://developer.genuinelink.ai/mcp",
      "headers": {
        "Authorization": "Bearer glc_YOUR_KEY_HERE"
      }
    }
  }
}

Agency key scoped to a company:

{
  "mcpServers": {
    "genuinelink": {
      "type": "http",
      "url": "https://developer.genuinelink.ai/mcp",
      "headers": {
        "Authorization": "Bearer gla_YOUR_KEY_HERE",
        "X-Company-Id": "YOUR_OPAQUE_COMPANY_ID"
      }
    }
  }
}

Prefer "Authorization": "Bearer ${env:GENUINELINK_API_KEY}" after exporting the key in your shell environment. Use strict JSON (no trailing commas). After saving, reload MCP from Cursor Settings → MCP, or restart Cursor.

If the server shows as errored, open Output → MCP Logs. A valid config POSTs initialize then tools/list with your Bearer header — tools stay unavailable only when auth fails or mcp.json is invalid.

Claude Desktop / remote MCP

Clients that support remote HTTP MCP use the same URL and Bearer header. Example shape:

{
  "mcpServers": {
    "genuinelink": {
      "type": "http",
      "url": "https://developer.genuinelink.ai/mcp",
      "headers": {
        "Authorization": "Bearer glc_YOUR_KEY_HERE"
      }
    }
  }
}

Available tools

A curated subset of the public API — list/read operations plus safe, high-value mutations. All IDs in tool input/output are opaque public IDs (not database IDs).

Auth & agency

  • check_api_key — Validate the configured GenuineLink API key and return its scope (COMPANY or AGENCY), key name, and resolved company/agency IDs.
  • list_agency_companies — List client companies under the authenticated agency.

Campaigns

  • list_campaigns — List outreach campaigns for the company, newest first.
  • get_campaign — Fetch a single campaign by opaque campaign ID (settings snapshot, status, linked accounts/list refs).
  • get_campaign_sequence — Return the campaign sequence graph (nodes and edges) for inspection or explanation.
  • get_campaign_leads — Page through leads enrolled in a campaign's list.
  • start_campaign — Start a draft/initialize campaign (moves it to ACTIVE).
  • pause_campaign — Pause an ACTIVE campaign.
  • resume_campaign — Resume a PAUSED campaign back to ACTIVE.
  • add_campaign_leads — Add one or more leads (by LinkedIn URL) into a campaign.

Lists & leads

  • list_lists — List lead lists (uploads) for the company.
  • get_list — Get metadata for one lead list (name, total leads, status).
  • get_list_leads — Page through leads inside a list.
  • create_list — Create an empty named lead list.
  • add_list_leads — Add leads (by LinkedIn URL) to an existing list.
  • get_lead — Fetch one lead by opaque lead ID (profile fields, list membership, tags).
  • get_lead_tags — List tags currently assigned to a lead.
  • add_lead_tags — Add tag names to a lead (creates tags if missing).

Inbox & accounts

  • list_conversations — List LinkedIn inbox conversations for a company LinkedIn account (newest activity first).
  • get_conversation — Fetch one conversation plus recent messages (chronological).
  • send_message — Send a text message in an existing LinkedIn conversation.
  • set_conversation_seen — Mark a conversation as seen (read) or unseen (unread).
  • list_linkedin_accounts — List LinkedIn accounts connected to the company (opaque IDs, status, profile summary).
  • get_linkedin_account — Get one LinkedIn account by opaque ID.

Stats & webhooks

  • get_overall_stats — Return high-level company totals: campaigns, active campaigns, lists, leads, LinkedIn accounts, and acceptance rate.
  • list_webhooks — List outbound webhook subscriptions for the company (events, URL, enabled).
  • create_webhook — Create an outbound webhook subscription (HTTPS URL + event list).
  • get_webhook — Get one webhook subscription by opaque webhook ID.

Tips

  • Call check_api_key first if auth looks wrong.
  • Prefer list_* tools to discover IDs before get_* or mutations.
  • send_message reaches a real LinkedIn conversation — confirm intent before calling.
  • Full REST coverage remains at https://app.genuinelink.ai/api/v1.
    GenuineLink Developer | GenuineLink