From 2df037cee58c6958af78c5e1793de1072ad0b05d Mon Sep 17 00:00:00 2001 From: Abhinav Mathur Date: Mon, 16 Feb 2026 15:23:46 +0530 Subject: [PATCH 1/5] feat: add Claude Code plugin for Atlan MCP server Adds a Claude Code plugin with 8 skills, marketplace config, and MCP server integration at mcp.atlan.com/mcp via OAuth. Skills: search-assets, explore-lineage, manage-glossary, manage-domains, data-quality, update-assets, discover-metadata, review-governance. Co-Authored-By: Claude Opus 4.6 --- claude-plugin/.claude-plugin/marketplace.json | 46 +++++ claude-plugin/.claude-plugin/plugin.json | 24 +++ claude-plugin/.mcp.json | 8 + claude-plugin/CHANGELOG.md | 23 +++ claude-plugin/LICENSE | 190 ++++++++++++++++++ claude-plugin/README.md | 129 ++++++++++++ claude-plugin/skills/data-quality/SKILL.md | 47 +++++ claude-plugin/skills/explore-lineage/SKILL.md | 33 +++ claude-plugin/skills/manage-domains/SKILL.md | 35 ++++ claude-plugin/skills/manage-glossary/SKILL.md | 36 ++++ .../skills/review-governance/SKILL.md | 42 ++++ claude-plugin/skills/search-assets/SKILL.md | 20 ++ claude-plugin/skills/update-assets/SKILL.md | 37 ++++ 13 files changed, 670 insertions(+) create mode 100644 claude-plugin/.claude-plugin/marketplace.json create mode 100644 claude-plugin/.claude-plugin/plugin.json create mode 100644 claude-plugin/.mcp.json create mode 100644 claude-plugin/CHANGELOG.md create mode 100644 claude-plugin/LICENSE create mode 100644 claude-plugin/README.md create mode 100644 claude-plugin/skills/data-quality/SKILL.md create mode 100644 claude-plugin/skills/explore-lineage/SKILL.md create mode 100644 claude-plugin/skills/manage-domains/SKILL.md create mode 100644 claude-plugin/skills/manage-glossary/SKILL.md create mode 100644 claude-plugin/skills/review-governance/SKILL.md create mode 100644 claude-plugin/skills/search-assets/SKILL.md create mode 100644 claude-plugin/skills/update-assets/SKILL.md diff --git a/claude-plugin/.claude-plugin/marketplace.json b/claude-plugin/.claude-plugin/marketplace.json new file mode 100644 index 0000000..e6e2398 --- /dev/null +++ b/claude-plugin/.claude-plugin/marketplace.json @@ -0,0 +1,46 @@ +{ + "name": "atlan-marketplace", + "owner": { + "name": "Atlan", + "email": "engineering@atlan.com" + }, + "metadata": { + "description": "Official Atlan plugins for Claude Code - data catalog, governance, and data mesh tools", + "version": "1.0.0" + }, + "plugins": [ + { + "name": "atlan", + "source": "./", + "description": "Atlan data catalog plugin for Claude Code. Search, explore, govern, and manage your data assets through natural language. Includes semantic search, lineage traversal, glossary management, data quality rules, and governance workflows powered by the Atlan MCP server.", + "version": "1.0.0", + "author": { + "name": "Atlan", + "email": "engineering@atlan.com" + }, + "homepage": "https://atlan.com", + "repository": "https://github.com/atlanhq/agent-toolkit", + "license": "Apache-2.0", + "keywords": [ + "data-catalog", + "data-governance", + "metadata", + "lineage", + "data-quality", + "semantic-search", + "glossary", + "mcp", + "atlan" + ], + "category": "data-tools", + "tags": [ + "data-catalog", + "governance", + "metadata-management", + "data-quality", + "data-mesh", + "lineage" + ] + } + ] +} diff --git a/claude-plugin/.claude-plugin/plugin.json b/claude-plugin/.claude-plugin/plugin.json new file mode 100644 index 0000000..33d4d2f --- /dev/null +++ b/claude-plugin/.claude-plugin/plugin.json @@ -0,0 +1,24 @@ +{ + "name": "atlan", + "description": "Atlan data catalog plugin for Claude Code. Search, explore, govern, and manage your data assets through natural language. Includes semantic search, lineage traversal, glossary management, data quality rules, and governance workflows powered by the Atlan MCP server.", + "version": "1.0.0", + "author": { + "name": "Atlan", + "email": "engineering@atlan.com", + "url": "https://atlan.com" + }, + "homepage": "https://atlan.com/docs", + "repository": "https://github.com/atlanhq/agent-toolkit", + "license": "Apache-2.0", + "keywords": [ + "data-catalog", + "data-governance", + "metadata", + "lineage", + "data-quality", + "semantic-search", + "glossary", + "mcp", + "atlan" + ] +} diff --git a/claude-plugin/.mcp.json b/claude-plugin/.mcp.json new file mode 100644 index 0000000..c3ad019 --- /dev/null +++ b/claude-plugin/.mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "atlan": { + "type": "http", + "url": "https://mcp.atlan.com/mcp" + } + } +} diff --git a/claude-plugin/CHANGELOG.md b/claude-plugin/CHANGELOG.md new file mode 100644 index 0000000..2ced484 --- /dev/null +++ b/claude-plugin/CHANGELOG.md @@ -0,0 +1,23 @@ +# Changelog + +All notable changes to the Atlan Claude Code Plugin will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.0.0] - 2025-02-16 + +### Added +- Initial release of the Atlan Claude Code Plugin +- **8 Skills** (agent-invoked): + - `search-assets` - Natural language asset search via semantic search + - `explore-lineage` - Upstream and downstream lineage traversal + - `manage-glossary` - Glossary, term, and category management + - `manage-domains` - Data domain and product management + - `data-quality` - DQ rule creation, scheduling, and management + - `update-assets` - Asset property updates (descriptions, certificates, terms, metadata) + - `discover-metadata` - Custom metadata discovery via natural language + - `review-governance` - Governance posture auditing with scorecards +- **MCP Server Integration** via OAuth at `mcp.atlan.com/mcp` +- **CLAUDE.md** with tool usage conventions and guidelines +- Marketplace configuration for distribution diff --git a/claude-plugin/LICENSE b/claude-plugin/LICENSE new file mode 100644 index 0000000..7fa7064 --- /dev/null +++ b/claude-plugin/LICENSE @@ -0,0 +1,190 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to the Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by the Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding any notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2025 Atlan Pte. Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/claude-plugin/README.md b/claude-plugin/README.md new file mode 100644 index 0000000..71e630c --- /dev/null +++ b/claude-plugin/README.md @@ -0,0 +1,129 @@ +# Atlan Plugin for Claude Code + +The official Atlan plugin for Claude Code. Search, explore, govern, and manage your data assets through natural language, powered by the [Atlan MCP server](https://github.com/atlanhq/atlan-mcp-server). + +Connects to Atlan via OAuth at `mcp.atlan.com/mcp` - no API keys required. + +## Features + +### Skills (Agent-invoked) +Claude automatically uses these based on task context: + +| Skill | Description | +|-------|-------------| +| `search-assets` | Natural language search across all data assets | +| `explore-lineage` | Trace data flow upstream and downstream | +| `manage-glossary` | Create and manage business glossaries, terms, and categories | +| `manage-domains` | Create data domains, subdomains, and data products | +| `data-quality` | Create, update, schedule, and manage DQ rules | +| `update-assets` | Update descriptions, certificates, README, terms, and custom metadata | +| `discover-metadata` | Find custom metadata definitions by natural language | +| `review-governance` | Audit data governance posture with scorecards | + +### MCP Tools +All powered by the Atlan MCP server: + +- **Search**: `semantic_search_tool` +- **Lineage**: `traverse_lineage_tool` +- **Updates**: `update_assets_tool`, `discover_custom_metadata_tool` +- **Glossary**: `create_glossaries`, `create_glossary_terms`, `create_glossary_categories` +- **Data Mesh**: `create_domains`, `create_data_products` +- **Data Quality**: `create_dq_rules_tool`, `update_dq_rules_tool`, `schedule_dq_rules_tool`, `delete_dq_rules_tool` + +## Prerequisites + +- [Claude Code](https://claude.com/claude-code) v1.0.33 or later +- An Atlan account (authentication via OAuth - no API keys needed) + +## Setup + +### 1. Install the plugin + +**From marketplace (when available):** +```shell +/plugin marketplace add atlanhq/atlan-claude-plugin +/plugin install atlan@atlan-marketplace +``` + +**From local directory (for development):** +```bash +claude --plugin-dir ./atlan-claude-plugin +``` + +### 2. Authenticate + +Run `/mcp` in Claude Code and select "Authenticate" for Atlan. This opens a browser-based OAuth login flow - no API keys or environment variables needed. + +### 3. Verify + +Try searching: "Find all customer tables in Snowflake" + +## Local Development & Testing + +### Test the plugin locally + +```bash +# From the repository root +claude --plugin-dir ./atlan-claude-plugin +``` + +### Test with multiple plugins + +```bash +claude --plugin-dir ./atlan-claude-plugin --plugin-dir ./other-plugin +``` + +### Debug plugin loading + +```bash +claude --debug --plugin-dir ./atlan-claude-plugin +``` + +### Validate plugin structure + +```bash +claude plugin validate ./atlan-claude-plugin +``` + +## Examples + +Just talk to Claude naturally: +- "Find all PII-tagged columns in our Snowflake warehouse" +- "What tables feed into the revenue dashboard?" +- "Create a data quality rule to check for null emails" +- "Set up a business glossary for our marketing terms" +- "Review the governance posture of our customer data" + +## Plugin Structure + +``` +atlan-claude-plugin/ +├── .claude-plugin/ +│ ├── plugin.json # Plugin manifest +│ └── marketplace.json # Marketplace configuration +├── skills/ # Agent-invoked skills +│ ├── search-assets/SKILL.md +│ ├── explore-lineage/SKILL.md +│ ├── manage-glossary/SKILL.md +│ ├── manage-domains/SKILL.md +│ ├── data-quality/SKILL.md +│ ├── update-assets/SKILL.md +│ ├── discover-metadata/SKILL.md +│ └── review-governance/SKILL.md +├── .mcp.json # MCP server (mcp.atlan.com/mcp via OAuth) +├── CLAUDE.md # Claude Code instructions +├── LICENSE +├── CHANGELOG.md +└── README.md +``` + +## Contributing + +1. Clone the repository +2. Make your changes +3. Test locally with `claude --plugin-dir ./atlan-claude-plugin` +4. Submit a pull request + +## License + +Apache-2.0 diff --git a/claude-plugin/skills/data-quality/SKILL.md b/claude-plugin/skills/data-quality/SKILL.md new file mode 100644 index 0000000..256e045 --- /dev/null +++ b/claude-plugin/skills/data-quality/SKILL.md @@ -0,0 +1,47 @@ +--- +name: data-quality +description: Create, update, schedule, and manage data quality rules in Atlan. Use when users want to set up data quality checks, monitor data health, or enforce data standards. +--- + +# Manage Data Quality Rules + +The user wants to work with data quality rules in Atlan. + +## Instructions + +- Parse the user's intent from: `$ARGUMENTS` + +### Creating Rules +Use `create_dq_rules_tool`. Supported rule types: +- **Completeness**: Null Count, Null Percentage, Blank Count, Blank Percentage +- **Statistical**: Min Value, Max Value, Average, Standard Deviation +- **Uniqueness**: Unique Count, Duplicate Count +- **Validity**: Regex, String Length, Valid Values +- **Timeliness**: Freshness (requires threshold_unit: DAYS/HOURS/MINUTES) +- **Volume**: Row Count (table-level, no column needed) +- **Custom**: Custom SQL (requires custom_sql, rule_name, dimension) + +Required fields: `rule_type`, `asset_qualified_name`, `threshold_value` +Column-level rules also require: `column_qualified_name` + +### Updating Rules +Use `update_dq_rules_tool` with the rule's `qualified_name`. + +### Scheduling Rules +Use `schedule_dq_rules_tool` with cron expression and timezone. + +### Deleting Rules +Use `delete_dq_rules_tool` with rule GUID(s). + +## Workflow + +1. Search for the target asset to get its qualified_name (and column qualified_name if needed) +2. Create appropriate DQ rules based on the user's requirements +3. Optionally schedule rule execution +4. Confirm what was created + +## Alert Priorities +- LOW, NORMAL (default), URGENT + +## Threshold Operators +- EQUAL, GREATER_THAN, GREATER_THAN_EQUAL, LESS_THAN, LESS_THAN_EQUAL, BETWEEN diff --git a/claude-plugin/skills/explore-lineage/SKILL.md b/claude-plugin/skills/explore-lineage/SKILL.md new file mode 100644 index 0000000..78e2841 --- /dev/null +++ b/claude-plugin/skills/explore-lineage/SKILL.md @@ -0,0 +1,33 @@ +--- +name: explore-lineage +description: Explore data lineage to understand where data comes from (upstream) or where it flows to (downstream). Use when users ask about data sources, dependencies, impact analysis, or data flow. +--- + +# Explore Data Lineage + +The user wants to understand data lineage. Use `traverse_lineage_tool` to trace data flow. + +## Instructions + +- Parse the user's intent from: `$ARGUMENTS` +- First, search for the asset if only a name is provided (use `semantic_search_tool` to find the GUID) +- Then traverse lineage using `traverse_lineage_tool` with the asset's GUID +- Use `UPSTREAM` direction to find data sources (where data comes from) +- Use `DOWNSTREAM` direction to find data consumers (where data goes) +- For impact analysis, trace downstream to show what would be affected by changes +- For root cause analysis, trace upstream to find the data origin + +## Output Format + +Present lineage as a clear flow: +- Show asset names, types, and connections +- Indicate the direction of data flow +- Highlight the starting asset +- If lineage is deep, summarize the key paths + +## Common Patterns + +- "Where does this data come from?" -> UPSTREAM traversal +- "What depends on this table?" -> DOWNSTREAM traversal +- "Show me the full pipeline" -> Both UPSTREAM and DOWNSTREAM +- "Impact analysis for X" -> DOWNSTREAM traversal diff --git a/claude-plugin/skills/manage-domains/SKILL.md b/claude-plugin/skills/manage-domains/SKILL.md new file mode 100644 index 0000000..8544f1b --- /dev/null +++ b/claude-plugin/skills/manage-domains/SKILL.md @@ -0,0 +1,35 @@ +--- +name: manage-domains +description: Create and manage data domains, subdomains, and data products in Atlan. Use when users want to organize their data mesh, define domain ownership, or create data products. +--- + +# Manage Data Domains & Products + +The user wants to work with Atlan's data mesh capabilities - domains, subdomains, and data products. + +## Instructions + +- Parse the user's intent from: `$ARGUMENTS` +- Search for existing domains before creating new ones to avoid duplicates + +### Creating Domains +- Use `create_domains` with name, description, and optional certificate status +- Domain names must be unique at the top level + +### Creating Subdomains +- Use `create_domains` with `parent_domain_qualified_name` to nest under a parent domain +- Subdomain names must be unique within the same parent + +### Creating Data Products +- Use `create_data_products` - requires: + - `domain_qualified_name`: search for the domain first to get this + - `asset_guids`: search for assets to link (at least one required) +- Product names must be unique within the same domain + +## Workflow + +1. Search for existing domains to avoid duplicates and get qualified names +2. Create domain/subdomain if needed +3. Search for assets to link to data products +4. Create data products with asset links +5. Confirm creation with GUIDs and qualified names diff --git a/claude-plugin/skills/manage-glossary/SKILL.md b/claude-plugin/skills/manage-glossary/SKILL.md new file mode 100644 index 0000000..d1575b0 --- /dev/null +++ b/claude-plugin/skills/manage-glossary/SKILL.md @@ -0,0 +1,36 @@ +--- +name: manage-glossary +description: Create and manage business glossaries, terms, and categories in Atlan. Use when users want to define business terminology, create glossaries, add terms, or organize categories. +--- + +# Manage Business Glossary + +The user wants to work with Atlan's business glossary. This includes creating glossaries, terms, and categories. + +## Instructions + +- Parse the user's intent from: `$ARGUMENTS` +- **Before creating anything**, search first to check for existing glossaries/terms/categories to avoid duplicates +- Use `semantic_search_tool` with the glossary/term name to check existence + +### Creating Glossaries +- Use `create_glossaries` with name, description, and optional certificate status +- Certificate statuses: VERIFIED, DRAFT, DEPRECATED + +### Creating Terms +- Use `create_glossary_terms` - requires `glossary_guid` (search for the glossary first) +- Terms can optionally be assigned to categories via `category_guids` +- Two terms with the same name CANNOT exist within the same glossary + +### Creating Categories +- Use `create_glossary_categories` - requires `glossary_guid` +- Categories can be nested using `parent_category_guid` +- Two categories with the same name CANNOT exist at the same level within a glossary + +## Workflow + +1. Search for existing glossary/terms/categories +2. If glossary doesn't exist, create it first +3. Create categories if needed +4. Create terms and link to glossary and categories +5. Confirm what was created with GUIDs and qualified names diff --git a/claude-plugin/skills/review-governance/SKILL.md b/claude-plugin/skills/review-governance/SKILL.md new file mode 100644 index 0000000..77c1d49 --- /dev/null +++ b/claude-plugin/skills/review-governance/SKILL.md @@ -0,0 +1,42 @@ +--- +name: review-governance +description: Review and improve data governance posture for assets. Checks descriptions, certifications, glossary terms, owners, and data quality rules. Use when users want a governance audit or want to improve asset documentation. +--- + +# Data Governance Review + +Perform a governance review of data assets in Atlan. This checks for documentation completeness, certification status, term associations, and data quality coverage. + +## Instructions + +- Parse the user's intent from: `$ARGUMENTS` + +## Review Checklist + +For each asset, check: + +1. **Description**: Does the asset have a meaningful `user_description`? +2. **Certificate**: Is it certified (VERIFIED, DRAFT, or DEPRECATED)? +3. **Owner**: Does it have assigned owners? +4. **Glossary Terms**: Are relevant business terms linked? +5. **README**: Does it have detailed documentation? +6. **Custom Metadata**: Are governance-related metadata fields populated? +7. **Lineage**: Is lineage available? +8. **Data Quality**: Are there DQ rules configured? + +## Workflow + +1. Search for the asset(s) using `semantic_search_tool` with `include_custom_metadata=true` +2. For each asset, evaluate the checklist above +3. Present a governance scorecard showing what's complete and what's missing +4. Suggest specific improvements (e.g., "Add a description", "Create a DQ rule for null checks") +5. Optionally help the user fix gaps by updating assets or creating rules + +## Output Format + +Present results as a governance report: +- Asset name and type +- Governance score (e.g., 5/8 checks passing) +- Passing checks with green indicators +- Failing checks with specific recommendations +- Priority actions to improve governance posture diff --git a/claude-plugin/skills/search-assets/SKILL.md b/claude-plugin/skills/search-assets/SKILL.md new file mode 100644 index 0000000..eb2d786 --- /dev/null +++ b/claude-plugin/skills/search-assets/SKILL.md @@ -0,0 +1,20 @@ +--- +name: search-assets +description: Search for data assets in the Atlan catalog using natural language or structured filters. Use when users ask to find tables, columns, dashboards, or any data asset. +--- + +# Search Assets in Atlan + +The user wants to search for data assets in Atlan. Use the available MCP tools to find what they're looking for. + +## Strategy + +1. **Always use semantic search** (`semantic_search_tool`) for natural language queries. This is the most flexible and user-friendly approach. + +## Instructions + +- If the query is natural language (e.g., "find customer tables"), use `semantic_search_tool` +- Always show results in a clear, organized format with asset name, type, description, and qualified name +- Include pagination info: "Showing X of Y total results" +- If results include custom metadata, display it clearly +- If no results found, suggest broadening the search or trying synonyms diff --git a/claude-plugin/skills/update-assets/SKILL.md b/claude-plugin/skills/update-assets/SKILL.md new file mode 100644 index 0000000..5b3306f --- /dev/null +++ b/claude-plugin/skills/update-assets/SKILL.md @@ -0,0 +1,37 @@ +--- +name: update-assets +description: Update data asset properties in Atlan including descriptions, certificates, README, glossary terms, and custom metadata. Use when users want to document, certify, or enrich their data assets. +--- + +# Update Data Assets + +The user wants to update properties of data assets in Atlan. + +## Instructions + +- Parse the user's intent from: `$ARGUMENTS` +- Use `update_assets_tool` to modify asset properties + +### Updatable Attributes + +1. **user_description** - Set or update the asset's description +2. **certificate_status** - Set certification: VERIFIED, DRAFT, or DEPRECATED +3. **readme** - Set a detailed README in Markdown format +4. **term** - Manage glossary term associations: + - `append`: Add terms to existing associations + - `replace`: Replace all term associations + - `remove`: Remove specific term associations +5. **custom_metadata** - Set or update custom metadata values: + - Always use `discover_custom_metadata_tool` first to find exact set and attribute names + - Can set attributes, remove specific attributes, or remove entire sets + +## Workflow + +1. Search for the target asset to get guid, name, type_name, qualified_name +2. For custom metadata: discover exact field names first +3. For terms: search for glossary terms to get their GUIDs +4. Execute the update +5. Confirm what was updated + +## Batch Updates +Multiple assets can be updated in a single call by passing a list of assets with corresponding attribute values. From 280833d2d78b05cd64715001c9a2422e7aee7222 Mon Sep 17 00:00:00 2001 From: Abhinav Mathur Date: Mon, 16 Feb 2026 22:13:35 +0530 Subject: [PATCH 2/5] refactor: remove skills, keep plugin as MCP config + CLAUDE.md only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Skills can be added later once the core plugin is stable. For now the plugin provides the MCP server connection (OAuth at mcp.atlan.com/mcp) and CLAUDE.md conventions — Claude uses the raw MCP tools directly. Co-Authored-By: Claude Opus 4.6 --- claude-plugin/.claude-plugin/marketplace.json | 2 +- claude-plugin/.claude-plugin/plugin.json | 2 +- claude-plugin/CHANGELOG.md | 17 +++---- claude-plugin/README.md | 39 ++++----------- claude-plugin/skills/data-quality/SKILL.md | 47 ------------------- claude-plugin/skills/explore-lineage/SKILL.md | 33 ------------- claude-plugin/skills/manage-domains/SKILL.md | 35 -------------- claude-plugin/skills/manage-glossary/SKILL.md | 36 -------------- .../skills/review-governance/SKILL.md | 42 ----------------- claude-plugin/skills/search-assets/SKILL.md | 20 -------- claude-plugin/skills/update-assets/SKILL.md | 37 --------------- 11 files changed, 17 insertions(+), 293 deletions(-) delete mode 100644 claude-plugin/skills/data-quality/SKILL.md delete mode 100644 claude-plugin/skills/explore-lineage/SKILL.md delete mode 100644 claude-plugin/skills/manage-domains/SKILL.md delete mode 100644 claude-plugin/skills/manage-glossary/SKILL.md delete mode 100644 claude-plugin/skills/review-governance/SKILL.md delete mode 100644 claude-plugin/skills/search-assets/SKILL.md delete mode 100644 claude-plugin/skills/update-assets/SKILL.md diff --git a/claude-plugin/.claude-plugin/marketplace.json b/claude-plugin/.claude-plugin/marketplace.json index e6e2398..4e0b370 100644 --- a/claude-plugin/.claude-plugin/marketplace.json +++ b/claude-plugin/.claude-plugin/marketplace.json @@ -12,7 +12,7 @@ { "name": "atlan", "source": "./", - "description": "Atlan data catalog plugin for Claude Code. Search, explore, govern, and manage your data assets through natural language. Includes semantic search, lineage traversal, glossary management, data quality rules, and governance workflows powered by the Atlan MCP server.", + "description": "Atlan data catalog plugin for Claude Code. Search, explore, govern, and manage your data assets through natural language. Powered by the Atlan MCP server with semantic search, lineage traversal, glossary management, data quality rules, and more.", "version": "1.0.0", "author": { "name": "Atlan", diff --git a/claude-plugin/.claude-plugin/plugin.json b/claude-plugin/.claude-plugin/plugin.json index 33d4d2f..3a624e0 100644 --- a/claude-plugin/.claude-plugin/plugin.json +++ b/claude-plugin/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "atlan", - "description": "Atlan data catalog plugin for Claude Code. Search, explore, govern, and manage your data assets through natural language. Includes semantic search, lineage traversal, glossary management, data quality rules, and governance workflows powered by the Atlan MCP server.", + "description": "Atlan data catalog plugin for Claude Code. Search, explore, govern, and manage your data assets through natural language. Powered by the Atlan MCP server with semantic search, lineage traversal, glossary management, data quality rules, and more.", "version": "1.0.0", "author": { "name": "Atlan", diff --git a/claude-plugin/CHANGELOG.md b/claude-plugin/CHANGELOG.md index 2ced484..b65a7bc 100644 --- a/claude-plugin/CHANGELOG.md +++ b/claude-plugin/CHANGELOG.md @@ -9,15 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Initial release of the Atlan Claude Code Plugin -- **8 Skills** (agent-invoked): - - `search-assets` - Natural language asset search via semantic search - - `explore-lineage` - Upstream and downstream lineage traversal - - `manage-glossary` - Glossary, term, and category management - - `manage-domains` - Data domain and product management - - `data-quality` - DQ rule creation, scheduling, and management - - `update-assets` - Asset property updates (descriptions, certificates, terms, metadata) - - `discover-metadata` - Custom metadata discovery via natural language - - `review-governance` - Governance posture auditing with scorecards -- **MCP Server Integration** via OAuth at `mcp.atlan.com/mcp` +- **MCP Server Integration** via OAuth at `mcp.atlan.com/mcp` (13 tools) + - Search & Discovery: `semantic_search_tool` + - Lineage: `traverse_lineage_tool` + - Asset Management: `update_assets_tool`, `discover_custom_metadata_tool` + - Glossary: `create_glossaries`, `create_glossary_terms`, `create_glossary_categories` + - Data Mesh: `create_domains`, `create_data_products` + - Data Quality: `create_dq_rules_tool`, `update_dq_rules_tool`, `schedule_dq_rules_tool`, `delete_dq_rules_tool` - **CLAUDE.md** with tool usage conventions and guidelines - Marketplace configuration for distribution diff --git a/claude-plugin/README.md b/claude-plugin/README.md index 71e630c..67c01dc 100644 --- a/claude-plugin/README.md +++ b/claude-plugin/README.md @@ -6,20 +6,6 @@ Connects to Atlan via OAuth at `mcp.atlan.com/mcp` - no API keys required. ## Features -### Skills (Agent-invoked) -Claude automatically uses these based on task context: - -| Skill | Description | -|-------|-------------| -| `search-assets` | Natural language search across all data assets | -| `explore-lineage` | Trace data flow upstream and downstream | -| `manage-glossary` | Create and manage business glossaries, terms, and categories | -| `manage-domains` | Create data domains, subdomains, and data products | -| `data-quality` | Create, update, schedule, and manage DQ rules | -| `update-assets` | Update descriptions, certificates, README, terms, and custom metadata | -| `discover-metadata` | Find custom metadata definitions by natural language | -| `review-governance` | Audit data governance posture with scorecards | - ### MCP Tools All powered by the Atlan MCP server: @@ -41,13 +27,13 @@ All powered by the Atlan MCP server: **From marketplace (when available):** ```shell -/plugin marketplace add atlanhq/atlan-claude-plugin +/plugin marketplace add atlanhq/agent-toolkit /plugin install atlan@atlan-marketplace ``` **From local directory (for development):** ```bash -claude --plugin-dir ./atlan-claude-plugin +claude --plugin-dir ./claude-plugin ``` ### 2. Authenticate @@ -64,25 +50,25 @@ Try searching: "Find all customer tables in Snowflake" ```bash # From the repository root -claude --plugin-dir ./atlan-claude-plugin +claude --plugin-dir ./claude-plugin ``` ### Test with multiple plugins ```bash -claude --plugin-dir ./atlan-claude-plugin --plugin-dir ./other-plugin +claude --plugin-dir ./claude-plugin --plugin-dir ./other-plugin ``` ### Debug plugin loading ```bash -claude --debug --plugin-dir ./atlan-claude-plugin +claude --debug --plugin-dir ./claude-plugin ``` ### Validate plugin structure ```bash -claude plugin validate ./atlan-claude-plugin +claude plugin validate ./claude-plugin ``` ## Examples @@ -97,19 +83,10 @@ Just talk to Claude naturally: ## Plugin Structure ``` -atlan-claude-plugin/ +claude-plugin/ ├── .claude-plugin/ │ ├── plugin.json # Plugin manifest │ └── marketplace.json # Marketplace configuration -├── skills/ # Agent-invoked skills -│ ├── search-assets/SKILL.md -│ ├── explore-lineage/SKILL.md -│ ├── manage-glossary/SKILL.md -│ ├── manage-domains/SKILL.md -│ ├── data-quality/SKILL.md -│ ├── update-assets/SKILL.md -│ ├── discover-metadata/SKILL.md -│ └── review-governance/SKILL.md ├── .mcp.json # MCP server (mcp.atlan.com/mcp via OAuth) ├── CLAUDE.md # Claude Code instructions ├── LICENSE @@ -121,7 +98,7 @@ atlan-claude-plugin/ 1. Clone the repository 2. Make your changes -3. Test locally with `claude --plugin-dir ./atlan-claude-plugin` +3. Test locally with `claude --plugin-dir ./claude-plugin` 4. Submit a pull request ## License diff --git a/claude-plugin/skills/data-quality/SKILL.md b/claude-plugin/skills/data-quality/SKILL.md deleted file mode 100644 index 256e045..0000000 --- a/claude-plugin/skills/data-quality/SKILL.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -name: data-quality -description: Create, update, schedule, and manage data quality rules in Atlan. Use when users want to set up data quality checks, monitor data health, or enforce data standards. ---- - -# Manage Data Quality Rules - -The user wants to work with data quality rules in Atlan. - -## Instructions - -- Parse the user's intent from: `$ARGUMENTS` - -### Creating Rules -Use `create_dq_rules_tool`. Supported rule types: -- **Completeness**: Null Count, Null Percentage, Blank Count, Blank Percentage -- **Statistical**: Min Value, Max Value, Average, Standard Deviation -- **Uniqueness**: Unique Count, Duplicate Count -- **Validity**: Regex, String Length, Valid Values -- **Timeliness**: Freshness (requires threshold_unit: DAYS/HOURS/MINUTES) -- **Volume**: Row Count (table-level, no column needed) -- **Custom**: Custom SQL (requires custom_sql, rule_name, dimension) - -Required fields: `rule_type`, `asset_qualified_name`, `threshold_value` -Column-level rules also require: `column_qualified_name` - -### Updating Rules -Use `update_dq_rules_tool` with the rule's `qualified_name`. - -### Scheduling Rules -Use `schedule_dq_rules_tool` with cron expression and timezone. - -### Deleting Rules -Use `delete_dq_rules_tool` with rule GUID(s). - -## Workflow - -1. Search for the target asset to get its qualified_name (and column qualified_name if needed) -2. Create appropriate DQ rules based on the user's requirements -3. Optionally schedule rule execution -4. Confirm what was created - -## Alert Priorities -- LOW, NORMAL (default), URGENT - -## Threshold Operators -- EQUAL, GREATER_THAN, GREATER_THAN_EQUAL, LESS_THAN, LESS_THAN_EQUAL, BETWEEN diff --git a/claude-plugin/skills/explore-lineage/SKILL.md b/claude-plugin/skills/explore-lineage/SKILL.md deleted file mode 100644 index 78e2841..0000000 --- a/claude-plugin/skills/explore-lineage/SKILL.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: explore-lineage -description: Explore data lineage to understand where data comes from (upstream) or where it flows to (downstream). Use when users ask about data sources, dependencies, impact analysis, or data flow. ---- - -# Explore Data Lineage - -The user wants to understand data lineage. Use `traverse_lineage_tool` to trace data flow. - -## Instructions - -- Parse the user's intent from: `$ARGUMENTS` -- First, search for the asset if only a name is provided (use `semantic_search_tool` to find the GUID) -- Then traverse lineage using `traverse_lineage_tool` with the asset's GUID -- Use `UPSTREAM` direction to find data sources (where data comes from) -- Use `DOWNSTREAM` direction to find data consumers (where data goes) -- For impact analysis, trace downstream to show what would be affected by changes -- For root cause analysis, trace upstream to find the data origin - -## Output Format - -Present lineage as a clear flow: -- Show asset names, types, and connections -- Indicate the direction of data flow -- Highlight the starting asset -- If lineage is deep, summarize the key paths - -## Common Patterns - -- "Where does this data come from?" -> UPSTREAM traversal -- "What depends on this table?" -> DOWNSTREAM traversal -- "Show me the full pipeline" -> Both UPSTREAM and DOWNSTREAM -- "Impact analysis for X" -> DOWNSTREAM traversal diff --git a/claude-plugin/skills/manage-domains/SKILL.md b/claude-plugin/skills/manage-domains/SKILL.md deleted file mode 100644 index 8544f1b..0000000 --- a/claude-plugin/skills/manage-domains/SKILL.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -name: manage-domains -description: Create and manage data domains, subdomains, and data products in Atlan. Use when users want to organize their data mesh, define domain ownership, or create data products. ---- - -# Manage Data Domains & Products - -The user wants to work with Atlan's data mesh capabilities - domains, subdomains, and data products. - -## Instructions - -- Parse the user's intent from: `$ARGUMENTS` -- Search for existing domains before creating new ones to avoid duplicates - -### Creating Domains -- Use `create_domains` with name, description, and optional certificate status -- Domain names must be unique at the top level - -### Creating Subdomains -- Use `create_domains` with `parent_domain_qualified_name` to nest under a parent domain -- Subdomain names must be unique within the same parent - -### Creating Data Products -- Use `create_data_products` - requires: - - `domain_qualified_name`: search for the domain first to get this - - `asset_guids`: search for assets to link (at least one required) -- Product names must be unique within the same domain - -## Workflow - -1. Search for existing domains to avoid duplicates and get qualified names -2. Create domain/subdomain if needed -3. Search for assets to link to data products -4. Create data products with asset links -5. Confirm creation with GUIDs and qualified names diff --git a/claude-plugin/skills/manage-glossary/SKILL.md b/claude-plugin/skills/manage-glossary/SKILL.md deleted file mode 100644 index d1575b0..0000000 --- a/claude-plugin/skills/manage-glossary/SKILL.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -name: manage-glossary -description: Create and manage business glossaries, terms, and categories in Atlan. Use when users want to define business terminology, create glossaries, add terms, or organize categories. ---- - -# Manage Business Glossary - -The user wants to work with Atlan's business glossary. This includes creating glossaries, terms, and categories. - -## Instructions - -- Parse the user's intent from: `$ARGUMENTS` -- **Before creating anything**, search first to check for existing glossaries/terms/categories to avoid duplicates -- Use `semantic_search_tool` with the glossary/term name to check existence - -### Creating Glossaries -- Use `create_glossaries` with name, description, and optional certificate status -- Certificate statuses: VERIFIED, DRAFT, DEPRECATED - -### Creating Terms -- Use `create_glossary_terms` - requires `glossary_guid` (search for the glossary first) -- Terms can optionally be assigned to categories via `category_guids` -- Two terms with the same name CANNOT exist within the same glossary - -### Creating Categories -- Use `create_glossary_categories` - requires `glossary_guid` -- Categories can be nested using `parent_category_guid` -- Two categories with the same name CANNOT exist at the same level within a glossary - -## Workflow - -1. Search for existing glossary/terms/categories -2. If glossary doesn't exist, create it first -3. Create categories if needed -4. Create terms and link to glossary and categories -5. Confirm what was created with GUIDs and qualified names diff --git a/claude-plugin/skills/review-governance/SKILL.md b/claude-plugin/skills/review-governance/SKILL.md deleted file mode 100644 index 77c1d49..0000000 --- a/claude-plugin/skills/review-governance/SKILL.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -name: review-governance -description: Review and improve data governance posture for assets. Checks descriptions, certifications, glossary terms, owners, and data quality rules. Use when users want a governance audit or want to improve asset documentation. ---- - -# Data Governance Review - -Perform a governance review of data assets in Atlan. This checks for documentation completeness, certification status, term associations, and data quality coverage. - -## Instructions - -- Parse the user's intent from: `$ARGUMENTS` - -## Review Checklist - -For each asset, check: - -1. **Description**: Does the asset have a meaningful `user_description`? -2. **Certificate**: Is it certified (VERIFIED, DRAFT, or DEPRECATED)? -3. **Owner**: Does it have assigned owners? -4. **Glossary Terms**: Are relevant business terms linked? -5. **README**: Does it have detailed documentation? -6. **Custom Metadata**: Are governance-related metadata fields populated? -7. **Lineage**: Is lineage available? -8. **Data Quality**: Are there DQ rules configured? - -## Workflow - -1. Search for the asset(s) using `semantic_search_tool` with `include_custom_metadata=true` -2. For each asset, evaluate the checklist above -3. Present a governance scorecard showing what's complete and what's missing -4. Suggest specific improvements (e.g., "Add a description", "Create a DQ rule for null checks") -5. Optionally help the user fix gaps by updating assets or creating rules - -## Output Format - -Present results as a governance report: -- Asset name and type -- Governance score (e.g., 5/8 checks passing) -- Passing checks with green indicators -- Failing checks with specific recommendations -- Priority actions to improve governance posture diff --git a/claude-plugin/skills/search-assets/SKILL.md b/claude-plugin/skills/search-assets/SKILL.md deleted file mode 100644 index eb2d786..0000000 --- a/claude-plugin/skills/search-assets/SKILL.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: search-assets -description: Search for data assets in the Atlan catalog using natural language or structured filters. Use when users ask to find tables, columns, dashboards, or any data asset. ---- - -# Search Assets in Atlan - -The user wants to search for data assets in Atlan. Use the available MCP tools to find what they're looking for. - -## Strategy - -1. **Always use semantic search** (`semantic_search_tool`) for natural language queries. This is the most flexible and user-friendly approach. - -## Instructions - -- If the query is natural language (e.g., "find customer tables"), use `semantic_search_tool` -- Always show results in a clear, organized format with asset name, type, description, and qualified name -- Include pagination info: "Showing X of Y total results" -- If results include custom metadata, display it clearly -- If no results found, suggest broadening the search or trying synonyms diff --git a/claude-plugin/skills/update-assets/SKILL.md b/claude-plugin/skills/update-assets/SKILL.md deleted file mode 100644 index 5b3306f..0000000 --- a/claude-plugin/skills/update-assets/SKILL.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -name: update-assets -description: Update data asset properties in Atlan including descriptions, certificates, README, glossary terms, and custom metadata. Use when users want to document, certify, or enrich their data assets. ---- - -# Update Data Assets - -The user wants to update properties of data assets in Atlan. - -## Instructions - -- Parse the user's intent from: `$ARGUMENTS` -- Use `update_assets_tool` to modify asset properties - -### Updatable Attributes - -1. **user_description** - Set or update the asset's description -2. **certificate_status** - Set certification: VERIFIED, DRAFT, or DEPRECATED -3. **readme** - Set a detailed README in Markdown format -4. **term** - Manage glossary term associations: - - `append`: Add terms to existing associations - - `replace`: Replace all term associations - - `remove`: Remove specific term associations -5. **custom_metadata** - Set or update custom metadata values: - - Always use `discover_custom_metadata_tool` first to find exact set and attribute names - - Can set attributes, remove specific attributes, or remove entire sets - -## Workflow - -1. Search for the target asset to get guid, name, type_name, qualified_name -2. For custom metadata: discover exact field names first -3. For terms: search for glossary terms to get their GUIDs -4. Execute the update -5. Confirm what was updated - -## Batch Updates -Multiple assets can be updated in a single call by passing a list of assets with corresponding attribute values. From 6b9ec0f8c67b36971765e4ee32f6384810cbcb40 Mon Sep 17 00:00:00 2001 From: Abhinav Mathur Date: Mon, 16 Feb 2026 22:27:31 +0530 Subject: [PATCH 3/5] =?UTF-8?q?docs:=20update=20tool=20list=20=E2=80=94=20?= =?UTF-8?q?15=20tools,=20remove=20discover=5Fcustom=5Fmetadata?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Removed discover_custom_metadata_tool (not in production) - Added search_assets_tool, get_assets_by_dsl_tool, query_assets_tool - Documented 12 default tools + 3 feature-flagged per tenant - Updated CLAUDE.md, README.md, CHANGELOG.md Co-Authored-By: Claude Opus 4.6 --- claude-plugin/CHANGELOG.md | 5 ++-- claude-plugin/CLAUDE.md | 56 ++++++++++++++++++++++++++++++++++++++ claude-plugin/README.md | 8 ++++-- 3 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 claude-plugin/CLAUDE.md diff --git a/claude-plugin/CHANGELOG.md b/claude-plugin/CHANGELOG.md index b65a7bc..4a7966c 100644 --- a/claude-plugin/CHANGELOG.md +++ b/claude-plugin/CHANGELOG.md @@ -9,12 +9,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Initial release of the Atlan Claude Code Plugin -- **MCP Server Integration** via OAuth at `mcp.atlan.com/mcp` (13 tools) +- **MCP Server Integration** via OAuth at `mcp.atlan.com/mcp` (15 tools) - Search & Discovery: `semantic_search_tool` - Lineage: `traverse_lineage_tool` - - Asset Management: `update_assets_tool`, `discover_custom_metadata_tool` + - Asset Management: `update_assets_tool` - Glossary: `create_glossaries`, `create_glossary_terms`, `create_glossary_categories` - Data Mesh: `create_domains`, `create_data_products` - Data Quality: `create_dq_rules_tool`, `update_dq_rules_tool`, `schedule_dq_rules_tool`, `delete_dq_rules_tool` + - Feature-flagged: `search_assets_tool`, `get_assets_by_dsl_tool`, `query_assets_tool` - **CLAUDE.md** with tool usage conventions and guidelines - Marketplace configuration for distribution diff --git a/claude-plugin/CLAUDE.md b/claude-plugin/CLAUDE.md new file mode 100644 index 0000000..0618288 --- /dev/null +++ b/claude-plugin/CLAUDE.md @@ -0,0 +1,56 @@ +# Atlan Plugin for Claude Code + +You have access to Atlan's data catalog through MCP tools. The Atlan MCP server connects via OAuth at `mcp.atlan.com/mcp` - no API keys required. Use these tools to help users search, explore, govern, and manage their data assets. + +## Authentication + +The Atlan MCP server uses OAuth 2.1 authentication. Users authenticate via the `/mcp` command in Claude Code, which opens a browser-based login flow. No API keys or environment variables are needed. + +## Available MCP Tools + +12 tools are enabled by default for most customers. 3 additional tools are available but require enablement per tenant via feature flags. + +### Search & Discovery +- **`semantic_search_tool`** - Natural language search across all data assets using AI-powered semantic understanding. +- **`search_assets_tool`** *(not enabled by default)* - Search assets using structured filters and conditions. +- **`get_assets_by_dsl_tool`** *(not enabled by default)* - Query assets using Atlan's DSL (Domain Specific Language) for advanced filtering. + +### Lineage +- **`traverse_lineage_tool`** - Trace data flow upstream (where data comes from) or downstream (where data goes). + +### Asset Management +- **`update_assets_tool`** - Update asset descriptions, certificates, README, terms, or custom metadata. + +### Query +- **`query_assets_tool`** *(not enabled by default)* - Execute SQL queries against connected data sources. + +### Glossary +- **`create_glossaries`** - Create new glossaries. +- **`create_glossary_terms`** - Create terms within glossaries. +- **`create_glossary_categories`** - Create categories within glossaries. + +### Data Mesh +- **`create_domains`** - Create data domains and subdomains. +- **`create_data_products`** - Create data products linked to domains and assets. + +### Data Quality +- **`create_dq_rules_tool`** - Create data quality rules (null checks, uniqueness, regex, custom SQL, etc.). +- **`update_dq_rules_tool`** - Update existing DQ rules. +- **`schedule_dq_rules_tool`** - Schedule DQ rule execution with cron expressions. +- **`delete_dq_rules_tool`** - Delete DQ rules. + +## Conventions + +- Use `semantic_search_tool` as the primary search method for discovery queries. +- For glossary terms and categories, search first to check for existing assets before creating duplicates. +- When creating data products, use search to find asset GUIDs to link. +- Certificate statuses are: `VERIFIED`, `DRAFT`, `DEPRECATED`. +- Lineage directions are: `UPSTREAM` (sources) or `DOWNSTREAM` (consumers). +- Always include pagination context when presenting search results (showing X of Y total). + +## Error Handling + +- If authentication fails, prompt the user to run `/mcp` and authenticate with their Atlan instance. +- If a search returns no results, suggest broadening the query or trying alternative terms. +- If an update fails, check that the asset GUID and qualified_name are correct. +- If a tool returns a "not enabled" error, the tool may not be enabled for the user's tenant. diff --git a/claude-plugin/README.md b/claude-plugin/README.md index 67c01dc..017d99c 100644 --- a/claude-plugin/README.md +++ b/claude-plugin/README.md @@ -7,15 +7,19 @@ Connects to Atlan via OAuth at `mcp.atlan.com/mcp` - no API keys required. ## Features ### MCP Tools -All powered by the Atlan MCP server: +15 tools powered by the Atlan MCP server. 12 enabled by default, 3 additional tools available per tenant via feature flags. +**Enabled by default (12):** - **Search**: `semantic_search_tool` - **Lineage**: `traverse_lineage_tool` -- **Updates**: `update_assets_tool`, `discover_custom_metadata_tool` +- **Assets**: `update_assets_tool` - **Glossary**: `create_glossaries`, `create_glossary_terms`, `create_glossary_categories` - **Data Mesh**: `create_domains`, `create_data_products` - **Data Quality**: `create_dq_rules_tool`, `update_dq_rules_tool`, `schedule_dq_rules_tool`, `delete_dq_rules_tool` +**Available via feature flag (3):** +- `search_assets_tool`, `get_assets_by_dsl_tool`, `query_assets_tool` + ## Prerequisites - [Claude Code](https://claude.com/claude-code) v1.0.33 or later From f4adc8c15e8bd0d6d893c62b17e04db044d33b31 Mon Sep 17 00:00:00 2001 From: Abhinav Mathur Date: Tue, 17 Feb 2026 12:33:16 +0530 Subject: [PATCH 4/5] chore: update LICENSE to match application-sdk format --- claude-plugin/LICENSE | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/claude-plugin/LICENSE b/claude-plugin/LICENSE index 7fa7064..261eeb9 100644 --- a/claude-plugin/LICENSE +++ b/claude-plugin/LICENSE @@ -48,7 +48,7 @@ "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally - submitted to the Licensor for inclusion in the Work by the copyright owner + submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent @@ -60,7 +60,7 @@ designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by the Licensor and + on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of @@ -106,7 +106,7 @@ (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained - within such NOTICE file, excluding any notices that do not + within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or @@ -175,7 +175,18 @@ END OF TERMS AND CONDITIONS - Copyright 2025 Atlan Pte. Ltd. + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From 88818063032aa26e5d920eb14440dacb6e08d404 Mon Sep 17 00:00:00 2001 From: Abhinav Mathur Date: Tue, 17 Feb 2026 12:36:47 +0530 Subject: [PATCH 5/5] fix: correct year in CHANGELOG to 2026 --- claude-plugin/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/claude-plugin/CHANGELOG.md b/claude-plugin/CHANGELOG.md index 4a7966c..f756a80 100644 --- a/claude-plugin/CHANGELOG.md +++ b/claude-plugin/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to the Atlan Claude Code Plugin will be documented in this f The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [1.0.0] - 2025-02-16 +## [1.0.0] - 2026-02-16 ### Added - Initial release of the Atlan Claude Code Plugin