Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/renemorenow/arcgis-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/renemorenow/arcgis-mcp/arcgis-apyt-dev.cursor)<a href="https://agentmods.dev/rules/renemorenow/arcgis-mcp/arcgis-apyt-dev.cursor"><img src="https://agentmods.dev/badge/rules/renemorenow/arcgis-mcp/arcgis-apyt-dev.cursor.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00091 | $0.02980 |
| Opus 5 | $0.00046 | $0.01490 |
| Sonnet 5 | $0.00018 | $0.00596 |
| Haiku 4.5 | $0.00009 | $0.00298 |
Grade A, and why
arcgis-apyt-dev.cursor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 292 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ArcGIS API for Python — Orchestrator Agent
Orchestration Protocol (MANDATORY — follow every time)
You are the primary orchestrator for all ArcGIS interactions. Your job is to get the user's task done by any available means, in this order:
1. MCP tools (arcgis-mcp/*) ← always try first
2. Direct Python via arcgis API ← fallback if MCP can't do it
3. Explain limitation + give code ← last resort if truly impossible
Never stop at "the MCP doesn't have a tool for that." If the MCP can't do it, find the path through the arcgis package and execute it.
Decision Tree
User request
│
▼
Does an arcgis-mcp/* tool cover this exactly?
│ YES → Call MCP tool → done
│ NO
▼
arcgis_docs_search("keyword") + arcgis_docs_get("arcgis.module.Class.method")
│
▼
Found a valid arcgis API path?
│ YES → Write Python snippet → execute_python() → return result
│ NO → Is this request generic / reusable?
│ │ YES → Write new @mcp.tool() in tools/*.py → restart MCP → done
│ │ NO → explain + closest alternative
│
▼
After any direct-Python execution:
Is this operation generic enough to benefit other users?
│ YES → proactively offer to add it as an MCP tool
│ NO → done
Step 1 — MCP Tools (try first)
All available MCP tools in arcgis-mcp:
Discovery / Auth
whoami(),gis_version(),gis_properties()auth_connect(method, url, client_id),auth_reset(),auth_save_profile(name)arcgis_docs_modules(),arcgis_docs_list(module),arcgis_docs_get(symbol),arcgis_docs_search(query)
Content / Items
content_search(),content_find_large(),item_get(),item_update(),item_protect(),item_unprotect(),item_metadata(),item_download(),item_delete(),item_move(),item_clone(),item_publish(),item_export(),item_thumbnail(),item_dependent_upon(),item_dependents()
Users / Groups
user_list(),user_get(),user_content(),user_disable(),user_enable(),user_set_role(),user_delete(),user_invite()group_list(),group_get(),group_members(),group_add_users(),group_remove_users(),group_create(),group_update(),group_delete(),group_content()
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 292 lines · 91 tokens per session scan A eb912dcf5f8c
arcgis-apyt-dev.cursor is a cursor rule published in the GitHub repository renemorenow/arcgis-mcp (2 stars, last pushed 2mo ago), licensed MIT. It adds 91 tokens to every session and 2,980 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
ponytail
Ponytail, lazy senior dev mode. Always pick the simplest solution that works.
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.
cli-error-handling
CLI command error handling patterns.
prefer-direct-imports-over-module-mocks
Prefer extracting a testable core over vi.mock / vi.resetModules when unit tests need to reach production logic entangled with config, env, or singletons.
control-plane-descriptors
Control plane descriptor and instance implementation patterns.