diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json new file mode 100644 index 0000000..83c7909 --- /dev/null +++ b/.cursor-plugin/plugin.json @@ -0,0 +1,26 @@ +{ + "name": "arcjet", + "version": "1.0.0", + "description": "Runtime security for your app — abuse protection, budget controls & rate limiting, prompt injection detection, and PII blocking. Connects your AI agent to the Arcjet MCP server and provides security-aware coding guidance.", + "author": { + "name": "Arcjet", + "email": "support@arcjet.com", + "url": "https://arcjet.com" + }, + "homepage": "https://arcjet.com", + "repository": "https://github.com/arcjet/arcjet-plugin", + "license": "Apache-2.0", + "logo": "./assets/logo.svg", + "keywords": [ + "security", + "rate-limiting", + "bot-detection", + "abuse-protection", + "budget-controls", + "waf", + "ai-security", + "prompt-injection", + "pii", + "arcjet" + ] +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e86cd2f..73551df 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,27 +4,32 @@ Thanks for your interest in contributing to the Arcjet plugin for AI coding agen ## Plugin Specification -This plugin follows the [Open Plugins Specification v1.0.0](https://open-plugins.com/plugin-builders/specification). Key structural requirements: +This plugin follows the [Open Plugins Specification v1.0.0](https://open-plugins.com/plugin-builders/specification) and is also compatible with [Claude Code](https://docs.claude.com/en/docs/claude-code/plugins) and [Cursor](https://cursor.com/docs/reference/plugins). To support all three, the manifest and MCP config are duplicated into each tool's expected location. Key structural requirements: -- **Manifest** at `.plugin/plugin.json` — must include `name`, `version`, `description`, `author`, `license`, and `logo` +- **Manifest** at `.plugin/plugin.json` (Open Plugins), `.claude-plugin/plugin.json` (Claude Code), and `.cursor-plugin/plugin.json` (Cursor) — all three must stay in sync and include `name`, `version`, `description`, `author`, `license`, and `logo` - **Rules** in `rules/` as `.mdc` files with YAML frontmatter (`description`, `globs`, `alwaysApply`) - **Skills** in `skills//SKILL.md` with YAML frontmatter (`name`, `description`) - **Agents** in `agents/` as `.md` files with YAML frontmatter (`name`, `description`) -- **MCP servers** in `.mcp.json` at the repo root +- **MCP servers** in `.mcp.json` (Open Plugins / Claude Code) and `mcp.json` (Cursor) at the repo root — both must stay in sync - **Assets** in `assets/` (logo, etc.) ## Directory Structure ``` -.plugin/plugin.json # Plugin manifest -rules/*.mdc # Auto-activated coding guidance -skills/*/SKILL.md # Task-oriented workflows -agents/*.md # Agent definitions -.mcp.json # MCP server configuration -scripts/ # Tooling (validation, etc.) -assets/ # Static assets +.plugin/plugin.json # Plugin manifest (Open Plugins) +.claude-plugin/plugin.json # Plugin manifest (Claude Code) +.cursor-plugin/plugin.json # Plugin manifest (Cursor) +rules/*.mdc # Auto-activated coding guidance +skills/*/SKILL.md # Task-oriented workflows +agents/*.md # Agent definitions +.mcp.json # MCP server configuration (Open Plugins / Claude Code) +mcp.json # MCP server configuration (Cursor) +scripts/ # Tooling (validation, etc.) +assets/ # Static assets ``` +When updating any manifest or MCP config, update all copies so the tools stay in sync. + ## Development Setup Open this repo in a devcontainer (VS Code or GitHub Codespaces) — it installs all tooling automatically. Alternatively, install [dprint](https://dprint.dev/) manually. diff --git a/mcp.json b/mcp.json new file mode 100644 index 0000000..167ba48 --- /dev/null +++ b/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "arcjet": { + "type": "http", + "url": "https://api.arcjet.com/mcp" + } + } +}