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"
Microsoft 365 Copilot
The SkyWatch agent runs inside Copilot Chat as a declarative agent. Installation is tenant-wide and performed by an IT admin, either by sideloading the SkyWatch Teams app package or by adding the MCP server through Copilot Studio.
See the Microsoft 365 Copilot page for the full deployment guide, including prerequisites, admin steps, and troubleshooting.
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.