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/atlanhq/agent-toolkitWrote 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/atlanhq/agent-toolkit/project-structure)<a href="https://agentmods.dev/rules/atlanhq/agent-toolkit/project-structure"><img src="https://agentmods.dev/badge/rules/atlanhq/agent-toolkit/project-structure/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/atlanhq/agent-toolkit/project-structure"><img src="https://agentmods.dev/badge/rules/atlanhq/agent-toolkit/project-structure.svg" alt="Reviewed on agentmods" width="80" 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.01104 | $0.01104 |
| Opus 5.5 | $0.00442 | $0.00442 |
| Sonnet 5.5 | $0.00221 | $0.00221 |
| Haiku 4.5 | $0.00110 | $0.00110 |
Grade A, and why
project-structure 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 1mo 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 — 161 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Atlan MCP Server Project Structure
This document outlines the recommended project structure for the Atlan MCP server.
Directory Structure
modelcontextprotocol/
├── .cursor/ # Cursor IDE specific files
├── .gitignore # Git ignore file (Assumed)
├── .python-version # Python version specification
├── client.py # Atlan client factory
├── pyproject.toml # Project metadata and dependencies
├── README.md # Project documentation
├── server.py # MCP server entry point
├── settings.py # Application settings
├── tools.py # Main tool registration/definition file
├── uv.lock # uv lock file
└── tools/ # Directory for tool implementations/modules
Key Components
server.py
The main entry point for the MCP server. Registers and exposes tools defined in the tools/ directory to interact with Atlan.
from mcp.server.fastmcp import FastMCP
from tools import (
search_assets,
get_assets_by_dsl,
traverse_lineage,
update_assets,
UpdatableAttribute,
CertificateStatus,
UpdatableAsset,
)
from pyatlan.model.fields.atlan_fields import AtlanField
from typing import Optional, Dict, Any, List, Union, Type
from pyatlan.model.assets import Asset
from pyatlan.model.lineage import LineageDirection
mcp = FastMCP("Atlan MCP", dependencies=["pyatlan"])
# Note: Docstrings and full parameter lists omitted for brevity.
# Refer to the actual server.py and tools implementations for details.
@mcp.tool()
def search_assets_tool(
conditions: Optional[Union[Dict[str, Any], str]] = None,
# ... many other parameters ...
):
"""Advanced asset search using FluentSearch with flexible conditions."""
return search_assets(conditions=conditions, ...)
@mcp.tool()
def get_assets_by_dsl_tool(dsl_query: Union[str, Dict[str, Any]]):
"""Execute the search with the given DSL query."""
return get_assets_by_dsl(dsl_query)
@mcp.tool()
def traverse_lineage_tool(
guid: str,
direction: str, # UPSTREAM or DOWNSTREAM
# ... other parameters ...
):
"""Traverse asset lineage in specified direction."""
return traverse_lineage(guid=guid, direction=direction, ...)
@mcp.tool()
def update_assets_tool(
assets: Union[UpdatableAsset, List[UpdatableAsset]],
attribute_name: UpdatableAttribute,
attribute_values: List[Union[CertificateStatus, str]],
):
"""Update one or multiple assets with different values for the same attribute."""
return update_assets(assets=assets, attribute_name=attribute_name, attribute_values=attribute_values)
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.
- 1mo ago First seen · 161 lines · 1,104 tokens per session scan A 9d4434d26b03
project-structure is a cursor rule published in the GitHub repository atlanhq/agent-toolkit (41 stars, last pushed 18d ago), licensed MIT. It adds 1,104 tokens to every session, about $0.0044 per session on Opus 5.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-30.
Other cursor rules, from other repositories
chart-encoding-standard
Chart Encoding Standard. Governs the DATA-MARK layer of every chart OrchestKit emits (playground, dashboard, infographic, MCP visual, multi-surface). ork does not own chart color science — it rents it from CC's /dataviz. The difference between an accessible, validated chart and an eyeballed rainb...
long-run-protocol
Long-Run Protocol. Long multi-agent runs finish at a named line, stop only where a human is needed, and never pass an unchecked claim as fact.
pn-tool-risk-policy
MCP tool risk tiers, HITL gates, and when to use approvalcheckpoint and gatelogappend. Use for safety reviews and workflow audits.
pn-astro
Astro conventions: islands, SSG, client directives. Use when editing .astro files. For React components used as Astro islands, pn-react also applies.
pn-plugin-quality-gates
Keep Cursor plugin manifests, paths, and component metadata valid during plugin authoring.
ponytail
Ponytail, lazy senior dev mode. Always pick the simplest solution that works.