Atlas / MCP servers / pacificcommunity / geonode-mcp

geonode-mcpSAFE

mcp/pacificcommunity/geonode-mcp

MCP gateway for Geonode

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
24 15r · 8w · 1d
Transport
streamable-http
License
MIT
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

A Model Context Protocol (MCP) server for interacting with GeoNode APIs. This server provides comprehensive access to GeoNode functionality including resource management, user administration, data uploads/downloads, and permission management.

Features

Resource Management

  • List Regions: Browse available GeoNode regions
  • List Resources: Browse and filter resources by type, status, categories, keywords, and more
  • Resource Details: Get detailed information about specific resources and datasets
  • Search: Full-text search across resource titles and abstracts
  • Download: Generate download URLs for datasets and documents
  • Upload: Upload datasets (Shapefiles, GeoTIFFs, CSV) and documents
  • Delete: Remove resources from GeoNode
  • Metadata Updates: Update dataset titles, abstracts, and licenses

User Management

  • List Users: Browse users with pagination
  • User Details: Get detailed user information
  • Create Users: Add new users to the system

Permissions & Security

  • View Permissions: Check current resource permissions
  • Set Permissions: Configure user, group, and organization permissions for resources
  • Authentication: Support for Basic Auth and Bearer tokens

Advanced Features

  • Upload Tracking: Monitor upload progress with execution status
  • Linked Resources: Discover relationships between resources
  • Filtering: Advanced filtering by resource type, publication status, featured status, categories, and more

Installation

  1. Install dependencies:
pip install mcp httpx pydantic
  1. Run the server:
python main.py
# or
python cli.py
# or
mcp-geonode-cli serve
  1. Call tools directly from CLI (no MCP client required):
# List callable tools
mcp-geonode-cli list-tools

# Call a tool with JSON args
mcp-geonode-cli call list_resources --args '{"resource_type":"dataset","page_size":5}' --pretty

Configuration

The MCP GeoNode serv

Read from source at commit 18ce5872b6beOBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add mcp-geonode --env GEONODE_PASSWORD=${GEONODE_PASSWORD} --env GEONODE_TOKEN=${GEONODE_TOKEN} -- uvx mcp-geonode
claude-desktop
{
  "mcpServers": {
    "mcp-geonode": {
      "command": "uvx",
      "args": [
        "mcp-geonode"
      ],
      "env": {
        "GEONODE_PASSWORD": "${GEONODE_PASSWORD}",
        "GEONODE_TOKEN": "${GEONODE_TOKEN}"
      }
    }
  }
}
03

Exposed tools (24)

15 read · 8 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
check_upload_statuswrite
configure_geonoderead
create_userwrite
delete_resourcedestructive
download_assetread
download_resourceread
get_configuration_statusread
get_dataset_detailsread
get_resource_detailsread
get_resource_permissionsread
get_user_detailsread
list_categoriesread
list_groupsread
list_linked_resourcesread
list_regionsread
list_resourcesread
list_tkeywordsread
list_usersread
set_resource_permissionswrite
update_dataset_metadatawrite
update_dataset_settingswrite
upload_datasetwrite
upload_dataset_metadata_xmlwrite
upload_documentwrite
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (4)

MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete_resource
Why it matters. 1 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInformation disclosure · disclose.log_secret · CWE-209, CWE-532
test_env_config.py:60
print(f"  Has token: {env_config.token is not None}")
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
test_download_asset.py:72
assert _safe_filename("../../etc/passwd", "fb") == "passwd"
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
requirements.txt
mcp, httpx, pydantic, typing-extensions, python-dotenv
Why it matters. 5 requirement(s) not pinned with ==
Fix. pin exact versions

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha 18ce5872b6befull audit observations/trust-audit/mcp-server/pacificcommunity__geonode-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-1218ce5872b6beSAFEB89first audit
06

Questions

What is the geonode-mcp MCP server?

MCP gateway for Geonode

What tools does geonode-mcp expose?

24 in total: 15 read-only, 8 that write, and 1 that can delete or overwrite (delete_resource). Every one is listed on this page with its risk.

Is geonode-mcp safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does geonode-mcp need?

It reads GEONODE_PASSWORD and GEONODE_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does geonode-mcp run?

It speaks streamable-http, so it runs as a service you connect to over the network. It is published on PyPI as mcp-geonode.

How current is this page?

The grade is for one exact copy of the source (18ce5872b6be), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement