Skip to main content
Raindrop’s MCP server puts your whole Raindrop org in your coding assistant: query events, signals, issues, conversations, and memory directly, or hand the investigation to Raindrop Triage (our expert investigator for AI applications) and go from “something looks off” to a code fix without leaving your editor. The server is hosted at https://mcp.raindrop.ai/mcp. There’s nothing to install: add the configuration to your editor and start asking.

Connect your editor

Run this command in your project directory:
Claude Code supports OAuth natively: it will open a browser window to authenticate on first use.To use an API key instead:

Investigate with Raindrop Triage

The Raindrop agent continuously analyzes your traces, signals, and user feedback to surface broader distribution changes and one-off unique failure modes: not just metrics, but concrete findings with root-cause hypotheses and the events that demonstrate them. Through the MCP server, your local coding agent can pull those investigations in and collaborate on the fix:
  1. Ask Raindrop what’s wrong. “Ask Raindrop agent what issues happened today” checks both Issue Detection reports for broader distribution changes and Stumbles for individual interactions where something bad happened.
  2. Drill in. Your local agent pulls the full trace for any flagged event: prompts, tool calls, model outputs, timings, errors.
  3. Fix it in code. With the investigation and trace in context, your local agent can locate the relevant prompt or handler in your repo and propose a patch. You stay in your editor the whole time.
Example session:

Available tools

Triage is one way in. The MCP server also exposes your Raindrop data directly, so your local agent can query events, signals, issues, and more on its own, grouped below by what they do:

Investigate

  • ask_agent_question: ask Raindrop Triage to investigate and return findings with root-cause hypotheses
  • get_agent_progress, get_agent_conversation, list_agent_conversations: poll or revisit a triage investigation

Events and traces

  • list_events, get_event: list or fetch a specific event
  • search_events: find events matching a description, e.g. “users frustrated by load times”
  • get_event_count, get_event_timeseries, get_event_facets, get_error_span_facets: counts, trends, and breakdowns
  • get_trace: full execution tree for an event: prompts, tool calls, timing, errors

Conversations and stumbles

  • list_conversations, get_conversation: browse a user’s conversation history
  • search_stumbles: one-off interactions where something went wrong

Signals

  • list_signals, get_signal, list_signal_groups, get_signal_group: list or inspect signals
  • get_dashboard: activity overview of event trends, recent issues, top signals

Create a signal

  • start_signal_session, get_signal_session, get_signal_session_status, get_signal_session_code: describe a behavior and get a draft
  • label_signal_batch, refine_signal_session: review the examples Raindrop finds and refine the draft
  • close_signal_session: confirm and create the signal (write)

Refine an existing signal

  • refine_signal: update an existing accepted, user-created JavaScript signal in the background (write)
Start from a signal investigation: inspect its matched events, identify false positives, then use those event IDs as negative_event_ids when you want to change the signal. Add a comment to explain the boundary. Positive examples are optional; include them when there is specific behavior to preserve. You can also request refinement directly with examples or a clear comment. For example, call refine_signal with:
Use a real signal ID and event IDs from the same project. signal_id and a specific project are required; org is optional. Both event-ID fields accept arrays of up to 500 IDs each. Provide at least one event ID or a nonblank comment (up to 4,000 characters). The call returns { "signal_id": "...", "status": "refining" } when the background run starts. It uses the same headless refinement flow as the Signals page and applies the resulting version to the same signal automatically. Acknowledge that the update started; completion happens later. There is no polling or close_signal_session step.

Issues

  • list_issues, get_issue: Issue Detection reports for broader distribution changes
  • update_issue: resolve, ignore, reopen, or reprioritize an issue (write)
  • get_issue_events, get_issue_timeseries: events behind an issue and its trend over time

Memory

  • list_memories, create_memory, update_memory, delete_memory: the customer-specific context Raindrop uses across product surfaces (write)

Datasets

  • list_datasets, create_dataset, update_dataset_members, annotate_items: curated collections of events (write)

Experiments

  • create_experiment: save a named comparison with cohort filters and an optional outcome rule (write).
  • get_experiment: list saved experiments, or pass a name or ID to read results.
Choose which signals define success, separately from cohort filters. Experiments compare event rates by default; use user rates when needed. Results use the same saved rule and verdict as the experiment page. See Experiments for more.

Projects, users, and orgs

  • list_projects, list_organizations: projects and orgs you have access to
  • list_users, get_user: browse users
  • list_feature_flag_keys, list_feature_flag_values: flags seen in your events
  • get_write_key: fetch a project’s write key

Docs and feedback

  • search_docs: search Raindrop’s documentation
  • submit_feedback: send feedback to the Raindrop team

Meta

  • raindrop_skills: load workflow guidance for a task (exploring data, delegating to Triage, or authoring a signal) before the first call in that workflow. Your agent calls this automatically; you don’t need to invoke it yourself.
More prompts to try:
  • “Show me an overview from Raindrop of what’s happening in my app”
  • “Find Raindrop events where users are getting bad responses”
  • “How many Raindrop events matched the ‘tool_failure’ signal this week?”
  • “Create a signal in the Support project for users reporting they were charged twice.”
  • “These matches are false positives. Refine this signal to exclude routine bug fixes.”
  • “List Raindrop conversations for user [ID]”
  • “Show me what Raindrop remembers about this project”
  • “Mark that Raindrop issue as resolved, I just deployed the fix”
Tools marked (write) above, plus creating a signal, are write actions. These are available to API-key callers and to OAuth clients that were granted the matching write scope (write:issues, write:datasets, write:memories, write:signals, or write:experiments). Read-only tools need no special scope. Creating and refining signals require write:signals for OAuth callers.

Project and org scope

Most tools take optional org and project arguments. Omit both and a call runs against your default org and default project. Pass an org from list_organizations if you belong to more than one, and a project from list_projects to target a specific one. Some read tools accept project: "*" to read across every active project in the org at once, each row still tagged with its owning project (see The All projects view). Tools that require a single project, like get_trace, reject * with a clear error. A few tools, like get_agent_progress and dataset tools, are org-scoped only and don’t take a project argument at all.

Authentication

OAuth 2.1 is the default. Supported MCP clients handle it automatically: on first connection, your editor opens a browser window to authenticate. No tokens to manage. API key is the alternative for clients that don’t support OAuth, or for non-interactive environments (CI, shared setups). At app.raindrop.ai, go to settings → API Keys → Query SDK → Manage API Keys → New API Key, then pass it as a Bearer token:

Troubleshooting

Tools not showing up in my editor Verify your MCP configuration is correct and restart your editor. Check that the server URL is exactly https://mcp.raindrop.ai/mcp. In Claude Code, run claude mcp list or /mcp. In Codex, run codex mcp list. Authentication failed If using OAuth, try disconnecting and re-authenticating: your editor will reopen the browser auth flow. If using an API key, check that the header format is exactly Authorization: Bearer <token> with no extra whitespace. Dynamic registration reports invalid_redirect_uri Raindrop only accepts OAuth callbacks configured for trusted MCP clients. Email support with the client name and exact redirect URI so we can enable OAuth for it. Otherwise, use an API key.