Skip to main content

MCP Tools Reference

This page documents every MCP tool available to agents in Claw GRC. Each tool is invoked through the POST /api/v1/mcp/message endpoint with the tool name as the method field.

Tool Invocation Pattern​

All tools follow the same invocation pattern:

curl -X POST https://api.clawgrc.com/api/v1/mcp/message \
-H "X-API-Key: cgrc_..." \
-H "Content-Type: application/json" \
-d '{
"session_id": "mcp_...",
"method": "TOOL_NAME",
"params": { ... }
}'

grc.list_frameworks​

List available compliance frameworks for the organization.

Parameters​

ParameterTypeRequiredDefaultDescription
limitintegerNo50Maximum results to return (1-200)
offsetintegerNo0Pagination offset (0-10000)

Example​

{
"method": "grc.list_frameworks",
"params": {
"limit": 5,
"offset": 0
}
}

Response​

{
"result": {
"frameworks": [
{
"id": "uuid",
"name": "SOC 2 Type II",
"version": "2017",
"standard_body": "AICPA",
"status": "active",
"description": "Service Organization Control 2..."
}
],
"total": 11
}
}

grc.get_compliance_score​

Get the organization's overall compliance score and breakdown.

Parameters​

ParameterTypeRequiredDescription
framework_idstring (UUID)NoScope the score to a specific framework

Example​

{
"method": "grc.get_compliance_score",
"params": {
"framework_id": "fw-uuid-here"
}
}

Response​

{
"result": {
"score": 82.5,
"total_controls": 64,
"compliant_controls": 53
}
}

grc.create_finding​

Create a new security finding in the security engine.

Parameters​

ParameterTypeRequiredDescription
titlestringYesConcise description of the vulnerability
severitystringYescritical, high, medium, low, or info
descriptionstringNoDetailed explanation of the issue
assessment_idstring (UUID)NoLink to an existing assessment
cwe_idstringNoCommon Weakness Enumeration ID (e.g., CWE-79)
cvss_scorenumberNoCVSS v3.1 base score (0.0-10.0)

Example​

{
"method": "grc.create_finding",
"params": {
"title": "SQL injection in user search API",
"severity": "critical",
"description": "The /api/users/search endpoint is vulnerable to SQL injection via the 'q' parameter. An attacker can extract sensitive data from the users table.",
"cwe_id": "CWE-89",
"cvss_score": 9.8
}
}

Response​

{
"result": {
"id": "finding-uuid",
"title": "SQL injection in user search API",
"severity": "critical",
"status": "open"
}
}

grc.create_ticket​

Create a remediation ticket linked to a finding or control.

Parameters​

ParameterTypeRequiredDescription
titlestringYesClear description of the work to be done
descriptionstringNoDetailed context and remediation steps
prioritystringYescritical, high, medium, or low
finding_idstring (UUID)NoLink to the finding that triggered this ticket

Example​

{
"method": "grc.create_ticket",
"params": {
"title": "Patch SQL injection vulnerability in user search",
"description": "Use parameterized queries for the /api/users/search endpoint. See finding F-2024-042.",
"priority": "critical",
"finding_id": "finding-uuid"
}
}

Response​

{
"result": {
"id": "ticket-uuid",
"title": "Patch SQL injection vulnerability in user search",
"status": "open"
}
}

grc.list_findings​

List security findings with optional severity and status filters.

Parameters​

ParameterTypeRequiredDefaultDescription
severitystringNo-Filter by severity (critical, high, medium, low, info)
statusstringNo-Filter by status (open, in_progress, resolved, accepted)
limitintegerNo50Maximum results to return (1-200)
offsetintegerNo0Pagination offset (0-10000)

Example​

{
"method": "grc.list_findings",
"params": {
"severity": "critical",
"status": "open",
"limit": 10
}
}

Response​

{
"result": {
"findings": [
{
"id": "finding-uuid",
"title": "SQL injection in user search API",
"severity": "critical",
"status": "open",
"cwe_id": "CWE-89",
"cvss_score": 9.8,
"created_at": "2025-01-15T14:30:00Z"
}
],
"total": 3
}
}

grc.trigger_scan​

Trigger a security scan for a target URL or resource.

Parameters​

ParameterTypeRequiredDefaultDescription
targetstringYes-URL or resource identifier to scan
scan_typestringNodastScan type: dast, api, cloud_config

Example​

{
"method": "grc.trigger_scan",
"params": {
"target": "https://api.example.com",
"scan_type": "api"
}
}

Response​

{
"result": {
"scan_id": "scan-uuid",
"status": "running"
}
}
info

Scans run synchronously. The response is returned after the scan completes, which may take up to 60 seconds for large targets. The default timeout for scan operations is 60 seconds.


grc.call_agent​

Invoke another registered agent by ID. This enables agent-to-agent communication within the GRC platform.

Parameters​

ParameterTypeRequiredDescription
target_agent_idstring (UUID)YesThe ID of the agent to invoke
methodstringYesThe method to call on the target agent
paramsobjectNoParameters for the method invocation

Example​

{
"method": "grc.call_agent",
"params": {
"target_agent_id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"method": "analyze_configuration",
"params": {
"resource": "aws:ec2:instance:i-1234567890abcdef0"
}
}
}

Response​

{
"result": {
"request_id": "req-uuid",
"status": "queued",
"interaction_id": "interaction-uuid"
}
}

Validation​

  • The target_agent_id must be a valid UUID (path traversal prevention)
  • The target agent must exist, be active, and belong to the same organization
  • The target agent must meet the caller's trust score threshold (if specified)
  • The invocation is logged with chain hashing in the agent_interactions table

grc.discover_agents​

Find agents matching capability and trust score criteria within your organization.

Parameters​

ParameterTypeRequiredDescription
capabilitiesstring[]YesRequired capabilities the agent must have
min_trust_scorenumberNoMinimum trust score (0.0-1.0, default: 0.0)

Example​

{
"method": "grc.discover_agents",
"params": {
"capabilities": ["grc.trigger_scan", "grc.create_finding"],
"min_trust_score": 0.7
}
}

Response​

{
"result": {
"agents": [
{
"id": "uuid",
"name": "security-scanner",
"agent_type": "security",
"trust_score": 0.92,
"capabilities": ["grc.trigger_scan", "grc.create_finding", "grc.create_ticket"],
"status": "active"
}
],
"total": 1
}
}

Results are sorted by trust score descending, so the most trusted agents appear first.


Error Handling​

All tools return errors in a consistent format within the MCP response:

{
"session_id": "mcp_...",
"result": null,
"error": {
"code": "error_code",
"message": "Human-readable error description"
}
}

Error Codes​

CodeDescription
permission_deniedAgent lacks the capability for the requested tool
invalid_paramsRequired parameters are missing or invalid
validation_errorDownstream service returned a validation error (422)
upstream_errorDownstream service returned a non-success status
method_not_foundThe tool name is not recognized