Client Integration
Connect the SkyWatch MCP server to your preferred AI assistant. All clients use the same endpoint — no API key or authentication setup required.
MCP Endpoint: https://api.skywatch.co/mcp
Claude Desktop
Claude Desktop supports MCP servers natively.
Configuration file locations:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"skywatch": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.skywatch.co/mcp"]
}
}
}
Restart Claude Desktop after saving. Then try:
- "Find satellite images of Tokyo from last month"
- "How much would imagery of Manhattan cost?"
- "What satellites have sub-meter resolution?"
Claude Code (CLI)
# Add SkyWatch MCP server
claude mcp add skywatch --transport http https://api.skywatch.co/mcp
# Verify it's configured
claude mcp list
# Remove if needed
claude mcp remove skywatch
Manual configuration — edit ~/.claude/settings.json:
{
"mcpServers": {
"skywatch": {
"type": "http",
"url": "https://api.skywatch.co/mcp"
}
}
}
Cursor
Via Settings UI:
- Open Settings (
Cmd/Ctrl + ,) - Navigate to Features > MCP Servers
- Click Add Server:
- Name:
skywatch - Command:
npx - Args:
-y mcp-remote https://api.skywatch.co/mcp
- Name:
Manual configuration — edit ~/.cursor/mcp.json:
{
"mcpServers": {
"skywatch": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.skywatch.co/mcp"]
}
}
}
Restart Cursor after configuration.
ChatGPT
Requires a paid ChatGPT account (Plus, Pro, Business, Enterprise, or Education).
- Go to Settings > Apps
- Click Create App
- Under Actions, add a Remote MCP Server
- Enter the server URL:
https://api.skywatch.co/mcp - Save the app
To use:
- Start a new chat
- Click the tools icon in the message composer
- Enable the SkyWatch app
- Ask naturally: "Search for satellite imagery of San Francisco"
Gemini CLI
# Add SkyWatch MCP server
gemini mcp add skywatch --transport http https://api.skywatch.co/mcp
# Verify configuration
gemini mcp list
# Remove if needed
gemini mcp remove skywatch
Local LLMs (Ollama, LM Studio)
For locally-hosted LLMs with function calling support, forward tool calls to the MCP endpoint.
- Ollama
- LM Studio / OpenAI-Compatible
import ollama
import requests
MCP_ENDPOINT = "https://api.skywatch.co/mcp"
def call_skywatch(tool_name, arguments):
response = requests.post(MCP_ENDPOINT, json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {"name": tool_name, "arguments": arguments}
})
return response.json()
tools = [{
"type": "function",
"function": {
"name": "search_archive_imagery",
"description": "Search satellite imagery archive",
"parameters": {
"type": "object",
"properties": {
"location_query": {"type": "string"},
"start_date": {"type": "string"},
"end_date": {"type": "string"},
"limit": {"type": "integer"}
},
"required": ["location_query"]
}
}
}]
response = ollama.chat(
model="llama3.1",
messages=[{"role": "user", "content": "Find satellite images of Paris"}],
tools=tools
)
if response.message.tool_calls:
for tc in response.message.tool_calls:
args = tc.function.arguments
if isinstance(args, str):
import json
args = json.loads(args)
result = call_skywatch(tc.function.name, args)
print(result)
from openai import OpenAI
import requests
client = OpenAI(base_url="http://localhost:1234/v1", api_key="not-needed")
tools = [{
"type": "function",
"function": {
"name": "search_archive_imagery",
"description": "Search satellite imagery archive",
"parameters": {
"type": "object",
"properties": {
"location_query": {"type": "string"},
"start_date": {"type": "string"},
"end_date": {"type": "string"},
"limit": {"type": "integer"}
},
"required": ["location_query"]
}
}
}]
response = client.chat.completions.create(
model="local-model",
messages=[{"role": "user", "content": "Search for imagery of Tokyo"}],
tools=tools,
tool_choice="auto"
)
import json
for tc in response.choices[0].message.tool_calls or []:
args = json.loads(tc.function.arguments)
result = requests.post("https://api.skywatch.co/mcp", json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {"name": tc.function.name, "arguments": args}
}).json()
print(result)
Direct HTTP
For any client or custom integration, send JSON-RPC 2.0 requests to the MCP endpoint:
curl -X POST https://api.skywatch.co/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'
See the MCP Server page for complete request examples.