Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

worldmonitor (Go)

Official Go SDK for the World Monitor global-intelligence API — country briefs, risk scores, conflict / cyber / market / news feeds, and every MCP tool, without writing an HTTP integration.

Stdlib-only (zero dependencies), MCP-first: the same design as the official worldmonitor npm CLI. The MCP server is the live, documented agent surface; a small REST escape hatch rounds it out.

Install

go get github.com/koala73/worldmonitor/sdk/go

Quickstart

package main

import (
	"context"
	"fmt"

	worldmonitor "github.com/koala73/worldmonitor/sdk/go"
)

func main() {
	ctx := context.Background()
	client := worldmonitor.New("wm_...") // or "" to read WORLDMONITOR_API_KEY

	tools, _ := client.ListTools(ctx) // public — no key needed
	fmt.Println(string(tools))

	risk, err := client.CountryRisk(ctx, "IR", nil) // curated helper
	if err != nil {
		panic(err)
	}
	fmt.Println(string(risk))

	// Any MCP tool:
	quotes, _ := client.CallTool(ctx, "get_market_data", worldmonitor.Args{"asset_class": "crypto"})
	fmt.Println(string(quotes))

	// Raw REST GET:
	health, _ := client.Get(ctx, "/api/health", nil)
	fmt.Println(string(health))
}

Data calls (tools/call) need a user API key — get one at worldmonitor.app/pro. Listing tools, prompts, and resources is public.

Server-side projection

Every tool accepts an optional jmespath argument that projects the response server-side (typically an 80–95% size cut):

brief, _ := client.WorldBrief(ctx, worldmonitor.Args{"jmespath": "hotspots[].name"})

See the JMESPath guide for worked examples.

Errors

  • *worldmonitor.MCPError — the MCP server returned a JSON-RPC error (.Code, auth failures carry a key hint).
  • *worldmonitor.APIError — a REST/transport failure (.Status, .Body).

Use errors.As to branch on them.

Configuration

Field Environment variable Default
APIKey WORLDMONITOR_API_KEY (or WM_API_KEY)
BaseURL WORLDMONITOR_BASE_URL https://api.worldmonitor.app
MCPURL WORLDMONITOR_MCP_URL https://worldmonitor.app/mcp
HTTPClient http.Client with a 30s timeout

The source lives in sdk/go/ in the main repository and is versioned with sdk/go/vX.Y.Z tags. Docs: worldmonitor.app/docs/sdks. License: MIT (thin client; the World Monitor platform itself remains AGPL-3.0).