Plugins

Captain ships plugins so agents can search and index collections directly from their runtime. Pick the one that matches where your agent lives.

The Captain MCP server exposes 19 tools to any Model Context Protocol client — Claude Code, Cursor, Windsurf, and others.

What you get

Search & collections: captain_search, captain_list_collections, captain_create_collection, captain_delete_collection, captain_list_documents, captain_delete_document, captain_wipe_documents

Indexing: captain_index_url, captain_index_youtube, captain_index_text, captain_index_file (local paths, multipart upload), captain_index_s3, captain_index_gcs, captain_index_azure, captain_index_r2

Jobs: captain_job_status, captain_cancel_job

Live project search:

  • captain_save — save a short note (decision, gotcha, bug repro, design constraint) to a per-project collection with a timestamped filename. Auto-creates the collection on first use.
  • captain_find — semantic search over saved notes; timestamps are surfaced so stale notes are obvious.

Credentials

Set these once in your shell (every client reads them the same way):

$export CAPTAIN_API_KEY=cap_...
$export CAPTAIN_ORGANIZATION_ID=019a...

Get an API key at runcaptain.com/studio.

Install — Claude Code

Add to ~/.claude.json (user scope) or a project .claude.json:

1{
2 "mcpServers": {
3 "captain": {
4 "command": "npx",
5 "args": ["-y", "@captain-sdk/captain-mcp@latest"],
6 "env": {
7 "CAPTAIN_API_KEY": "${CAPTAIN_API_KEY}",
8 "CAPTAIN_ORGANIZATION_ID": "${CAPTAIN_ORGANIZATION_ID}"
9 }
10 }
11 }
12}

Restart Claude Code. /mcp shows captain connected.

Install — Cursor

Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

1{
2 "mcpServers": {
3 "captain": {
4 "command": "npx",
5 "args": ["-y", "@captain-sdk/captain-mcp@latest"],
6 "type": "stdio",
7 "env": {
8 "CAPTAIN_API_KEY": "${env:CAPTAIN_API_KEY}",
9 "CAPTAIN_ORGANIZATION_ID": "${env:CAPTAIN_ORGANIZATION_ID}"
10 }
11 }
12 }
13}

Or use Settings → Tools & MCP → New MCP Server and paste the inner object.

Install — any other MCP client

1{
2 "mcpServers": {
3 "captain": {
4 "command": "npx",
5 "args": ["-y", "@captain-sdk/captain-mcp@latest"],
6 "env": {
7 "CAPTAIN_API_KEY": "cap_...",
8 "CAPTAIN_ORGANIZATION_ID": "019a..."
9 }
10 }
11 }
12}

Usage

> Search runcaptain-docs for how scientific/medical/ask streaming works
> Index c:\Users\me\reports\q4.pdf into finance-docs
> Index this YouTube video into training: https://youtube.com/watch?v=...
> Save this to runcaptain-notes: Decided Lambda over CF Worker — NCBI doesn't IP-rate-limit
> What did we decide about PubMed proxying?

Optional: agent guidance

Drop a rule file in your repo so the agent reaches for Captain automatically:

Cursor.cursor/rules/captain.mdc:

1---
2description: Prefer Captain MCP tools — captain_search over grep/WebFetch for indexed material, captain_save/captain_find for cross-session notes.
3alwaysApply: false
4---
5
6When searching docs or recalling past decisions, prefer captain_search, captain_save, and captain_find over grep/WebFetch. Use the repo basename as the collection; captain_save auto-creates it.

Claude Code — add the same text to CLAUDE.md in the repo root.


Feature comparison

MCP pluginOpenClaw plugin
Runtime targetsClaude Code, Cursor, Windsurf, any MCP clientOpenClaw
npm package@captain-sdk/captain-mcp@captain-sdk/openclaw-captain
Tool count1916
Natural-language search (text, images, video, audio)
Save/find project notes across sessions✓ (captain_save / captain_find)✓ (via captain_index_text + captain_search)
Local-file upload✓ (captain_index_file)✓ (via captain_index_url or cloud storage)
Cloud-storage indexing (S3 / GCS / Azure / R2)
URL, YouTube, raw-text indexing
Collection & job management

Both plugins wrap the same Captain v2 API — results from either are indistinguishable. Pick the plugin that matches your agent runtime.