diff --git a/README.md b/README.md index 5da2f38..b3b0265 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # roteiro-agent -MCP (Model Context Protocol) server for [Cairn](https://github.com/i-norden/cairn) — a spatial data platform. Enables AI agents (Claude Desktop, VS Code, Cursor) to work with geospatial datasets, run geoprocessing operations, execute PostGIS queries, and more. +MCP (Model Context Protocol) server for [Roteiro](roteiro.io) — a spatial data platform. Enables AI agents (Claude Desktop, VS Code, Cursor) to work with geospatial datasets, run geoprocessing operations, execute PostGIS queries, and more. ## Installation @@ -19,7 +19,7 @@ go build -o roteiro-agent . ## Usage ```bash -roteiro-agent --server-url http://localhost:8080 --api-key cairn_abc123 +roteiro-agent --server-url http://localhost:8080 --api-key Roteiro_abc123 ``` The server communicates via JSON-RPC 2.0 over stdio (stdin/stdout), following the MCP specification. @@ -28,9 +28,9 @@ The server communicates via JSON-RPC 2.0 over stdio (stdin/stdout), following th | Variable | Flag | Description | |----------|------|-------------| -| `CAIRN_SERVER_URL` | `--server-url` | Cairn server base URL | -| `CAIRN_API_KEY` | `--api-key` | Cairn API key | -| `CAIRN_SESSION_COOKIE` | `--session-cookie` | Session cookie (alternative to API key) | +| `ROTEIRO_SERVER_URL` | `--server-url` | Roteiro server base URL | +| `ROTEIRO_API_KEY` | `--api-key` | Roteiro API key | +| `ROTEIRO_SESSION_COOKIE` | `--session-cookie` | Session cookie (alternative to API key) | ## MCP Client Configuration diff --git a/SKILL.md b/SKILL.md index 6a9fe17..5efa580 100644 --- a/SKILL.md +++ b/SKILL.md @@ -1,8 +1,8 @@ -# Cairn Spatial Platform — Agent Guide +# Roteiro Spatial Platform — Agent Guide -## What is Cairn? +## What is Roteiro? -Cairn is a full-featured spatial data platform. It stores, processes, and serves geospatial datasets. Think of it as a self-hosted GIS server with a REST API. +Roteiro is a full-featured spatial data platform. It stores, processes, and serves geospatial datasets. Think of it as a self-hosted GIS server with a REST API. ## Authentication @@ -33,7 +33,7 @@ Use `query_features` with: ### SQL queries -Use `execute_sql` for complex spatial queries. Cairn exposes PostGIS, so all spatial functions are available: +Use `execute_sql` for complex spatial queries. Roteiro exposes PostGIS, so all spatial functions are available: - `ST_Area`, `ST_Length`, `ST_Distance` — measurements - `ST_Buffer`, `ST_Intersection`, `ST_Union` — geometry operations - `ST_Intersects`, `ST_Contains`, `ST_Within` — spatial predicates @@ -68,7 +68,7 @@ Use `list_operations` to get the full list with parameter schemas. ## Data Catalog & STAC -Cairn includes a built-in data catalog and supports importing from remote STAC (SpatioTemporal Asset Catalog) servers. +Roteiro includes a built-in data catalog and supports importing from remote STAC (SpatioTemporal Asset Catalog) servers. ### Built-in catalog @@ -84,7 +84,7 @@ For external data sources: ### Local STAC search -Use `search_stac` to search Cairn's own STAC endpoint with spatial (`bbox`), temporal (`datetime`), collection, and CQL2 (`filter`) criteria. +Use `search_stac` to search Roteiro's own STAC endpoint with spatial (`bbox`), temporal (`datetime`), collection, and CQL2 (`filter`) criteria. ## Tips for Effective Use diff --git a/main.go b/main.go index 55fb2c7..e09f71c 100644 --- a/main.go +++ b/main.go @@ -1,5 +1,5 @@ // roteiro-agent is an MCP (Model Context Protocol) server that exposes -// Cairn's spatial data platform to AI agents like Claude Desktop, VS Code, +// Roteiro's spatial data platform to AI agents like Claude Desktop, VS Code, // and Cursor. // // Usage: @@ -19,8 +19,8 @@ import ( var version = "dev" func main() { - serverURL := flag.String("server-url", "", "Cairn server base URL (e.g. http://localhost:8080)") - apiKey := flag.String("api-key", "", "Cairn API key for authentication") + serverURL := flag.String("server-url", "", "Roteiro server base URL (e.g. http://localhost:8080)") + apiKey := flag.String("api-key", "", "Roteiro API key for authentication") sessionCookie := flag.String("session-cookie", "", "Session cookie value for authentication (alternative to API key)") showVersion := flag.Bool("version", false, "Print version and exit") flag.Parse() @@ -32,17 +32,17 @@ func main() { if *serverURL == "" { // Fall back to environment variable. - *serverURL = os.Getenv("CAIRN_SERVER_URL") + *serverURL = os.Getenv("ROTEIRO_SERVER_URL") } if *apiKey == "" { - *apiKey = os.Getenv("CAIRN_API_KEY") + *apiKey = os.Getenv("ROTEIRO_API_KEY") } if *sessionCookie == "" { - *sessionCookie = os.Getenv("CAIRN_SESSION_COOKIE") + *sessionCookie = os.Getenv("ROTEIRO_SESSION_COOKIE") } if *serverURL == "" { - log.Fatal("--server-url or CAIRN_SERVER_URL is required") + log.Fatal("--server-url or ROTEIRO_SERVER_URL is required") } client := mcp.NewClient(*serverURL, *apiKey) diff --git a/mcp/client.go b/mcp/client.go index 12b0d87..b2aa51f 100644 --- a/mcp/client.go +++ b/mcp/client.go @@ -1,5 +1,5 @@ // Package mcp implements an MCP (Model Context Protocol) server that exposes -// Cairn's spatial data platform to AI agents. +// Roteiro's spatial data platform to AI agents. package mcp import ( @@ -16,7 +16,7 @@ import ( "time" ) -// Client is a thin HTTP wrapper for the Cairn REST API. +// Client is a thin HTTP wrapper for the Roteiro REST API. type Client struct { BaseURL string APIKey string @@ -272,7 +272,7 @@ func (c *Client) ExecuteSQL(query string) (json.RawMessage, error) { return nil, err } if code == http.StatusNotFound || code == http.StatusMethodNotAllowed { - // Backward compatibility for older Cairn deployments. + // Backward compatibility for older Roteiro deployments. body, code, err = c.postJSON("/api/sql/query", map[string]string{"sql": query}) if err != nil { return nil, err diff --git a/mcp/server.go b/mcp/server.go index dc4f5ec..ae13515 100644 --- a/mcp/server.go +++ b/mcp/server.go @@ -21,7 +21,7 @@ type Server struct { info ServerInfo } -// NewServer creates a new MCP server backed by the given Cairn API client. +// NewServer creates a new MCP server backed by the given Roteiro API client. func NewServer(client *Client) *Server { return &Server{ client: client, diff --git a/mcp/server_test.go b/mcp/server_test.go index ea6bc48..041db1c 100644 --- a/mcp/server_test.go +++ b/mcp/server_test.go @@ -10,7 +10,7 @@ import ( "testing" ) -// testServer creates a test Cairn API server and returns a connected MCP server. +// testServer creates a test Roteiro API server and returns a connected MCP server. func testServer(t *testing.T, handler http.Handler) *Server { t.Helper() ts := httptest.NewServer(handler) diff --git a/mcp/tools.go b/mcp/tools.go index 20448c2..d8b2f5d 100644 --- a/mcp/tools.go +++ b/mcp/tools.go @@ -29,7 +29,7 @@ func AllTools() []Tool { return []Tool{ { Name: "list_datasets", - Description: "List all datasets registered in Cairn with their names, formats, feature counts, and geometry types.", + Description: "List all datasets registered in Roteiro with their names, formats, feature counts, and geometry types.", InputSchema: InputSchema{Type: "object"}, }, {