A Model Context Protocol (MCP) server that provides AI agents with access to development best practices, security guidelines, and coding standards across multiple programming languages and frameworks.
- Plugin Architecture: Extensible system for adding new languages and frameworks
- In-Memory Storage: Fast in-memory data store for instant querying
- Dynamic CSV Loading: Automatically loads all CSV files from plugin data directories
- 284+ Coding Standards: Comprehensive coverage of security, accessibility, performance, and best practices
- MCP Tools: Four tools for querying standards:
get_standards
: Filter by category, subcategory, and severitysearch_standards
: Full-text search across all standardsget_categories
: List all available categoriesget_standard_by_id
: Get details for a specific standard
The server currently includes 284+ coding standards across these categories:
- Coding Standards (130+ standards): PHP standards, PSR-4 compliance, naming conventions, code organization, documentation
- Security (70 standards): SQL injection, XSS, CSRF, access control, file uploads, authentication, input validation
- Best Practices (16 standards): Field API, dependency injection, configuration management, entity handling
- Frontend (11 standards): Theme development, responsive design, CSS/JS aggregation, Twig templates
- Accessibility (8 standards): WCAG compliance, ARIA attributes, semantic HTML, keyboard navigation
- Testing (7 standards): PHPUnit, Behat, functional testing, test coverage, mocking
- Documentation (7 standards): Code comments, README files, API documentation, DocBlocks
- API (6 standards): REST, JSON:API, GraphQL best practices, HTTP methods
- Build (6 standards): Build processes, optimization, asset management
- DevOps (6 standards): CI/CD, deployment, environment management, GitHub Actions
- Database (5 standards): Schema design, migrations, query optimization, Database API
- Integration (5 standards): Third-party integrations, external services, APIs
- Git (4 standards): Git workflows, commit messages, branching strategies
- JavaScript (3 standards): Drupal behaviors, modern JS patterns, optimization
- Configuration (1 standard): Configuration management
- Forms (1 standard): Form API and handling
- Hooks (1 standard): Hook implementations
- Twig (1 standard): Template best practices
- OWASP Top 10 2021: Critical security vulnerabilities including broken access control, cryptographic failures, injection attacks, insecure design, security misconfiguration, vulnerable components, identification failures, software integrity failures, logging failures, and server-side request forgery
- Clone the repository:
git clone https://github.com/yourusername/devstandards-mcp.git
cd devstandards-mcp
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Copy the environment configuration:
cp .env.example .env
./devstandards-server
source venv/bin/activate
python -m src.server
Run the test suite:
python -m pytest tests/ -v
devstandards-mcp/
├── src/
│ ├── server.py # MCP server implementation
│ ├── config.py # Configuration management
│ ├── plugins/ # Plugin system
│ │ ├── base.py # Base plugin class
│ │ ├── manager.py # Plugin manager
│ │ └── drupal.py # Drupal standards plugin
│ └── data/ # Data storage layer
│ ├── database.py # Compatibility wrapper
│ └── memory_store.py # In-memory data store
├── data/ # Standards data files
│ ├── drupal/
│ │ └── drupal_standards.csv
│ └── owasp/
│ ├── owasp_top10_2021.csv
│ └── OWASP_RESOURCES.md
├── tests/ # Test suite
├── requirements.txt # Python dependencies
└── README.md # This file
Create or edit any CSV file in the plugin's data directory (data/{plugin_name}/*.csv
). The plugin will automatically load all CSV files:
id,category,subcategory,title,description,severity,examples,references,tags,rationale,fix_guidance
NEW001,drupal_security,new_issue,New Security Issue,Description here,high,"{""good"": ""example"", ""bad"": ""example""}","[""https://example.com""]",security|new,Why this matters,How to fix it
Note: The Drupal plugin dynamically loads all CSV files from data/drupal/
, so you can organize standards into multiple files (e.g., security_standards.csv
, performance_standards.csv
, etc.)
- Create a new plugin file in
src/plugins/
:
from .base import StandardsPlugin, Standard
class MyPlugin(StandardsPlugin):
@property
def name(self) -> str:
return "myplugin"
# ... implement required methods
- Create data directory and CSV file:
mkdir data/myplugin
# Add your CSV file with standards
Add this to your Claude Desktop configuration file (~/Library/Application Support/Claude/claude_desktop_config.json
on macOS):
{
"mcpServers": {
"devstandards": {
"command": "/path/to/devstandards-mcp/devstandards-server"
}
}
}
After adding the configuration, restart Claude Desktop.
Continue.dev is an AI coding assistant for VSCode that supports MCP servers.
- Install the Continue extension in VSCode
- Open Continue's configuration (
~/.continue/config.json
) - Add the MCP server configuration:
{
"models": [...],
"mcpServers": {
"devstandards": {
"command": "/path/to/devstandards-mcp/devstandards-server"
}
}
}
Cursor supports MCP servers through its AI configuration:
- Open Cursor Settings (Cmd+, on macOS)
- Navigate to "AI" → "Model Context Protocol"
- Add server configuration:
{
"devstandards": {
"command": "/path/to/devstandards-mcp/devstandards-server",
"description": "Drupal coding standards and best practices"
}
}
For Zed editor with AI assistant features:
- Open Zed settings (
~/.config/zed/settings.json
) - Add to the assistant configuration:
{
"assistant": {
"mcp_servers": {
"devstandards": {
"command": "/path/to/devstandards-mcp/devstandards-server"
}
}
}
}
For any MCP-compatible client, use these settings:
- Command:
/path/to/devstandards-mcp/devstandards-server
- Protocol: stdio (standard input/output)
- Transport: JSON-RPC over stdio
- Initialization: No special parameters required
You can also use the MCP server programmatically:
import subprocess
import json
# Start the server
proc = subprocess.Popen(
["/path/to/devstandards-mcp/devstandards-server"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
text=True
)
# Send a request
request = {
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_standards",
"arguments": {
"category": "drupal_security",
"severity": "critical"
}
},
"id": 1
}
proc.stdin.write(json.dumps(request) + "\n")
proc.stdin.flush()
# Read response
response = json.loads(proc.stdout.readline())
print(response)
If you encounter issues:
- Check logs: Most MCP clients provide debug logs
- Test manually: Run
echo '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}},"id":1}' | ./devstandards-server
- Verify paths: Ensure the executable path is correct and the file is executable (
chmod +x devstandards-server
) - Python environment: The server uses its own virtual environment, no need to activate it
Once connected, the following tools are available to AI assistants:
Query coding standards with filters:
- category: Filter by category (e.g., "drupal_security", "drupal_performance")
- subcategory: Filter by subcategory (e.g., "sql_injection", "xss")
- severity: Filter by severity level ("critical", "high", "medium", "low", "info")
- limit: Maximum number of results (default: 50)
Example query: "Show me all critical security standards for Drupal"
Full-text search across all standards:
- query: Search text (required)
- categories: List of categories to search within (optional)
- tags: List of tags to filter by (optional)
- limit: Maximum number of results (default: 50)
Example query: "Search for standards about SQL injection"
List all available categories with descriptions and counts.
Example query: "What categories of standards are available?"
Get detailed information about a specific standard:
- standard_id: The unique identifier (e.g., "DS001", "SEC001")
Example query: "Show me details for standard DS001"
When using an MCP client with this server, you can ask:
- "What are the critical security standards I should follow for Drupal?"
- "Show me best practices for Drupal forms"
- "Search for standards about caching and performance"
- "How should I handle user input to prevent XSS attacks?"
- "What's the proper way to use Drupal's Database API?"
- "List all accessibility standards"
- "Show me examples of good vs bad code for SQL queries"
- "What are the OWASP Top 10 2021 vulnerabilities and how to prevent them?"
- "Show me critical security standards across all categories"
- "Search for standards about broken access control"
- Fork the repository
- Create a feature branch
- Add your changes
- Write tests
- Submit a pull request
MIT License - see LICENSE file for details