Model Context Protocol (MCP) server for the Geopera geospatial data platform
Project description
geopera-mcp
The official Model Context Protocol server for the Geopera geospatial data platform. It exposes Geopera operations as MCP tools so an AI agent (Claude Desktop, Claude Code, or your own MCP client) can discover imagery, place and read back orders, run analytics, and more — with the same auth, scopes, and provenance as any other Geopera client.
Each tool is named after its operation id (e.g. orders.archive.place) and proxies the
call to POST /v1/op/{operation_id}. The server imports nothing from the backend; it is
a standalone client of the same typed surface the Python/TypeScript SDKs and CLI consume.
Install
pip install geopera-mcp
This installs the geopera-mcp console command, which speaks the stdio transport that
MCP clients attach to. Requires Python 3.11+.
Run
The server is configured through environment variables. At minimum:
export GEOPERA_API_URL="https://api.geopera.com"
export GEOPERA_API_TOKEN="gpra_..." # a Geopera API key, or a session token
geopera-mcp
geopera-mcp runs over stdio by default — your MCP client launches it as a subprocess.
Set MCP_TRANSPORT=http to serve the streamable-HTTP transport instead (for a hosted
deployment).
Wire it into an MCP client
Add a geopera entry under mcpServers. For Claude Desktop
(~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"geopera": {
"command": "geopera-mcp",
"env": {
"GEOPERA_API_URL": "https://api.geopera.com",
"GEOPERA_API_TOKEN": "gpra_your_api_key"
}
}
}
}
Restart the client and the Geopera tools appear. The agent's reach is exactly the scopes on the token — it can do nothing the token could not do directly.
Environment variables
| Variable | Purpose |
|---|---|
GEOPERA_API_URL |
Geopera API base URL. Default https://api.geopera.com. |
GEOPERA_API_TOKEN |
A gpra_ API key or a session token, sent upstream as Authorization: Bearer. |
MCP_TRANSPORT |
stdio (default) or http. |
PORT |
Port for the http transport. |
Documentation
Full docs: docs.geopera.com/api-reference/sdks/mcp.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file geopera_mcp-0.1.0.tar.gz.
File metadata
- Download URL: geopera_mcp-0.1.0.tar.gz
- Upload date:
- Size: 55.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8768b6d83d17a55bf97e5471d188444da82b98ed02322b8842ae766ed112ad36
|
|
| MD5 |
81756f1e0dcb8c84f5094aeb913b029e
|
|
| BLAKE2b-256 |
73ab4f611310ec9493d876106306a3b98cafa97001acf8ce5cf09ca59d5e7046
|
Provenance
The following attestation bundles were made for geopera_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on geo-pera/geopera-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geopera_mcp-0.1.0.tar.gz -
Subject digest:
8768b6d83d17a55bf97e5471d188444da82b98ed02322b8842ae766ed112ad36 - Sigstore transparency entry: 1884103255
- Sigstore integration time:
-
Permalink:
geo-pera/geopera-mcp@c36b01cb4f5adf9fc64c046e1bc2c75549daa0b4 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/geo-pera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c36b01cb4f5adf9fc64c046e1bc2c75549daa0b4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file geopera_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: geopera_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 55.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40bf73a12bae70f2bf525eb14be1a58ddd883443cef7d2ab71b60590d005c92e
|
|
| MD5 |
51c5fd4ff17303ca1e1a4c30000c2ce5
|
|
| BLAKE2b-256 |
2865b88b8244a6a1bd36bfd8bdce61459b39f6b0bedbd1e2794c79a011baa45a
|
Provenance
The following attestation bundles were made for geopera_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on geo-pera/geopera-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geopera_mcp-0.1.0-py3-none-any.whl -
Subject digest:
40bf73a12bae70f2bf525eb14be1a58ddd883443cef7d2ab71b60590d005c92e - Sigstore transparency entry: 1884103384
- Sigstore integration time:
-
Permalink:
geo-pera/geopera-mcp@c36b01cb4f5adf9fc64c046e1bc2c75549daa0b4 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/geo-pera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c36b01cb4f5adf9fc64c046e1bc2c75549daa0b4 -
Trigger Event:
push
-
Statement type: