cart-mcp
Provides tools prefixed qgis_* for driving QGIS Desktop, enabling extraction of an AOI from the canvas, mapping soil and risk ratings back into QGIS, adding vector layers, styling, and zooming, as part of an agent-driven conservation planning workflow.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cart-mcpWhat are the soil resource concerns for this field?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
cart-mcp
This MCP server computes soil resource concern ratings for an area of interest (AOI) using the same SQL pipeline CART (Nemecek, J. & Peaslee, S., USDA NRCS) uses against the public USDA Soil Data Access (SDA) web service, and exposes the results as MCP tools, resources, and prompts for AI-assisted conservation planning.
What this is not: an official NRCS/CART ranking engine. CART's full ranking score combines five components (Vulnerability, Planned Practice Effects, Resource Priorities, Program Priorities, Cost Efficiency). This server computes only the soil-condition ratings (the vulnerability input) from published SSURGO soil data. Official program determinations come from your NRCS field office.
Install
Requires Python >= 3.12 and uv.
uv syncRelated MCP server: mireye-mcp
Run
uv run cart-mcp # stdio transport (default, for MCP clients)
uv run cart-mcp --transport streamable-http --port 8000 # Streamable HTTP (recommended for remote/HTTP clients)
uv run cart-mcp --transport sse --port 8000 # legacy HTTP+SSE transportOr during development:
uv run python -m cart_mcpClient configuration
Add to your MCP client config (opencode, Claude Desktop, etc.):
{
"mcpServers": {
"cart": {
"command": "uv",
"args": ["--directory", "/path/to/cart-assistant", "run", "cart-mcp"]
}
}
}opencode users can preconfigure both servers in a root opencode.json; all other clients
use examples/mcp_config.json as a template.
QGIS integration (external agent harness)
Drive QGIS Desktop and cart-mcp from one agent (e.g. opencode): ask the agent to
extract an AOI from the QGIS canvas, rate it with cart-mcp, and map the result back
into QGIS. Tools appear prefixed: cart_* (rating tools) and qgis_* (QGIS tools).
Setup (QGIS MCP plugin install, server registration for opencode and other MCP
clients) and a fully worked run (T89 Fld1, step-by-step prompts, expected
outputs, troubleshooting) are in examples/qgis_cart_harness_example.md.
Orchestration pattern
AOI: ask for the canvas extent or a layer's features → EPSG:4326 WKT in one call: qgis
evaluate_expressionwithgeom_to_wkt(transform($geometry, 'EPSG:4326'))(cart-mcp requires EPSG:4326).Rate:
cart_rate_aoi(orcart_rate_aoisfor several landunits) withconcernsas an optional subset; maps viacart_get_aoi_soil_map/cart_get_aoi_risk_map.Map: save the returned GeoJSON to a temp file → qgis
add_vector_layer→set_layer_style→zoom_to_layer→render_map.
Caveats
Ratings are advisory; keep the returned
disclaimerandsoils_metadata(survey dates).Each rating hits the public SDA web service (~10 s); avoid
cart_validate_pipelinein chat.The QGIS socket binds localhost with no auth and
qgis_execute_coderuns arbitrary PyQGIS: on shared machines setQGIS_MCP_TOKENin both the QGIS environment and the server'senvironmentblock.117 QGIS tools bloat model context; on token-strapped models set
QGIS_MCP_TOOL_MODE=compound(27 grouped tools) via the serverenvironment, or gate with"tools": {"qgis_*": false}+ per-agent re-enable.
Tools
Tool | Description |
| Rate an AOI (WKT, EPSG:4326) for resource concerns via the SDA web service. Accepts an optional |
| Rate multiple landunits in one pipeline run ( |
| Map units, components, and acreage intersecting an AOI (lightweight, no rating computation). |
| Soil map as GeoJSON: AOI-clipped soil polygons with map unit properties (musym, muname, acres). Render directly with Leaflet/ArcGIS. |
| Risk map as GeoJSON for one cointerp-backed concern: soil polygons carrying the dominant component's rating class/value; Order 5 units rated 'Not rated'. |
| All CART resource concerns with pipeline type, data source, and whether rating is computable in this server. |
| Domain detail for one concern: name, source, rating domain, not-rated phrase, practices, regulatory crosswalk. |
| Ordered rating classes (best→worst) for a concern. |
| NRCS conservation practices typically addressing a concern (advisory, from public NRCS practice-points materials). |
| Re-run the pipeline against the known T9981 Fld3/Fld4 test AOIs and diff against embedded golden values. Requires network. |
Resources
URI | Description |
| Index of all concerns |
| One concern's full profile |
| Rating domain for a concern |
| Soil interpretation name mappings |
Prompts
Prompt | Description |
| Guided AI workflow: describe AOI, pick concerns, run |
| Run |
Data sources and public accessibility
All data used at runtime is public — no API keys, no credentials, no internal endpoints.
Input | Source | Access | Public-domain status |
Soil ratings ( | USDA NRCS SSURGO published snapshots via the Soil Data Access web service ( | Anonymous, no auth | Federal government work (17 U.S.C. § 105) |
| Derived from public NRCS CART documentation and chapters | Embedded in package | Derived from federal works |
| Public CART documentation test fields (T9981 Fld3/Fld4) | Embedded in package | Derived from federal works |
Notes:
The SDA web service is a free public federal service without an SLA; the server makes one submission per
rate_aoicall.Query.aspx(SOAP) is the documented fallback if thepost.restendpoint ever changes.Ratings are only as fresh as each survey area's last publication (
saverest); the server returns these dates with every rating.Embedded data derives only from USDA NRCS federal publications; no third-party documents (e.g., journal articles) are redistributed.
SDA request constraints (100k row cap, timeout/memory failure modes) are enforced by the server's request caps (landunits, AOI area, timeout).
CART SQL queries, rating methodology, and domain tables are documented in the public CART reference repository: https://github.com/jneme910/CART (Nemecek, J. and Peaslee, S., USDA NRCS).
Development
uv run pytest # offline tests (default)
uv run pytest -m network # opt-in tests requiring live SDA accessLicense
MIT for the server code; embedded data is derived from public-domain US federal government
works. See LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceAn MCP server that enables AI assistants to look up solar permitting authorities, estimate solar production via PVWatts, and retrieve irradiance data. It streamlines the creation of solar-aware workflows by integrating industry-standard APIs like NREL.Last updatedMIT

mireye-mcpofficial
AlicenseAqualityCmaintenanceExposes Mireye Earth's geospatial data API as MCP tools (mireye_ask and mireye_fetch) for querying location-based information like elevation, flood zones, and wildfire risk for US places.Last updated2MIT- Alicense-qualityCmaintenanceExposes real-time soil sensor metrics as MCP Resources and irrigation valve controls as MCP Tools, enabling AI-driven agronomic decisions with built-in safety guardrails.Last updatedApache 2.0
- Alicense-qualityCmaintenanceEnables AI agents to perform spatial analysis in ArcGIS Pro using natural language by exposing all ArcGIS Pro toolboxes as MCP tools.Last updated2MIT
Related MCP Connectors
GIS tools for AI agents: 65 free tools + 8 paid (hazard/site-scouting/GeoJSON export)
100+ MCP tools for AI agents: content metadata, trade intelligence, business-expertise analysis.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/yankuic/cart-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server