@globalfishingwatch/gfw-mcp-js
Access Global Fishing Watch data from any MCP-compatible AI assistant or directly from the terminal. Search vessels, retrieve apparent fishing activity and port-visit events, look up Marine Protected Areas, Exclusive Economic Zones and RFMOs, calculate apparent fishing activity hours within any region, and compute aggregate event statistics.
This package can be used in three modes:
- MCP server (stdio) — connect any MCP-compatible AI assistant (Claude, Cursor, Windsurf, VS Code…) to GFW data via a local process
- MCP server (HTTP) — deploy as a Cloud Run service; AI clients connect via URL with no local install required
- CLI — query GFW data directly from the terminal
Requirements
MCP Server
Quick start (no install)
GFW_TOKEN=your_gfw_api_key_here npx @globalfishingwatch/gfw-cli mcp
mcp is a subcommand of the CLI that starts the MCP stdio server.
Authentication
The MCP server resolves the API token in this order:
GFW_TOKEN environment variable (compatibility alias)
API_KEY environment variable
~/.gfw/config.json (saved via npx @globalfishingwatch/gfw-cli auth login)
If you have already run npx @globalfishingwatch/gfw-cli auth login from the CLI, the MCP server will pick up the stored token automatically — no need to set environment variables in your client config.
Client configuration
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
%APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"gfw": {
"command": "npx",
"args": ["-y", "@globalfishingwatch/gfw-cli", "mcp"],
"env": {
"GFW_TOKEN": "your_gfw_api_key_here"
}
}
}
}
Claude Code (Plugin — recommended)
First add the GFW marketplace, then install the plugin:
# 1. Add the GFW marketplace (one-time)
/plugin marketplace add GlobalFishingWatch/gfw-mcp-js
# 2. Install the plugin (will prompt for your GFW API token)
claude plugin install gfw@globalfishingwatch
Claude Code (manual MCP)
claude mcp add gfw -- npx -y @globalfishingwatch/gfw-cli mcp
export GFW_TOKEN=your_gfw_api_key_here
Cursor
.cursor/mcp.json
{
"mcpServers": {
"gfw": {
"command": "npx",
"args": ["-y", "@globalfishingwatch/gfw-cli", "mcp"],
"env": { "GFW_TOKEN": "your_gfw_api_key_here" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"gfw": {
"command": "npx",
"args": ["-y", "@globalfishingwatch/gfw-cli", "mcp"],
"env": { "GFW_TOKEN": "your_gfw_api_key_here" }
}
}
}
VS Code (Copilot)
.vscode/mcp.json
{
"servers": {
"gfw": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@globalfishingwatch/gfw-cli", "mcp"],
"env": { "GFW_TOKEN": "your_gfw_api_key_here" }
}
}
}
OpenClaw
~/.openclaw/openclaw.json
{
"tools": {
"mcp": {
"servers": {
"gfw": {
"command": "npx",
"args": ["-y", "@globalfishingwatch/gfw-cli", "mcp"],
"env": { "GFW_TOKEN": "your_gfw_api_key_here" }
}
}
}
}
}
Gemini CLI
One-line install (Gemini Extensions):
gemini extensions install https://github.com/GlobalFishingWatch/gfw-mcp-js
export GFW_TOKEN=your_gfw_api_key_here
This installs the MCP server, the agent instructions (SKILL.md), and registers the extension automatically.
Manual config alternative — ~/.gemini/settings.json (global) or .gemini/settings.json (per project):
{
"mcpServers": {
"gfw": {
"command": "npx",
"args": ["-y", "@globalfishingwatch/gfw-cli", "mcp"],
"env": { "GFW_TOKEN": "your_gfw_api_key_here" }
}
}
}
Claude Code (Skill only)
If you want the agent guidelines without the plugin, the repo ships a SKILL.md at the root.
Install via skills.sh CLI:
npx skills add GlobalFishingWatch/gfw-mcp-js
Or clone directly into your Claude skills directory:
git clone https://github.com/GlobalFishingWatch/gfw-mcp-js ~/.claude/skills/gfw-mcp-js
Claude Code auto-discovers SKILL.md and loads the agent guidelines plus tool reference. Pair with the MCP server config above (claude mcp add gfw -- npx -y @globalfishingwatch/gfw-cli mcp) so the skill's tool documentation matches the live MCP tools.
Alternative: local clone
git clone https://github.com/globalfishingwatch/gfw-mcp-js
cd gfw-mcp-js
npm install && npm run build