Back to Articles

Building Role-Specific AI Assistants: Inside Anthropic's Plugin System for Claude

[ View on GitHub ]

Building Role-Specific AI Assistants: Inside Anthropic's Plugin System for Claude

Hook

What if extending your AI assistant required zero code—just markdown files describing what it should know and JSON defining which tools it can access? That's the radical simplicity behind Anthropic's plugin architecture.

Context

Generic AI assistants face a fundamental problem: they know everything and nothing. Ask Claude or ChatGPT about sales pipeline management, and you'll get reasonable generic advice. But they don't know your CRM's custom fields, your company's qualification criteria, or how your team actually runs deals. They can't pull your pipeline data, update opportunity stages, or trigger your specific workflows.

The traditional solution—training custom models or building complex agent systems with LangChain—requires significant engineering investment. Data scientists retrain models on company documents. Engineers build API integrations and manage infrastructure. Meanwhile, the domain experts who actually understand sales processes or legal workflows are locked out of customization. Anthropic's knowledge-work-plugins takes a different approach: make plugin creation so simple that a sales manager or legal counsel can customize their AI assistant by editing text files. No Python required. No model training. Just structured instructions in markdown and tool connections via configuration files.

Technical Insight

The plugin architecture consists of four core components working in concert. At the root, each plugin has a plugin.json manifest that defines metadata, dependencies, and capabilities. Here's what a simplified sales plugin manifest looks like:

{
  "name": "sales-assistant",
  "version": "1.0.0",
  "description": "Sales workflows and CRM integration",
  "skills": [
    "skills/qualification.md",
    "skills/objection-handling.md"
  ],
  "commands": [
    "commands/pipeline-review.md"
  ],
  "mcp_servers": [
    "servers/salesforce.mcp.json"
  ]
}

Skills are the most interesting architectural choice. Rather than hardcoding behaviors, skills are markdown documents containing domain knowledge and reasoning patterns that Claude applies automatically when relevant. A qualification skill might contain your BANT framework, ideal customer profile criteria, and examples of good qualification questions. When a user discusses a new lead, Claude sees this skill in context and applies that knowledge without explicit invocation. This passive activation model means the AI gets smarter for specific roles without users needing to remember magic commands.

Commands take the opposite approach—they're explicit slash commands for repeatable workflows. A /pipeline-review command might be defined in markdown like this:

# Pipeline Review Command

## Trigger
/pipeline-review [time_period]

## Workflow
1. Connect to CRM via Salesforce MCP server
2. Query all opportunities in stages: Qualified, Demo, Proposal
3. For each opportunity:
   - Calculate days in current stage
   - Check if next activity is scheduled
   - Flag if stage duration exceeds historical average
4. Present findings grouped by risk level
5. For high-risk deals, suggest specific actions

## Output Format
- Summary statistics (total pipeline value, weighted forecast)
- At-risk deals table with age, next steps, recommendations
- Healthy deals summary

Claude interprets these instructions and executes them using available tools. The genius is that anyone who can write clear process documentation can create commands—no need to learn function calling APIs or manage state machines.

The MCP (Model Context Protocol) integration is where plugins connect to actual tools. An MCP server configuration might look like:

{
  "server_name": "salesforce",
  "protocol": "mcp",
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-salesforce"],
  "env": {
    "SALESFORCE_INSTANCE_URL": "${SALESFORCE_INSTANCE_URL}",
    "SALESFORCE_ACCESS_TOKEN": "${SALESFORCE_ACCESS_TOKEN}"
  }
}

This configuration spawns an MCP server process that Claude can query. The server exposes tools like search_opportunities, update_opportunity, and get_account_details. Claude decides when to invoke these tools based on user intent and the workflow instructions in commands or skills. The MCP abstraction means you can swap CRM providers by changing one configuration file—your skills and commands stay the same.

The file-based architecture has profound implications for version control and collaboration. Your entire plugin system lives in Git. Diff reviews show exactly what changed in your sales qualification criteria or legal clause library. Teams can fork Anthropic's base plugins, customize them with company-specific knowledge, and maintain updates through branch merges. One company might modify the sales plugin to add their unique discovery methodology; another might add integrations to their specific data warehouse. This organizational customization layer turns generic AI into a company-specific knowledge system.

What makes this architecture surprisingly powerful is the composability. A single user session might load plugins for sales, product management, and data analysis. Claude sees all their skills simultaneously—understanding both go-to-market strategy and SQL query patterns. When discussing pricing strategy, it can pull competitive intelligence from your CRM (sales plugin), reference feature usage data (analytics plugin), and structure proposals with your standard terms (legal plugin). The plugins don't conflict because they're just context, not code with potential namespace collisions.

Gotcha

The plugin system's simplicity comes with real constraints. Most critically, this only works within Claude Cowork or Claude Code—these aren't portable to other AI assistants or standalone applications. If your organization uses multiple AI tools or wants flexibility to switch providers, you're building on a single-vendor platform. The file-based approach also means there's no real programming logic—you can't write custom data transformations, implement complex state management, or build sophisticated error handling. You're limited to what Claude can interpret from natural language instructions and what MCP servers expose.

MCP server maturity varies wildly across tools. Popular platforms like Salesforce, Notion, and Slack have solid MCP implementations, but enterprise-specific tools or older systems likely don't. Building custom MCP servers requires actual development work (usually in Python or TypeScript), which defeats the low-code promise for those integrations. Additionally, the generic plugins Anthropic provides are more templates than production-ready solutions. A company can't just install the sales plugin and go—it requires substantial customization to encode specific methodologies, terminology, and workflows. Budget time for domain experts to translate their knowledge into skills and commands, then iterate based on actual usage patterns.

Verdict

Use if: You're committed to Claude as your AI platform and want to extend it for specific business functions without building complex agent systems. The file-based approach shines when domain experts (not just engineers) need to customize AI behavior with company-specific knowledge. Perfect for teams with strong process documentation who can translate existing workflows into markdown instructions, and when you need role-specific AI that integrates with 3-5 core tools via MCP. Skip if: You need tool-agnostic solutions that work across multiple AI providers, require complex custom logic beyond natural language instructions, or don't have organizational commitment to maintaining and customizing plugins. Also skip if your critical integrations lack MCP servers and you can't invest in building them—you'll be locked out of the ecosystem's main value proposition.

// ADD TO YOUR README
[![Featured on Starlog](https://starlog.is/api/badge/ai-dev-tools/anthropics-knowledge-work-plugins.svg)](https://starlog.is/api/badge-click/ai-dev-tools/anthropics-knowledge-work-plugins)