Model Context Protocol
Two read-only MCP servers. Connect Claude, Claude Code, Cursor, or any MCP client, then ask about vendor terms, AI training rights, and material changes in plain language.
Endpoints
What driftlinesecure.com already publishes: the Vendor AI Census and the public vendor drift pages.
https://driftlinesecure.com/api/v1/public/mcpYour organization's tracked vendors: AI posture, change history, blast radius, and evidence packs. Part of the Enterprise plan, enabled per organization on request.
https://driftlinesecure.com/api/v1/intel/mcpAuthorization headertools/call counts as one API requestSetup
Steps checked against each client's own documentation on September 12, 2026.
Add Driftline as a custom connector.
Customize › Connectors and choose Add custom connector. On a Team or Enterprise plan, an owner adds it from Organization settings › Connectors › Add › Custom, and members then connect it from Customize › Connectors.Add. The public server needs no sign-in.+ › Connectors and switch Driftline on.claude_desktop_config.json: that file is for local servers.Org server request header: authorization with value Bearer dl_your_api_key. For the org server, choose No sign-in and add this request header, including Bearer before the key. Request headers are in beta for a limited set of organizations, and everyone in your Claude organization shares the key.
Add a server from your terminal.
/mcp to check the connection and see the tools.claude mcp add --transport http driftline-public \
https://driftlinesecure.com/api/v1/public/mcpclaude mcp add --transport http driftline \
https://driftlinesecure.com/api/v1/intel/mcp \
--header "Authorization: Bearer dl_your_api_key"Add a server to an mcp.json file.
.cursor/mcp.json in a project, or ~/.cursor/mcp.json for every project.DRIFTLINE_API_KEY in Cursor's environment. The file reads it as ${env:DRIFTLINE_API_KEY}.Customize in Cursor's sidebar.{
"mcpServers": {
"driftline-public": {
"url": "https://driftlinesecure.com/api/v1/public/mcp"
}
}
}{
"mcpServers": {
"driftline": {
"url": "https://driftlinesecure.com/api/v1/intel/mcp",
"headers": {
"Authorization": "Bearer ${env:DRIFTLINE_API_KEY}"
}
}
}
}Point a Streamable HTTP client at an endpoint, or try the public server with curl.
Accept: application/json, text/event-stream, which the Streamable HTTP transport requires.Authorization: Bearer <your API key>. initialize and tools/list are not metered.curl https://driftlinesecure.com/api/v1/public/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Reference
about_driftlineWhat Driftline is, what this server exposes, and where the org-scoped tools live.
Input: None
get_vendor_ai_censusAggregates from the latest published Vendor AI Census: how vendor terms treat AI training, objection windows, and AI subprocessors. Returns published: false when no edition is public.
Input: None
list_public_vendor_pagesEvery vendor with a public drift page: name, website, AI-training posture, and recent material-change count.
Input: None
get_public_vendor_pageOne published vendor's AI-training posture, corporate context, and recent material changes. Returns found: false with a link to the Vendor Drift Report when the vendor has no public page.
Input: name: a vendor name or domain, 1–200 characters
One read-only tool per Intel API read route, plus find_vendor, which turns a vendor name or domain into the vendorId the other tools take. Results are the same JSON the REST API returns.
find_vendor, list_vendors, get_vendor, get_corporate_profilelist_changes, list_vendor_changes, get_change, list_activity, list_incidentsget_ai_posture, get_ai_posture_history, query_ai_posture_register, get_disclosure_gaps, get_market_positionlist_subprocessors, list_ai_exposure, get_blast_radius, get_exposure_graphget_risk_score, get_notice_conduct, get_evidence_pack, verify_evidence_packlist_sources, list_documentsSample result
The request an assistant sends, and the JSON the tool returns as its single text item. Example Vendor is illustrative, not a real vendor.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_public_vendor_page",
"arguments": {
"name": "example.com"
}
}
}{
"found": true,
"name": "Example Vendor",
"website": "https://example.com",
"posture": {
"trainingPermission": "permits_with_opt_out",
"verified": true,
"asOf": "2026-09-01"
},
"corporate": null,
"qualifyingChangeCount": 3,
"changes": [
{
"classification": "training_rights_changed",
"severity": "critical",
"summary": "Terms now permit training on de-identified data.",
"detectedAt": "2026-09-02T09:14:03.000Z",
"effectiveDate": "2026-10-01",
"sourceType": "tos"
},
{
"classification": "ai_subprocessor_added",
"severity": "high",
"summary": "Added an AI model provider as a subprocessor.",
"detectedAt": "2026-08-19T16:40:51.000Z",
"effectiveDate": null,
"sourceType": "subprocessor_list"
},
{
"classification": "data_retention_changed",
"severity": "medium",
"summary": "Post-termination deletion cut from 90 to 30 days.",
"detectedAt": "2026-07-07T11:05:27.000Z",
"effectiveDate": null,
"sourceType": "dpa"
}
],
"driftReportUrl": "https://driftlinesecure.com/drift-report"
}foundtrue when the vendor has a public drift page. Otherwise false, with a link to the Vendor Drift Report.posture.trainingPermissionpermits, permits_with_opt_out, prohibits, silent, or unclear.qualifyingChangeCountchanges lists up to 10 of them, newest first.changes[].severitymedium, high, or critical.driftReportUrlRead-only by design
readOnlyHint: true, so your client can show that before it runs one.Authorization header, never in a URL.Paste your vendor list, confirm your email, and our engine builds your report automatically — the material changes across your vendors in the last 12 months, which of them added AI subprocessors or reserved the right to train on your data, and where your nth-party exposure concentrates. Free, delivered during your working day.