Skip to main content
Please submit potential vulnerabilities or any security-related questions to security@ref.tools. While many teams and individuals already trusting Ref, please note that we are still in the journey of growing our product and improving our security posture. If you’re working in a highly sensitive environment, you should be careful when using Ref (or any other AI tool). We hope this page gives insight into our progress and helps you make a proper risk assessment.

Overview

Ref is built with security and privacy as core principles. This page outlines our security architecture, data handling practices, and compliance efforts for both Ref products. Ref Context indexes your documentation and repositories and serves search over MCP, so coding agents can look up the exact snippet they need without stuffing docs into the prompt. Ref Plans is a collaborative workspace for plan documents, plus hosted agents that read and write those plans and your connected repos. Key areas include:
  • MCP Implementation: Local and remote server protocols with API key, OAuth, or session authentication
  • Data Protection: Encryption in transit and at rest, isolated multi-tenant architecture, and comprehensive audit logging
  • Compliance: SOC2 certification in process with Vanta (see our Trust Center)
  • Monitoring: Real-time health checks and public status updates

MCP

Ref Context

Ref Context provides an open-source stdio server that can be run locally and a streamable-http server at api.ref.tools that is connected to remotely. Context accepts API keys or OAuth for authentication. Organizations can also use SSO via Scalekit. The easiest way to roll out Context to an organization is a combination of SSO and MCP OAuth. If you are interested in MCP OAuth and/or SSO, please reach out to help@ref.tools.

Ref Plans

The Plans MCP server is available at api.plan.ref.tools/mcp. Separate GitHub, Asana, and Slack MCP endpoints live on the same host. Plans authenticates with a Firebase session or an API key.

Data Handling

Encryption

  • In Transit: All data is encrypted during transit. Ref uses MCP streamable-http transport.
  • At Rest: Documents, search indices, and plan content are encrypted at rest.
  • Customer Managed Keys: Turbopuffer supports customer managed encryption keys (available upon request).

Data Isolation

We take data isolation very seriously in our multi-tenant environment:
  • Each team and user has their own isolated namespace in Turbopuffer.
  • Indexing jobs run in single, transient, isolated containers. Your documents and credentials are never present at the same time as another team’s data.
  • All application data reads go through Firestore rules that enforce user access at the database level.

Where your plan content lives

Live document: While a plan is open, a PartyKit room on Cloudflare holds the realtime collaboration state. Durable storage: Firestore stores plan metadata, version snapshots, comment threads, and settings. Google Cloud Storage stores version history, uploaded media, and agent session transcripts. Session transcripts are deleted automatically after 7 days. Plan content is encrypted in transit and at rest.

Plans access control

Access is enforced server-side: owner → team → email invite → link setting (private / public-view / public-edit). Firestore security rules block all client writes to plans and keep secrets (Slack, Anthropic, Vanta, Drata, MCP credentials) in server-only collections. PartyKit re-verifies access on every connection and enforces read-only mode.

Agent isolation

Each agent thread is a separate process on Ref’s Cloud Run plan server holding only the launching user’s credentials, and agents only see repos that user has connected. See Ref Agents for the tool and network boundary.

Observability

Session replay masks all text and form inputs by default. Production RUM user context is identifier-only.

Audit Logging

  • Context: Complete activity logging for users and teams available at ref.tools/activity. Logs include user identity, tool calls, and arguments.
  • Plans: Thread history (messages and tool calls) is stored per plan. Team admins can export change-control records via /api/compliance.

Incident Response

  • Internal monitoring via Sentry, Datadog, and Google Cloud alerting tools
  • Status updates published at ref.tools/status during incidents

Ref Agents

A Ref agent is a hosted Claude Code. Each thread runs as its own process on Ref’s servers using the Claude Agent SDK, configured entirely by Ref. Agents have no disk or shell access and no general network access. They work only through Skills and MCP tools.

AI Models & Training

Ref never trains, fine-tunes, or evaluates models on customer content or actions. Every model provider we use (Claude and Gemini on Vertex AI, VoyageAI, OpenAI) runs under zero-data-retention terms; ElevenLabs processes voice audio for transcription only. The one exception is the opt-in Fable 5.1 model, served through Vertex AI under Google’s Advanced AI Safety Addendum. Users will see a one-time notice the first time you select it, and team admins can turn off non-ZDR models for everyone under Settings → Team admin → Data retention. If you use your own Anthropic key or Claude subscription, or launch Cursor, Devin, or other coding agents, those requests run under your agreement with that vendor.

Compliance

Certifications

  • SOC2: Currently in progress with Vanta
  • For more information, see our Trust Center. The tables below are a summary; the Trust Center is the canonical subprocessor list.

Subprocessors

Ref holds the contract with these vendors. Data flows under our terms.

Integrations you connect

Nothing flows to these until a user or team admin connects them, and each runs under the customer’s own agreement with that vendor. Customer API keys and tokens for these integrations are stored on Ref’s servers only and never returned to the browser.

Monitoring & Health Checks

  • Health check endpoints: api.ref.tools/ping (Context) and api.plan.ref.tools/ping (Plans)
  • Internal monitoring and alerting infrastructure
  • Status page: ref.tools/status