MCP & OpenClaw
MCP & OpenClaw
Captain ships plugins so agents can search and index collections directly from their runtime. Pick the one that matches where your agent lives.
Claude Code / Cursor (MCP)
OpenClaw
The Captain MCP server exposes 46 tools to any Model Context Protocol client: Claude Code, Cursor, VS Code, Windsurf, and others. Connect to the hosted server at https://mcp.runcaptain.com/mcp (nothing to install) — this is the recommended, actively maintained path. See Connect the hosted server below. The local stdio build via npx still works but is deprecated.
What you get
Search & collections: captain_search, captain_search_v3 (multimodal + metadata filters), 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, captain_index_s3, captain_index_gcs, captain_index_azure, captain_index_r2, captain_index_dropbox, captain_index_supabase, captain_index_backblaze, captain_index_sharepoint, captain_index_onedrive, captain_index_gdrive
Syncs (keep a collection continuously aligned with a cloud-storage bucket: initial backfill, scheduled reconcile, optional real-time events, deletion propagation):
- Create (one per storage type):
captain_create_s3_sync,captain_create_r2_sync,captain_create_supabase_sync,captain_create_backblaze_sync - Manage (provider-agnostic):
captain_list_syncs,captain_get_sync,captain_update_sync,captain_delete_sync,captain_reconcile_sync(on-demand diff + index),captain_subscribe_sync_webhook(real-time S3 events)
Chunks: captain_list_chunks, captain_get_chunk, captain_get_chunk_metadata, captain_set_chunk_metadata, captain_update_chunk_metadata, captain_delete_chunk_metadata, captain_list_chunk_relations, captain_create_chunk_relation, captain_delete_chunk_relation
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.
Integration wizard:
captain_wizard: writes Captain into your codebase. It pulls Captain’s own agent docs (llms.txt) as the source of truth for the current API surface — indexing calls, search/query wiring, collection setup, auth — and applies the changes for a task you describe. On first use it asks your permission to send routine, de-identified feedback about the integration (friction, missing capabilities, confusing docs) to Captain’s feedback endpoint — no API key, no code, no personal data. You can grant or decline, and change your mind any time.
Credentials
Set these once in your shell (every client reads them the same way):
Get an API key at runcaptain.com.
Connect the hosted server
Point any MCP-aware client at https://mcp.runcaptain.com/mcp and
authenticate with your Captain API key as a bearer token. There is nothing to
install or keep updated — the server is maintained for you, and your key implies
your organization (no organization id needed). The server stores no credentials:
your key is used per request and never persisted.
The remote config is the same everywhere — a url plus an Authorization
header. Below are the exact places each client keeps it.
Claude Code
Cursor
VS Code (Copilot)
Windsurf
Any other MCP client
Or add it to ~/.claude.json (user) or a project .claude.json:
Restart Claude Code; /mcp shows captain connected.
Wherever you paste Bearer cap_..., use a real Captain API key from
runcaptain.com. Treat it like a password.
Local install (deprecated)
The local stdio build (npx @captain-sdk/captain-mcp) is deprecated and no
longer maintained. New tools and fixes ship only to the hosted server above.
Existing installs keep working but will fall behind — prefer the hosted
connection. The one thing only the local build does is let captain_index_file
read local filesystem paths; the hosted server instead takes urls or inline
base64 files.
If you still need the local server, the client launches it with npx and it
reads CAPTAIN_API_KEY from the environment:
Usage
Optional: agent guidance
Drop a rule file in your repo so the agent reaches for Captain automatically:
Cursor: .cursor/rules/captain.mdc:
Claude Code: add the same text to CLAUDE.md in the repo root.
Links
Feature comparison
Both plugins wrap the same Captain v2 API; results from either are indistinguishable. Pick the plugin that matches your agent runtime.