DevGrid MCP Server
The DevGrid MCP server lets you query your DevGrid data directly from AI assistants that support the Model Context Protocol spec.
Once connected, you can ask your AI assistant questions like "show me all critical vulnerabilities", "what components does the payments app depend on?", or "give me a portfolio overview" and it will call DevGrid tools to get live answers.
Connecting Your Client
Server URL
https://prod.api.devgrid.io/mcp
Claude Desktop
Add this to your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"devgrid": {
"url": "https://prod.api.devgrid.io/mcp"
}
}
}Restart Claude Desktop. You will be prompted to log in with your DevGrid account the first time.
Claude.ai
Go to Settings, scroll to MCP Servers, click "Add Server", and enter the server URL above.
Cursor / Windsurf
Add to your .cursor/mcp.json or equivalent config:
{
"mcpServers": {
"devgrid": {
"url": "https://prod.api.devgrid.io/mcp"
}
}
}Claude Code
claude mcp add devgrid --transport streamable-http https://prod.api.devgrid.io/mcpAuthentication
The server uses OAuth 2.1 with PKCE. Most MCP clients handle this automatically:
- Your client discovers the auth configuration from the server
- A browser window opens for you to log in with your DevGrid credentials
- After login, the client stores your token and authenticates automatically
All data is scoped to your DevGrid account. You will only see entities belonging to your organization.
Permissions
Most tools are available to all authenticated users. Some tools require additional permissions:
- Vulnerability tools require
read:vulnerability - Repository tools require
read:repository
If you get an "Access denied" error, contact your DevGrid admin to grant the required permission.
Available Tools
Search
| Tool | Description | Parameters |
|---|---|---|
search | Search across entities, relationships, and blueprints in a single query | query (required), limit (1-100, default 10), type (array of entity types to filter) |
Components
| Tool | Description | Parameters |
|---|---|---|
components_list | List software components | name, shortId, status, limit, offset |
components_get | Get a component by ID | id |
components_dependencies | Get a component's dependency tree | id, depth (1-5, default 1) |
Applications
| Tool | Description | Parameters |
|---|---|---|
applications_list | List applications | name, status, limit, offset |
applications_get | Get an application by ID | id |
Portfolios
| Tool | Description | Parameters |
|---|---|---|
portfolios_list | List portfolios | name, status, limit, offset |
portfolios_get | Get a portfolio by ID | id |
portfolios_apps | List applications in a portfolio | id, limit, offset |
Technologies
| Tool | Description | Parameters |
|---|---|---|
technologies_list | List technologies | name, limit, offset |
technologies_get | Get a technology by ID | id |
technologies_versions | List versions for a technology | id, limit, offset |
Journeys
| Tool | Description | Parameters |
|---|---|---|
journeys_list | List quality journeys | name, active (boolean), limit, offset |
journeys_get | Get a journey with score and run count | id |
journeys_summary | Aggregated journey scores per portfolio | id |
Incidents
| Tool | Description | Parameters |
|---|---|---|
incidents_list | List incidents | state, priority (0-7), limit, offset |
incidents_get | Get an incident by ID | id |
incidents_summary | Open incident counts by state and priority | (none) |
Incident states: new, in_progress, on_hold, resolved, closed, canceled, reopened
Priority: 0 (P0, highest) through 7 (P7, lowest)
Changes
| Tool | Description | Parameters |
|---|---|---|
changes_list | List change requests | status, type, riskLevel, limit, offset |
changes_get | Get a change by ID | id |
Change types: standard, normal, emergency, expedited
Risk levels: critical, high, medium, low
Statuses: draft, pending_approval, approved, scheduled, in_progress, implementing, testing, completed, closed, cancelled, failed, rolled_back
Vulnerabilities
| Tool | Description | Parameters |
|---|---|---|
vulnerabilities_list | List vulnerabilities | severity, status, scanType, limit, offset |
vulnerabilities_get | Get a vulnerability by ID | id |
vulnerabilities_summary | Counts grouped by severity and status | (none) |
vulnerability_identifiers_list | List CVE/CWE identifiers | externalSource, externalId, vulnerabilityId, limit, offset |
vulnerability_identifiers_get | Get a CVE/CWE identifier | id |
Severity levels: CRITICAL, HIGH, MEDIUM, LOW, INFO, UNKNOWN
Statuses: detected, confirmed, dismissed, resolved
Scan types: sast, sca, container_scanning, and others
Relationships
| Tool | Description | Parameters |
|---|---|---|
relationships_list | List relationships between entities | type, fromId, toId, limit, offset |
relationships_get | Get a relationship by ID | id |
Common relationship types:
portfolio-contains-applicationapplication-has-componenttechnology-has-version
Repositories
| Tool | Description | Parameters |
|---|---|---|
repos_list | List source code repositories | name, externalSystem, limit, offset |
repos_get | Get a repository by ID | id |
External systems: github, gitlab, bitbucket, azure-devops
Pagination
All list tools support pagination:
limit-- maximum results to return (1-100, default 20)offset-- number of results to skip (default 0)
Responses include metadata.hasMore which is true when more results are available. To page through results:
- Call with
{ limit: 50, offset: 0 } - If
hasMoreistrue, call again with{ limit: 50, offset: 50 } - Continue until
hasMoreisfalse
Response Format
All tools return JSON with this structure:
List responses:
{
"data": [ ... ],
"metadata": {
"count": 5,
"limit": 20,
"offset": 0,
"hasMore": false
}
}Single-item responses:
{
"data": { "id": "...", "name": "...", ... }
}Search responses:
{
"data": {
"entities": [ ... ],
"relationships": [ ... ],
"blueprints": [ ... ]
},
"metadata": {
"query": "auth",
"entityCount": 3,
"relationshipCount": 1,
"blueprintCount": 0,
"totalCount": 4
}
}Errors:
{
"error": "Component with id abc-123 not found"
}Prompts
The server includes pre-built workflow prompts. In clients that support them, these appear as slash commands:
| Prompt | What it does | Arguments |
|---|---|---|
/security_review | Walks through vulnerability data to produce a security posture summary | severity (optional: CRITICAL, HIGH, MEDIUM, LOW) |
/component_health | Assesses a component's status, dependencies, and security posture | componentId (UUID) |
/incident_triage | Reviews open incidents and produces a prioritized triage list | (none) |
/portfolio_overview | Generates a summary of a portfolio's applications, security, and incidents | portfolioId (UUID) |
Example Workflows
Find a component and its dependencies
"Find the auth-service component and show me what it depends on"
The assistant will:
components_listwithname: "auth-service"to find itcomponents_getwith the ID for full detailscomponents_dependencieswithdepth: 2for the dependency tree
Review your security posture
"Show me all critical unresolved vulnerabilities"
The assistant will:
vulnerabilities_summaryfor an overviewvulnerabilities_listwithseverity: "CRITICAL"andstatus: "detected"vulnerability_identifiers_listto get CVE details for each
Triage incidents
"What incidents need attention right now?"
The assistant will:
incidents_summaryfor a high-level viewincidents_listwithstate: "new"for unacknowledged incidentsincidents_getfor details on high-priority items
Explore a portfolio
"Give me an overview of the payments portfolio"
The assistant will:
portfolios_listwithname: "payments"to find itportfolios_appsto list its applicationsvulnerabilities_summaryandincidents_summaryfor health indicators
Search across everything
"Search for anything related to authentication"
The assistant will:
searchwithquery: "authentication"to find matching entities, relationships, and blueprints in one call
Troubleshooting
"Authentication required" error Your token has expired. Most clients will automatically re-authenticate. If not, disconnect and reconnect the server in your client settings.
"Access denied: missing read:vulnerability permission" Your DevGrid user account doesn't have permission for this resource. Ask your DevGrid admin to grant the required permission.
Empty results All data is scoped to your organization's account. If you're not seeing expected data, verify you're logged in with the correct DevGrid account.
Tool not found Make sure your client is connected to the correct server URL. Disconnect and reconnect if the tool list seems stale.
Updated 10 days ago
