A Model Context Protocol (MCP) server for interacting with the Devici API. This server provides LLM tools to manage users, collections, threat models, components, threats, mitigations, teams, and dashboard data through the Devici platform.
The Devici MCP Server provides tools for:
- Get users with pagination
- Get specific user by ID
- Search users by field and text
- Invite new users
- Get collections with pagination
- Get specific collection by ID
- Create new collections
- Get all threat models with pagination
- Get threat models by collection
- Get specific threat model by ID
- Create new threat models
- Get components with pagination
- Get specific component by ID
- Get components by canvas
- Create new components
- Get threats with pagination
- Get specific threat by ID
- Get threats by component
- Create new threats
- Get mitigations with pagination
- Get specific mitigation by ID
- Get mitigations by threat
- Create new mitigations
- Get teams with pagination
- Get specific team by ID
- Get team users
- Create new teams
- Get dashboard data
- Get report data
- Get threat model statistics
- Get comments with pagination
- Get specific comment by ID
- Get audit logs
- Get codex attributes
- Get codex mitigations
- Get codex threats
uvx git+https://github.com/geoffwhittington/devici-mcp.git
uvx devici-mcp-server
uv pip install git+https://github.com/geoffwhittington/devici-mcp.git
devici-mcp-server
uv pip install devici-mcp-server
devici-mcp-server
pip install git+https://github.com/geoffwhittington/devici-mcp.git
devici-mcp-server
pip install devici-mcp-server
devici-mcp-server
The server requires three environment variables:
DEVICI_API_BASE_URL
: Your Devici instance URL (e.g.,https://api.devici.com/v1
)DEVICI_CLIENT_ID
: Your Devici client IDDEVICI_CLIENT_SECRET
: Your Devici client secret
export DEVICI_API_BASE_URL="https://api.devici.com/v1"
export DEVICI_CLIENT_ID="your-client-id-here"
export DEVICI_CLIENT_SECRET="your-client-secret-here"
Create a .env
file in your working directory:
DEVICI_API_BASE_URL=https://api.devici.com/v1
DEVICI_CLIENT_ID=your-client-id-here
DEVICI_CLIENT_SECRET=your-client-secret-here
- Log into your Devici instance
- Go to Settings > API Access
- Generate a new client ID and secret
- Copy the values for use as
DEVICI_CLIENT_ID
andDEVICI_CLIENT_SECRET
Add this to your Claude Desktop configuration file:
{
"mcpServers": {
"devici": {
"command": "uvx",
"args": ["git+https://github.com/geoffwhittington/devici-mcp.git"],
"env": {
"DEVICI_API_BASE_URL": "https://api.devici.com/v1",
"DEVICI_CLIENT_ID": "your-client-id-here",
"DEVICI_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
{
"mcpServers": {
"devici": {
"command": "uvx",
"args": ["devici-mcp-server"],
"env": {
"DEVICI_API_BASE_URL": "https://api.devici.com/v1",
"DEVICI_CLIENT_ID": "your-client-id-here",
"DEVICI_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
Add this to your Cline MCP settings:
{
"mcpServers": {
"devici": {
"command": "uvx",
"args": ["git+https://github.com/geoffwhittington/devici-mcp.git"],
"env": {
"DEVICI_API_BASE_URL": "https://api.devici.com/v1",
"DEVICI_CLIENT_ID": "your-client-id-here",
"DEVICI_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
Add this to your Continue configuration:
{
"mcpServers": {
"devici": {
"command": "uvx",
"args": ["git+https://github.com/geoffwhittington/devici-mcp.git"],
"env": {
"DEVICI_API_BASE_URL": "https://api.devici.com/api/v1",
"DEVICI_CLIENT_ID": "your-client-id-here",
"DEVICI_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
Add this to your Cursor configuration file:
{
"mcpServers": {
"devici": {
"command": "uvx",
"args": ["git+https://github.com/geoffwhittington/devici-mcp.git"],
"env": {
"DEVICI_API_BASE_URL": "https://api.devici.com/api/v1",
"DEVICI_CLIENT_ID": "your-client-id-here",
"DEVICI_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
If you have the package installed locally:
{
"mcpServers": {
"devici": {
"command": "devici-mcp-server",
"env": {
"DEVICI_API_BASE_URL": "https://api.devici.com/api/v1",
"DEVICI_CLIENT_ID": "your-client-id-here",
"DEVICI_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
{
"mcpServers": {
"devici": {
"command": "python",
"args": ["-m", "devici_mcp_server"],
"env": {
"DEVICI_API_BASE_URL": "https://api.devici.com/api/v1",
"DEVICI_CLIENT_ID": "your-client-id-here",
"DEVICI_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
- uv installed
- Python 3.10 or higher
# Clone the repository
git clone <repository-url>
cd devici-mcp
# Create virtual environment and install dependencies
uv sync
# Run in development mode
uv run python -m devici_mcp_server
# Run the import test
uv run python test_basic.py
# Test with environment variables
DEVICI_API_BASE_URL=https://api.devici.com/api/v1 DEVICI_CLIENT_ID=test DEVICI_CLIENT_SECRET=test uv run python -m devici_mcp_server
# Build the package
uv build
# Install locally for testing
uv pip install dist/*.whl
- Full API Coverage: Supports all major Devici API endpoints
- Authentication: Secure client ID/secret-based authentication
- Error Handling: Comprehensive error handling and validation
- Environment Configuration: Flexible configuration via environment variables
- Modern Python: Built with modern Python packaging (uv, pyproject.toml)
- MCP Compliant: Fully compatible with the Model Context Protocol
This server provides access to:
- Users and Teams
- Collections and Threat Models
- Components and Threats
- Mitigations and Comments
- Dashboard Data and Reports
- Audit Logs and Codex Integration
- Search and Bulk Operations
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
For issues and questions:
- Check the Issues page
- Review the Devici API documentation
- Ensure your API credentials have proper permissions
Note: This is an unofficial MCP server for Devici. For official Devici support, please contact the Devici team.