ComplianceCow MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CCOW_HOST | Yes | The hostname of the ComplianceCow instance (e.g., 'https://partner.compliancecow.live'). | https://partner.compliancecow.live |
| CCOW_CLIENT_ID | Yes | Your OAuth 2.0 client ID. Obtain this by clicking on 'Manage Client Credentials' in the top-right user profile menu of your ComplianceCow instance. | |
| CCOW_CLIENT_SECRET | Yes | Your OAuth 2.0 client secret. Obtain this by clicking on 'Manage Client Credentials' in the top-right user profile menu of your ComplianceCow instance. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| read_fileB | Read content from a local file given a file:// URI or file path. Args: uri: File URI (file://) or local file path to read max_chars: Maximum characters to return (default: 8000, roughly 2000 tokens) Returns: Dictionary containing file content or error message |
| read_resourceA | Read content from a resource URI (primarily for local files). Args: uri: Resource URI to read max_chars: Maximum characters to return (default: 8000, roughly 2000 tokens) Returns: Dictionary containing resource content or error message |
| list_all_assessment_categoriesB | Get all assessment categories Returns: - categories (List[Category]): A list of category objects, where each category includes: - id (str): Unique identifier of the assessment category. - name (str): Name of the category. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| list_assessmentsC | Get all assessments Args: categoryId: assessment category id (Optional) categoryName: assessment category name (Optional) assessmentName: assessment name (Optional) Returns: - assessments (List[Assessments]): A list of assessments objects, where each assessment includes: - id (str): Unique identifier of the assessment. - name (str): Name of the assessment. - category_name (str): Name of the category. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_unique_node_data_and_schemaD | Fetch unique node data and schema |
| execute_cypher_queryA | Given a question and query, execute a cypher query and transform result to human readable format. This tool queries a Neo4j graph database containing compliance controls, frameworks, and evidence. Key database structure: - Controls have hierarchical relationships via HAS_CHILD edges - Evidence nodes are attached to leaf controls (controls with no children) - Use recursive patterns [HAS_CHILD*] for traversing control hierarchies - Controls may have multiple levels of nesting - Evidence contains records - RiskItem nodes are attached to control-config via HAS_RISK & HAS_MAPPED_CONTROL edges - RiskItemAttribute nodes are attached to RiskItem via HAS_ATTRIBUTE edges - RiskItem contains RiskItemAttributes Query guidelines: - For control hierarchies: Use MATCH (parent)-[HAS_CHILD*]->(child) patterns - For evidence: Evidence is only available on leaf controls (Always check last child of control for evidence) (no outgoing HAS_CHILD relationships) - For control depth: Calculate hierarchy depth when analyzing control structures - Use APOC procedures for complex graph operations when available - While list assessment run always include assessment name - For large datasets from query: Provide overview summary & suggest refinement suggestion Args: query (str): The Cypher query to execute against the graph database. Returns: - result (Any): The formatted, human-readable result of the Cypher query. - error (Optional[str]): An error message if the query execution fails or encounters issues. Example queries: - Find all root controls: MATCH (c:Control) WHERE NOT ()-[:HAS_CHILD]->(c) RETURN c - Get control hierarchy: MATCH (root)-[:HAS_CHILD*]->(leaf) RETURN root, leaf - Find evidence for controls (leaf control): MATCH (c:Control)-[:HAS_EVIDENCE]->(e:Evidence) RETURN c, e - Find leaf control: MATCH (c:Control) WHERE NOT (c)-[:HAS_CHILD]->(:Control) RETURN c - Find records: MATCH (e:Evidence)-[:HAS_RECORD]-(:Record) RETURN e |
| fetch_recent_assessment_runsC | Get recent assessment run for given assessment id Args: - id (str): assessment id Returns: - assessmentRuns (List[AssessmentRuns]): A list of assessment runs. - id (str): Assessement run id. - name (str): Name of the assessement run. - description (str): Description of the assessment run. - assessmentId (str): Assessement id. - applicationType (str): Application type. - configId (str): Configuration id. - fromDate (str): From date of the assessement run. - toDate (str): To date of the assessment run. - status (str): Status of the assessment run. - computedScore (str): Computed score. - computedWeight (str): Computed weight. - complianceStatus (str): Compliance status. - compliancePCT (str): Compliance percentage. - complianceWeight (str): Compliance weight. - createdAt (str): Time and date when the assessement run was created. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_assessment_runsA | Get all assessment run for given assessment id Function accepts page number (page) and page size (pageSize) for pagination. If MCP client host unable to handle large response use page and pageSize, default page is 1 If the request times out retry with pagination, increasing pageSize from 5 to 10. use this tool when expected run is got in fetch recent assessment runs tool Args: - id (str): Assessment id Returns: - assessmentRuns (List[AssessmentRuns]): A list of assessment runs. - id (str): Assessement run id. - name (str): Name of the assessement run. - description (str): Description of the assessment run. - assessmentId (str): Assessement id. - applicationType (str): Application type. - configId (str): Configuration id. - fromDate (str): From date of the assessement run. - toDate (str): To date of the assessment run. - status (str): Status of the assessment run. - computedScore (str): Computed score. - computedWeight (str): Computed weight. - complianceStatus (str): Compliance status. - compliancePCT (str): Compliance percentage. - complianceWeight (str): Compliance weight. - createdAt (str): Time and date when the assessement run was created. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_assessment_run_detailsB | Get assessment run details for given assessment run id. This api will return many contorls, use page to get details pagewise. If output is large store it in a file. Args: - id (str): Assessment run id Returns: - controls (List[Control]): A list of controls. - id (str): Control run id. - name (str): Control name. - controlNumber (str): Control number. - alias (str): Control alias. - priority (str): Priority. - stage (str): Control stage. - status (str): Control status. - type (str): Control type. - executionStatus (str): Rule execution status. - dueDate (str): Due date. - assignedTo (List[str]): Assigned user ids - assignedBy (str): Assigner's user id. - assignedDate (str): Assigned date. - checkedOut (bool): Control checked-out status. - compliancePCT__ (str): Compliance percentage. - complianceWeight__ (str): Compliance weight. - complianceStatus (str): Compliance status. - createdAt (str): Time and date when the control run was created. - updatedAt (str): Time and date when the control run was updated. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_assessment_run_leaf_controlsB | Get leaf controls for given assessment run id. If output is large store it in a file. Args: - id (str): Assessment run id Returns: - controls (List[Control]): A list of controls. - id (str): Control run id. - name (str): Control name. - controlNumber (str): Control number. - alias (str): Control alias. - priority (str): Priority. - stage (str): Control stage. - status (str): Control status. - type (str): Control type. - executionStatus (str): Rule execution status. - dueDate (str): Due date. - assignedTo (List[str]): Assigned user ids - assignedBy (str): Assigner's user id. - assignedDate (str): Assigned date. - checkedOut (bool): Control checked-out status. - compliancePCT__ (str): Compliance percentage. - complianceWeight__ (str): Compliance weight. - complianceStatus (str): Compliance status. - createdAt (str): Time and date when the control run was created. - updatedAt (str): Time and date when the control run was updated. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_run_controlsC | use this tool when you there is no result from the tool "execute_cypher_query". use this tool to get all controls that matches the given name. Next use fetch control meta data tool if need assessment name, assessment Id, assessment run name, assessment run Id Args: - name (str): Control name Returns: - controls (List[Control]): A list of controls. - id (str): Control run id. - name (str): Control name. - controlNumber (str): Control number. - alias (str): Control alias. - priority (str): Priority. - stage (str): Control stage. - status (str): Control status. - type (str): Control type. - executionStatus (str): Rule execution status. - dueDate (str): Due date. - assignedTo (List[str]): Assigned user ids - assignedBy (str): Assigner's user id. - assignedDate (str): Assigned date. - checkedOut (bool): Control checked-out status. - compliancePCT__ (str): Compliance percentage. - complianceWeight__ (str): Compliance weight. - complianceStatus (str): Compliance status. - createdAt (str): Time and date when the control run was created. - updatedAt (str): Time and date when the control run was updated. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_run_control_meta_dataB | Use this tool to retrieve control metadata for a given
Args: - id (str): Control id Returns: - assessmentId (str): Assessment id. - assessmentName (str): Assessment name. - assessmentRunId (str): Assessment run id. - assessmentRunName (str): Assessment run name. - controlId (str): Control id. - controlName (str): Control name. - controlNumber (str): Control number. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_assessment_run_leaf_control_evidenceB | Get leaf control evidence for given assessment run control id. Args:
Returns: - evidences (List[ControlEvidenceVO]): List of control evidences - id (str): Evidence id. - name (str): Evidence name. - description (str): Evidence description. - fileName (str): File name. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_controlsC | To fetch controls. Args: control_name (str): name of the control. Returns: - prompt (str): The input prompt used to generate the Cypher query for fetching the control. |
| fetch_evidence_recordsA | Get evidence records for a given evidence ID with optional compliance status filtering. Returns max 50 records but counts all records for the summary. Args: - id (str): Evidence ID - compliantStatus Optional[(str)]: Compliance status to filter "COMPLIANT", "NON_COMPLIANT", "NOT_DETERMINED" (optional). Returns:
- totalRecords (int): Total records.
- compliantRecords (int): Number of complian records.
- nonCompliantRecords (int): Number of non compliant records.
- notDeterminedRecords (int): Number of not determined records.
- records (List[RecordListVO]): List of evidence records.
- id (str): Record id.
- name (str): System name.
- source (str): Record source.
- resourceId (str): Resource id.
- resourceName (str): Resource name.
- resourceType (str): Resource type.
- complianceStatus (str): Compliance status.
- complianceReason (str): Compliance reason.
- createdAt (str): The date and time the record was initially created. |
| fetch_evidence_record_schemaC | Get evidence record schema for a given evidence ID. Returns the schema of evidence record. Args: - id (str): Evidence ID Returns: - records (List[RecordListVO]): List of evidence record schema. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_available_control_actionsB | This tool should be used for handling control-related actions such as create, update, or to retrieve available actions for a given control. If no control details are given use the tool "fetch_controls" to get the control details.
Args:
If the above arguments are not available:
Returns: - actions (List[ActionsVO]): List of actions - actionName (str): Action name. - actionDescription (str): Action description. - actionSpecID (str): Action specific id. - actionBindingID (str): Action binding id. - target (str): Target. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_assessment_available_actionsA | Get actions available on assessment for given assessment name. Once fetched, ask user to confirm to execute the action, then use 'execute_action' tool with appropriate parameters to execute the action. Args:
Returns: - actions (List[ActionsVO]): List of actions - actionName (str): Action name. - actionDescription (str): Action description. - actionSpecID (str): Action specific id. - actionBindingID (str): Action binding id. - target (str): Target. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_evidence_available_actionsA | Get actions available on evidence for given evidence name.
If the required parameters are not provided, use the existing tools to retrieve them.
Once fetched, ask user to confirm to execute the action, then use 'execute_action' tool with appropriate parameters to execute the action.
Args:
- assessment_name (str): assessment name (required)
- control_number (str): control number (required)
- control_alias (str): control alias (required) Returns: - actions (List[ActionsVO]): List of actions - actionName (str): Action name. - actionDescription (str): Action description. - actionSpecID (str): Action specific id. - actionBindingID (str): Action binding id. - target (str): Target. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_general_available_actionsA | Get general actions available on assessment, control & evidence. Once fetched, ask user to confirm to execute the action, then use 'execute_action' tool with appropriate parameters to execute the action. For inputs use default value as sample, based on that generate the inputs for the action. Args: - type (str): Type of the action, can be "assessment", "control" or "evidence". Returns: - actions (List[ActionsVO]): List of actions - actionName (str): Action name. - actionDescription (str): Action description. - actionSpecID (str): Action specific id. - actionBindingID (str): Action binding id. - target (str): Target. - ruleInputs: Optional[dict[str, Any]]: Rule inputs for the action, if applicable. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_automated_controls_of_an_assessmentB | To fetch the only the automated controls for a given assessment. If assessment_id is not provided use other tools to get the assessment and its id. Args: - assessment_id (str, required): Assessment id or plan id. Returns: - controls (List[AutomatedControlVO]): List of controls - id (str): Control ID. - displayable (str): Displayable name or label. - alias (str): Alias of the control. - activationStatus (str): Activation status. - ruleName (str): Associated rule name. - assessmentId (str): Assessment identifier. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| execute_actionA | Use this tool when the user asks about actions such as create, update or other action-related queries. IMPORTANT: This tool MUST ONLY be executed after explicit user confirmation. Always prompt for REQUIRED-FROM-USER field from user and get inputs from user. Always confirm the inputs below execute action. Always describe the intended action and its effects to the user, then wait for their explicit approval before proceeding. Do not execute this tool without clear user consent, as it performs actual operations that modify system state. Execute or trigger a specific action on an assessment run. use assessment id, assessment run id and action binding id. Execute or trigger a specific action on an control run. use assessment id, assessment run id, action binding id and assessment run control id . Execute or trigger a specific action on an evidence level. use assessment id, assessment run id, action binding id, assessment run control evidence id and evidence record ids. Use fetch assessment available actions to get action binding id. Only once action can be triggered at a time, assessment level or control level or evidence level based on user preference. Use this to trigger action for assessment level or control level or evidence level. Please also provide the intended effect when executing actions. For inputs use default value as sample, based on that generate the inputs for the action. Format key - inputName value - inputValue. If inputs are provided, Always ensure to show all inputs to the user before executing the action, and also user to make changes to the inputs and also confirm modified inputs before executing the action. WORKFLOW:
Args: - assessmentId - assessmentRunId - actionBindingId - assessmentRunControlId - needed for control level action - assessmentRunControlEvidenceId - needed for evidence level action - evidenceRecordIds - needed for evidence level action - inputs (Optional[dict[str, Any]]): Additional inputs for the action, if required by the action's rules. Returns: - id (str): id of triggered action. |
| list_assetsB | Retrieve all available assets (integration plans). Returns: - success (bool): Indicates if the operation completed successfully. - assets (List[dict]): A list of assets. - id (str): Asset id. - name (str): Name of the asset. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_assets_summaryC | Get assets summary for given assessment id Args: - id (str): Assessment id Returns: - integrationRunId (str): Asset id. - assessmentName (str): Name of the asset. - status (str): Name of the asset. - numberOfResources (str): Name of the asset. - numberOfChecks (str): Name of the asset. - dataStatus (str): Name of the asset. - createdAt (str): Name of the asset. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_resource_typesA | Get resource types for given asset run id. Use 'fetch_assets_summary' tool to get assets run id Function accepts page number (page) and page size (pageSize) for pagination. If MCP client host unable to handle large response use page and pageSize. If the request times out retry with pagination, increasing pageSize from 50 to 100.
Args: - id(str): Asset run id Returns:
- resourceTypes (List[AssetsVo]): A list of resource types.
- resourceType (str): Resource type.
- totalResources (int): Total number of resources. |
| fetch_checksA | Get checks for given assets run id and resource type. Use this function to get all checks for given assets run id and resource type Use 'fetch_assets_summary' tool to get asset run id Use 'fetch_resource_types' tool to get all resource types Function accepts page number (page) and page size (pageSize) for pagination. If MCP client host unable to handle large response use page and pageSize. If the request times out retry with pagination, increasing pageSize from 5 to 10. If the check data set is large to fetch efficiently or results in timeouts, it is recommended to use the 'summary tool' instead to get a summarized view of the checks.
Args: - id (str): Asset run id - resourceType (str): Resource type - complianceStatus (str): Compliance status Returns: - checks (List[CheckVO]): A list of checks. - name (str): Name of the check. - description (str): Description of the check. - rule (RuleVO): Rule associated with the check. - type (str): Type of the rule. - name (str): Name of the rule. - activationStatus (str): Activation status of the check. - priority (str): Priority level of the check. - complianceStatus (str): Compliance status of the check. - compliancePCT (float): Compliance percentage. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_resourcesA | Get resources for given asset run id and resource type Function accepts page number (page) and page size (pageSize) for pagination. If MCP client host unable to handle large response use page and pageSize, default page is 1 If the request times out retry with pagination, increasing pageSize from 5 to 10. If the resource data set is large to fetch efficiently or results in timeouts, it is recommended to use the 'summary tool' instead to get a summarized view of the resource.
Args: - id (str): Asset run id - resourceType (str): Resource type - complianceStatus (str): Compliance status Returns: - resources (List[ResourceVO]): A list of resources. - name (str): Name of the resource. - resourceType (str): Type of the resource. - complianceStatus (str): Compliance status of the resource. - checks (List[ResourceCheckVO]): List of checks associated with the resource. - name (str): Name of the check. - description (str): Description of the check. - rule (RuleVO): Rule applied in the check. - type (str): Type of the rule. - name (str): Name of the rule. - activationStatus (str): Activation status of the check. - priority (str): Priority level of the check. - controlName (str): Name of the control. - complianceStatus (str): Compliance status specific to the resource. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_resources_by_check_nameA | Get resources for given asset run id, and check name. Function accepts page number (page) and page size (pageSize) for pagination. If MCP client host unable to handle large response use page and pageSize. If the request times out retry with pagination, increasing pageSize from 10 to 50. If the resource data set is large to fetch efficiently or results in timeouts, it is recommended to use the 'summary tool' instead to get a summarized view of the resource.
Args: - id: Asset run id. - checkName: Check name. Returns: - resources (List[ResourceVO]): A list of resources. - name (str): Name of the resource. - resourceType (str): Type of the resource. - complianceStatus (str): Compliance status of the resource. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_checks_summaryA | Use this to get the summary on checks Use this when total items in 'fetch_checks' is high Get checks summary for given asset run id and resource type. Get a summarized view of resources based on - Compliance breakdown for checks - Total Checks available - Total compliant checks - Total non-compliant checks Args: - id (str): Asset run id - resourceType (str): Resource type Returns: - complianceSummary (dict): Summary of compliance status across checks. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_resources_summaryA | Args: - id (str): asset run ID - resourceType (str): Resource type Returns: - complianceSummary (dict): Summary of compliance status across checks. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_resources_by_check_name_summaryB | Use this to get the summary on check resources Use this when total items in 'fetch_resources_for_check' is high Get check resources summary for given asset run id, resource type and check Paginated data is enough for summary Get a summarized view of check resources based on - Compliance breakdown for resources - Total Resources available - Total compliant resources - Total non-compliant resources Args: - id (str): Asset run id - resourceType (str): Resource type Returns: - complianceSummary (dict): Summary of compliance status across checks. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| get_dashboard_review_periodsB | Fetch list of review periods Returns: - items (List[str]): list of review periods - error (Optional[str]): An error message if any issues occurred during retrieval. |
| get_dashboard_dataB | Function accepts compliance period as 'period'. Period denotes for which quarter of year dashboard data is needed. Format: Q1 2024. Dashboard contains summary data of Common Control Framework (CCF). For any related to contorl category, framework, assignment status use this function. This contains details of control status such as 'Completed', 'In Progress', 'Overdue', 'Pending'. The summarization levels are 'overall control status', 'control category wise', 'control framework wise', 'overall control status' can be fetched from 'controlStatus' 'control category wise' can be fetched from 'controlSummary' 'control framework wise' can be fetched from 'frameworks' Args: - period (str) - Period denotes for which quarter of year dashboard data is needed. Format: Q1 2024. Returns: - totalControls (int): Total number of controls in the dashboard. - controlStatus (List[ComplianceStatusSummaryVO]): Summary of control statuses. - status (str): Compliance status of the control. - count (int): Number of controls with the given status. - controlAssignmentStatus (List[ControlAssignmentStatusVO]): Assignment status categorized by control. - categoryName (str): Name of the control category. - controlStatus (List[ComplianceStatusSummaryVO]): Status summary within the category. - status (str): Compliance status. - count (int): Number of controls with this status. - compliancePCT (float): Overall compliance percentage across all controls. - controlSummary (List[ControlSummaryVO]): Detailed summary of each control. - category (str): Category name of the control. - status (str): Compliance status of the control. - dueDate (str): Due date for the control, if applicable. - compliancePCT (float): Compliance percentage for the control. - leafControls (int): Number of leaf-level controls in the category. - complianceStatusSummary (List[ComplianceStatusSummaryVO]): Summary of control statuses. - status (str): Compliance status. - count (int): Number of controls with the given status. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_dashboard_framework_controlsA | Function Overview: Retrieve Control Details for a Given CCF and Review Period This function retrieves detailed control-level data for a specified Common Control Framework (CCF) during a specific review period. Args:
Purpose This function is used to fetch a list of controls and their associated data for a specific CCF and review period. The results are displayed in the MCP host with client-side pagination, allowing users to navigate through the control list efficiently without making repeated API calls. Returns: - controls (List[FramworkControlVO]): A list of framework controls. - name (str): Name of the control. - assignedTo (str): Email ID of the user the control is assigned to. - assignmentStatus (str): Status of the control assignment. - complianceStatus (str): Compliance status of the control. - dueDate (str): Due date for completing the control. - score (float): Score assigned to the control. - priority (str): Priority level of the control. - page (int): Current page number in the overall result set. - totalPage (int): Total number of pages. - totalItems (int): Total number of items. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| fetch_dashboard_framework_summaryA | Function Overview: CCF Dashboard Summary Retrieval This function returns a summary dashboard for a specified compliance period and Common Control Framework (CCF). It is designed to provide a high-level view of control statuses within a given framework and period, making it useful for compliance tracking, reporting, and audits. Args:
Dashboard Overview The dashboard provides a consolidated view of all controls under the specified framework and period. It includes key information such as assignment status, compliance progress, due dates, and risk scoring to help stakeholders monitor and manage compliance posture. Returns: - controls (List[FramworkControlVO]): A list of framework controls. - name (str): Name of the control. - assignedTo (str): Email ID of the user the control is assigned to. - assignmentStatus (str): Status of the control assignment. - complianceStatus (str): Compliance status of the control. - dueDate (str): Due date for completing the control. - score (float): Score assigned to the control. - priority (str): Priority level of the control. - page (int): Current page number in the overall result set. - totalPage (int): Total number of pages. - totalItems (int): Total number of items. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| get_dashboard_common_controls_detailsA | Function accepts compliance period as 'period'. Period donates for which quarter of year dashboard data is needed. Format: Q1 2024. Use this tool to get Common Control Framework (CCF) dashboard data for a specific compliance period with filters. This function provides detailed information about common controls, including their compliance status, control status, and priority. Use pagination if controls count is more than 50 then use page and pageSize to get control data pagewise, Once 1st page is fetched,then more pages available suggest to get next page data then increase page number. Args: - period (str): Compliance period for which dashboard data is needed. Format: 'Q1 2024'. (Required) - complianceStatus (str): Compliance status filter (Optional, possible values: 'COMPLIANT', 'NON_COMPLIANT', 'NOT_DETERMINED"). Default is empty string (fetch all Compliance statuses). - controlStatus (str): Control status filter (Optional, possible values: 'Pending', 'InProgress', 'Completed', 'Unassigned', 'Overdue'). Default is empty string (fetch all statuses). - priority (str): Priority of the controls. (Optional, possible values: 'High', 'Medium', 'Low'). Default is empty string (fetch all priorities). - controlCategoryName (str): Control category name filter (Optional). Default is empty string (fetch all categories). - page (int): Page number for pagination (Optional). Default is 1 (fetch first page). - pageSize (int): Number of items per page (Optional). Default is 50. Returns: - controls (List[CommonControlVO]): A list of common controls. - id (str): Unique identifier of the control. - planInstanceID (str): ID of the associated plan instance. - alias (str): Alias or alternate name for the control. - displayable (str): Flag or content that indicates display eligibility. - controlName (str): Name of the control. - dueDate (str): Due date assigned to the control. - score (float): Score assigned to the control. - priority (str): Priority level of the control. - status (str): Current status of the control. - complianceStatus (str): Compliance status of the control. - updatedAt (str): Timestamp when the control was last updated. - page (int): Current page number in the paginated result. - totalPage (int): Total number of pages available. - totalItems (int): Total number of control items. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| get_top_over_due_controls_detailC | Fetch controls with top over due (over-due) Function accepts count as 'count' Function accepts compliance period as 'period'. Period donates for which quarter of year dashboard data is needed. Format: Q1 2024. Args: - period (str, required) - Compliance period - count (int, required) - page content size, defaults to 10 Returns: - controls (List[OverdueControlVO]): A list of overdue controls. - name (str): Name of the control. - assignedTo (List[UserVO]): List of users assigned to the control. - emailid (str): Email ID of the assigned user. - assignmentStatus (str): Assignment status of the control. - complianceStatus (str): Compliance status of the control. - dueDate (str): Due date for the control. - score (float): Score assigned to the control. - priority (str): Priority level of the control. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| get_top_non_compliant_controls_detailB | Function overview: Fetch control with low compliant score or non compliant controls. Arguments:
Returns:
|
| helpA | Important: This tool should execute when user asks for help or guidance on using ComplianceCow functions. ComplianceCow Help Tool - Provides guidance on how to use ComplianceCow functions. Args: category: Help category to display. Options: - "all": Show all available help - "assessments": Assessment-related functions - "controls": Control-related functions - "evidence": Evidence-related functions - "dashboard": Dashboard and reporting functions - "assets": Asset management functions - "actions": Action execution functions - "queries": Database query functions Returns: Formatted help text for the specified category |
| create_support_ticketA | PURPOSE:
MANDATORY CONDITIONS β NO STEP MAY BE SKIPPED OR BYPASSED:
IMPORTANT: MANDATORY USER INPUTS:
RETURNS:
|
| get_applications_for_tagA | Get available applications for a specific app tag. APPLICATION RETRIEVAL:
Args: tag_name (str): The app tag name to get applications for. This parameter is mandatory and must not be empty. additional_tags (Dict[str, List[str]]): Optional additional tags to filter applications. Example: {"purpose": ["source-repo"]} to find apps with specific purpose. Returns: dict: A dictionary containing available applications for the specified tag. Raises: ValueError: If tag_name is not provided or is empty. |
| attach_rule_to_controlA | Attach a rule to a specific control in an assessment. π¨ CRITICAL EXECUTION BLOCKERS β DO NOT SKIP π¨ Before any part of this tool can run, five preconditions MUST be met:
RULE ATTACHMENT WORKFLOW:
ATTACHMENT OPTIONS:
VALIDATION REQUIREMENTS:
Args:
rule_id: ID of the rule to attach (UUID). If an alphabetic string is provided,
it MUST be resolved to a UUID using Returns: Dict containing attachment status and details. |
| fetch_cc_rule_by_idB | Fetch rule details by rule id from the compliancecow. Args: rule_id: Rule Id of the rule to retrieve Returns: Dict containing complete rule structure and metadata |
| fetch_cc_rule_by_nameB | Fetch rule details by rule name from the compliancecow. Args: rule_name: Rule name of the rule to retrieve Returns: Dict containing complete rule structure and metadata |
| publish_ruleC | Publish a rule to make it available for ComplianceCow system. CRITICAL WORKFLOW RULES:
RULE PUBLISHING HANDLING: WHEN TO USE:
WORKFLOW (step-by-step with user confirmation):
Select applications to publish: ___
If valid=True (already published):
EXECUTION CONTROL MECHANISMS:
Args: rule_name: Name of the rule to publish cc_rule_name: Optional alternative name for publishing Returns: Dict with publication status and details |
| fetch_assessmentsA | Fetch the list of available assessments in ComplianceCow. TOOL PURPOSE:
Args:
categoryId (Optional[str]): Assessment category ID. Returns:
- assessments (List[Assessments]): A list of assessment objects, each containing: |
| fetch_leaf_controls_of_an_assessmentA | To fetch the only the leaf controls for a given assessment. If assessment_id is not provided use other tools to get the assessment and its id. Args: - assessment_id (str, required): Assessment id or plan id. Returns: - controls (List[AutomatedControlVO]): List of controls - id (str): Control ID. - displayable (str): Displayable name or label. - alias (str): Alias of the control. - activationStatus (str): Activation status. - ruleName (str): Associated rule name. - assessmentId (str): Assessment identifier. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| verify_control_in_assessmentA | Verify the existence of a specific control by alias within an assessment and confirm it is a leaf control. CONTROL VERIFICATION AND VALIDATION:
LEAF CONTROL IDENTIFICATION:
Args: assessment_name: Name of the assessment. control_alias: Alias of the control to verify. Returns: Dict containing control details, leaf status, and rule attachment info. |
| check_applications_publish_statusB | Check publication status for each application in the provided list. app_info structure is [{"name":["ACTUAL application_class_name"]}] Args: app_info: List of application objects to check Returns: Dict with publication status for each application. Each app will have 'published' field: True if published, False if not. |
| check_rule_publish_statusC | Check if a rule is already published.
Args: rule_name: Name of the rule to check Returns: Dict with publication status and details |
| publish_applicationC | Publish applications to make them available for rule execution. Args: rule_name: Name of the rule these applications belong to app_info: List of application objects to publish Returns: Dict with publication results for each application |
| list_checksB | Retrieve all checks associated with an asset. Args: - assetId (str): Asset id (plan id). Returns: - success (bool): Indicates if the operation completed successfully. - checks (List[dict]): A list of checks. - id (str): Check id. - name (str): Name of the check. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| get_asset_control_hierarchyA | Retrieve the complete control hierarchy for an asset with nested plan controls. Returns only id and name for each control while preserving the full hierarchical structure. Args: - assetId (str): Asset id. Returns: - success (bool): Indicates if the operation completed successfully. - planControls (List[dict]): Nested hierarchy of controls with only id and name. Each control contains: - id (str): Control id. - name (str): Name of the control. - planControls (List[dict]): Nested child controls ( - error (Optional[str]): An error message if any issues occurred during retrieval. |
| add_check_to_assetB | Add a new control and a new check to an asset under a specified parent control. The check will be attached to newly created control beneath the parent control. Args: - assetId (str): Asset id. - parentControlId (str): Parent control id under which the check will be added. - checkName (str): Name of the check to be added. - checkDescription (str): Description of the check to be added. Returns: - success (bool): Indicates if the check was added successfully. - error (Optional[str]): An error message if any issues occurred during the addition. |
| create_asset_and_checkA | Create a new asse with an initial control and check structure. The asset will be created with a hierarchical structure: asset -> parentcontrol -> control -> check. Args: - assetName (str): Name of the asset to be created. - controlName (str): Name of the initial control to be created within the asset. - checkName (str): Name of the initial check to be created under the control. (letters and numbers only, no spaces) - checkDescription (str): Description of the initial check. Returns: - success (bool): Indicates if the asset was created successfully. - assetId (str): ID of the created asset (only present if successful). - error (Optional[str]): An error message if any issues occurred during creation. |
| schedule_asset_executionA | Schedule automated execution for a asset. IMPORTANT WORKFLOW & SAFETY RULES:
|
| list_asset_schedulesC | List schedules for a given asset. Args: - assetId (str): Asset ID whose schedules need to be listed Returns: - success (bool) - items (list): List of schedules - error (Optional[str]) |
| delete_asset_scheduleB | Delete an existing assessment schedule. Args: - scheduleId (str): ID of the schedule to delete Returns: - success (bool) - error (Optional[str]) |
| suggest_control_config_citationsA | Suggest control citations for a given control name or description. WORKFLOW: When user provides a requirement, ask which assessment they want to use. Get assessment name from user, then resolve to assessmentId (mandatory). For control: offer two options - select from existing control on selected assessment OR create new control. If selecting existing control, get control name from user and resolve to controlId. If creating new control, controlId will be empty. This function provides suggestions for control citations based on control names or descriptions. The user can select from the suggested controls to attach citations to their assessment controls. Args: controlName (str): Name of control to get suggestions for (required). assessmentId (str): Assessment ID - resolved from assessment name (required). description (str, optional): Description of the control to get suggestions for. controlId (str, optional): Control ID - resolved from control name if selecting existing control, empty if creating new control. Returns: Dict with success status and suggestions: - success (bool): Whether the request was successful - items (List[dict]): List of suggestion items, each containing: - inputControlName (str): The input control name - controlId (str): The control ID (empty if control doesn't exist yet) - suggestions (List[dict]): List of suggested controls, each containing: - Name (str): Control name - Control ID (int): Control ID number - Control Classification (str): Classification type - Impact Zone (str): Impact zone category - Control Requirement (str): Requirement level - Sort ID (str): Sort identifier - Control Type (str): Type of control - Score (float): Similarity score - authorityDocument (str): Name of the authorityDocument - error (str, optional): Error message if request failed |
| add_citation_to_asset_controlC | Create a new asse with an initial control and check structure. The asset will be created with a hierarchical structure: asset -> control -> check. Args: - assetControlId (str): Id of the control in asset. - authorityDocument (str): Authority document name of the citation. - authorityDocumentControlId (str): Id of the control in authority document. Returns: - success (bool): Indicates if the citation was created successfully. - error (Optional[str]): An error message if any issues occurred during creation. |
| verify_control_automationB | Verify if a control is automated or not based on the presence of ruleId. If ruleId exists, fetch and return basic rule information. Args: control_id: The ID of the control to verify Returns: Dictionary containing automation status and rule details if automated |
| fetch_cc_rules_listA | Fetch list of CC rules with only name, description, and id. This tool should ONLY be used for attaching rules to control flows. Args: params: Optional query parameters for filtering/pagination - name_contains: Filter rules by name containing this string - page_size: Number of items to be returned (default 100) Returns: List of simplified rule objects containing only name, description, and id |
| create_control_noteA | Create a documentation note on a control. This tool creates a markdown documentation note that is attached to a control. β CONFIRMATION-BASED SAFETY FLOW
Args:
controlId (str): The control ID where the note will be attached (required).
assessmentId (str): The assessment ID or asset ID that contains the control (required).
notes (str): The documentation content in MARKDOWN format (required).
topic (str, optional): Topic or subject of the note.
confirm (bool, optional): Returns: Dict with success status and note data: - success (bool): Whether the request was successful - note (dict, optional): Created note object containing: - id (str): Note ID - topic (str): Note topic - notes (str): Note content in markdown format - controlId (str): Control ID the note is attached to - assessmentId (str): Assessment ID - error (str, optional): Error message if request failed - next_action (str, optional): Recommended next action |
| list_control_notesB | List all notes for a given control. This tool retrieves all notes associated with a control. Args: controlId (str): The control ID to list notes for (required). Returns: Dict with success status and notes: - success (bool): Whether the request was successful - notes (List[dict]): List of note objects, each containing: - id (str): Note ID - topic (str): Note topic - notes (str): Note content - totalCount (int): Total number of notes found - error (str, optional): Error message if request failed |
| update_control_config_noteA | Update an existing documentation note on a control. β PURPOSE This tool updates an existing note that was previously created on a control. It allows modification of the note content, topic, or both. β CONFIRMATION-BASED SAFETY FLOW
Args:
controlId (str): The control ID where the note exists (required).
noteId (str): The note ID to update (required).
assessmentId (str): The assessment ID or asset ID that contains the control (required).
notes (str): The updated documentation content in MARKDOWN format (required).
topic (str, optional): Updated topic or subject of the note.
confirm (bool, optional): Returns: Dict with success status and note data: - success (bool): Whether the request was successful - message (str, optional): Success or error message - noteId (str, optional): Updated note ID - error (str, optional): Error message if request failed |
| get_tasks_summaryB | Resource containing minimal task information for initial selection. This tool is also used as a fallback resource when fetch_tasks_suggestions is disabled or does not return suitable matches, ensuring the user always has access to a broader list of available tasks for manual selection. This resource provides only the essential information needed for task selection:
Use this for initial task discovery and selection. Detailed information can be
retrieved later using AUTOMATIC OUTPUT ANALYSIS BY INTENTION:
OUTPUT COMPLETION ASSESSMENT:
WORKFLOW COMPLETION ENFORCEMENT:
Mandatory functionality:
|
| get_template_guidanceA | Get detailed guidance for filling out a template-based input. COMPLETE TEMPLATE HANDLING PROCESS: STEP 1 - TEMPLATE IDENTIFICATION:
PREFILLING PROCESS:
RELEVANCE FILTERING:
STEP 3 - ENHANCED TEMPLATE PRESENTATION TO USER: Show the template with this EXACT format: "Now configuring: [X of Y inputs] Task: {task_name} Input: {input_name} - {description} You can:
Please review and confirm or modify the prefilled configuration:" STEP 4 - FALLBACK TO ORIGINAL TEMPLATE: If no documentation found or prefilling fails:
STEP 5 - COLLECT USER CONTENT:
STEP 6 - PROCESS TEMPLATE INPUT:
TEMPLATE FORMAT HANDLING:
VALIDATION RULES:
CRITICAL TEMPLATE RULES:
PROGRESS TRACKING:
Args: task_name: Name of the task input_name: Name of the input that has a template Returns: Dict containing template content, documentation analysis, prefilled values, and guidance |
| collect_template_inputA | Collect user input for template-based task inputs. TEMPLATE INPUT PROCESSING (Enhanced with Progressive Saving):
JSON ARRAY HANDLING (Preserved):
VALIDATION REQUIREMENTS (Preserved):
STREAMLINED WORKFLOW:
FILE NAMING CONVENTION (Preserved):
WORKFLOW INTEGRATION (Enhanced):
CRITICAL RULES (Preserved):
MANDATORY: Task-sequential collection only. Sanitize input names (alphanumeric + underscore). Args: task_name: Name of the task this input belongs to input_name: Name of the input parameter user_content: Content provided by the user based on the template Returns: Dict containing validation results and file URL or memory reference, prepared for progressive rule updates |
| confirm_template_inputA | Confirm and process template input after user validation. CONFIRMATION PROCESSING (Enhanced with Automatic Rule Updates):
PROCESSING RULES (Enhanced):
AUTOMATIC RULE UPDATE PROCESS: After successful input processing, this tool automatically:
UI DISPLAY REQUIREMENT:
Args: rule_name: Descriptive name for the rule based on the user's use case. Note: Use the same rule name for all inputs that belong to this rule. Example: rule_name = "MeaningfulRuleName" task_name: Name of the task this input belongs to input_name: Name of the input parameter rule_input_name: Must be one of the values defined in the rule structure's inputs confirmed_content: The content user confirmed Returns: Dict containing processing results (file URL or memory reference) and rule update status |
| upload_fileA | Upload file content and return file URL for use in rules. ENHANCED FILE UPLOAD PROCESS:
SUPPORTED INPUT FORMATS:
AUTOMATIC FORMAT PROCESSING:
VALIDATION RESULTS:
Args:
rule_name: Descriptive name for the rule (same across all rule inputs)
file_name: Name of the file to upload Returns: Dict containing upload results: { success: bool, file_url: str, filename: str, unique_filename: str, file_id: str, file_format: str, content_size: int, validation_status: str, was_formatted: bool, message: str, error: Optional[str] } |
| collect_parameter_inputA | Collect user input for non-template parameter inputs. PARAMETER INPUT PROCESSING:
INPUT REQUIREMENT RULES:
DEFAULT VALUE WORKFLOW:
FINAL CONFIRMATION WORKFLOW (MANDATORY):
DATA TYPE VALIDATION:
COLLECTION PRESENTATION: "Now configuring: [X of Y inputs] Task: {task_name} Input: {input_name} ({data_type}) Description: {description} Required: {Yes/No} Default: {default_value or 'None'} Please provide a value, type 'default' to use default, or 'skip' if optional:" CRITICAL RULES:
Args: task_name: Name of the task this input belongs to input_name: Name of the input parameter user_value: Value provided by user (optional) use_default: Whether to use default value (requires confirmation) Returns: Dict containing parameter value and storage info |
| confirm_parameter_inputA | Confirm and store parameter input after user validation. CONFIRMATION PROCESSING (Enhanced with Automatic Rule Updates):
CONFIRMATION TYPES (Preserved):
STORAGE RULES (Enhanced):
AUTOMATIC RULE UPDATE PROCESS: If rule_name is provided, this tool automatically:
Args: task_name: Name of the task this input belongs to input_name: Name of the input parameter rule_input_name: Must be one of the values defined in the rule structure's inputs confirmed_value: The value user confirmed explanation: Add explanation only if dataType is JQ_EXPRESSION or SQL_EXPRESSION. This field provides details about the confirmed_value. confirmation_type: Type of confirmation ("default" or "final") rule_name: Optional rule name for automatic rule updates Returns: Dict containing stored value confirmation and rule update status |
| prepare_input_collection_overviewA | INPUT COLLECTION OVERVIEW & RULE CREATION Prepare and present input collection overview before starting any input collection. MANDATORY FIRST STEP - INPUT OVERVIEW PROCESS (Enhanced): This tool MUST be called before collecting any inputs. It analyzes all selected tasks and presents a complete overview of what inputs will be needed. ENHANCED WITH AUTOMATIC RULE CREATION: After user confirms the input overview, this tool automatically creates the initial rule structure with selected tasks. The rule will be saved with DRAFT status and can be progressively updated as inputs are collected. MANDATORY WORKFLOW ENFORCEMENT - CRITICAL INSTRUCTION:
ENFORCEMENT STEPS:
TASK-BY-TASK INPUT COLLECTION & VALIDATION (CRITICAL ENFORCEMENT): βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ MANDATORY WORKFLOW FOR EACH TASK: FOR EACH TASK in selected_tasks: STEP 1: Collect ALL inputs for current task - Use collect_template_input() for file/template inputs - Use collect_parameter_input() for parameter inputs - Wait for the current task inputs to be collected β PROHIBITED ACTIONS:
β CORRECT WORKFLOW: Task1 Inputs β Execute Task1 β Show Results β Task2 Inputs β Execute Task2 β Show Results β Task3 Inputs β Execute Task3 β Show Results β Complete Rule β WRONG WORKFLOW: Task1 Inputs β Task2 Inputs β Task3 Inputs β [Try to execute later] SELECTIVE INPUT INCLUSION:
FAILURE HANDLING:
HANDLES DUPLICATE INPUT NAMES WITH TASK ALIASES (Preserved):
OVERVIEW REQUIREMENTS (Preserved):
OVERVIEW PRESENTATION FORMAT (Enhanced with Validation): INPUT COLLECTION OVERVIEW: I've analyzed your selected tasks. Here's what we need to configure: TASK 1: [TaskAlias] ([TaskName]) βββββββββββββββββββββββββββββββββββ Template Inputs: β’ [InputName] ([Format] file) - [Description] Unique ID: [TaskAlias.InputName] Parameter Inputs: β’ [InputName] ([DataType]) - [Description] Unique ID: [TaskAlias.InputName] Required: [Yes/No] β οΈ EXECUTION CHECKPOINT: After collecting all Task 1 inputs, execute_task() will be called to execute the task with real data before proceeding to Task 2. TASK 2: [TaskAlias] ([TaskName]) βββββββββββββββββββββββββββββββββββ [... similar structure ...] β οΈ EXECUTION CHECKPOINT: After collecting all Task 2 inputs, execute_task() will be called to execute the task with real data before proceeding to Task 3. SUMMARY:
WORKFLOW:
Ready to start task-by-task input collection with execution checkpoints? CRITICAL WORKFLOW RULES:
CRITICAL REQUIREMENTS:
ARGS:
Returns: Dict containing structured input overview and collection plan with unique identifiers, plus automatic rule creation capability after user confirmation, with explicit execution checkpoints for each task |
| verify_collected_inputsA | Verify all collected inputs with user before rule creation. MANDATORY VERIFICATION STEP (Enhanced): This tool MUST be called after all inputs are collected but before final rule completion. It presents a comprehensive summary of all collected inputs for user verification. ENHANCED WITH AUTOMATIC RULE FINALIZATION: After user confirms verification, this tool can automatically finalize the rule by:
HANDLES DUPLICATE INPUT NAMES WITH TASK ALIASES (Preserved):
VERIFICATION REQUIREMENTS (Preserved):
VERIFICATION PRESENTATION FORMAT (Preserved): "INPUT VERIFICATION SUMMARY: Please review all collected inputs before rule creation: TEMPLATE INPUTS (Uploaded Files): β Task Input: [TaskAlias.InputName] Task: [TaskAlias] ([TaskName]) β Input: [InputName] Format: [Format] File: [filename] URL: [file_url] Size: [file_size] bytes Status: β Validated PARAMETER INPUTS (Values): β Task Input: [TaskAlias.InputName] Task: [TaskAlias] ([TaskName]) β Input: [InputName] Type: [DataType] Value: [user_value] Required: [Yes/No] Status: β Set VERIFICATION CHECKLIST: β‘ All required inputs collected β‘ Template files uploaded and validated β‘ Parameter values set and confirmed β‘ No missing or invalid inputs β‘ Ready for rule creation Are all these inputs correct?
CRITICAL VERIFICATION RULES (Enhanced):
Args: collected_inputs: Dict containing all collected template files and parameter values with unique IDs Returns: Dict containing verification status, user confirmation, and structured inputs for rule finalization |
| execute_taskA | |
| generate_design_notes_previewA | Generate design notes preview for user confirmation before actual creation. DESIGN NOTES PREVIEW GENERATIONThis tool generates a complete Jupyter notebook structure as a dictionary for user review. The MCP will create the full notebook content with 7 standardized sections based on rule context and metadata, then return it for user confirmation. DESIGN NOTES TEMPLATE STRUCTURE REQUIREMENTSThe MCP should generate a Jupyter notebook (.ipynb format) with exactly 7 sections: SECTION 1: Evidence DetailsDESCRIPTION: System identification and rule purpose documentation CONTENT REQUIREMENTS:
FORMAT: Markdown cell with table and code blocks only SECTION 2: Define the System Specific Data (Extended Data Schema)DESCRIPTION: System-specific raw data structure definition with detailed breakdown CONTENT REQUIREMENTS: Step 2a: Inputs
Step 2b: API & Flow
Step 2c: Define the Extended Schema
FORMAT: Markdown headers with detailed lists + large JSON code block SECTION 3: Define the Standard SchemaDESCRIPTION: Standardized compliance data format documentation CONTENT REQUIREMENTS:
Step 3a: Sample Data
FORMAT: JSON code block + comprehensive markdown table SECTION 4: Describe the Compliance TaxonomyDESCRIPTION: Status codes and compliance definitions CONTENT REQUIREMENTS:
FORMAT: Markdown cell with table SECTION 5: Calculation for Compliance Percentage and StatusDESCRIPTION: Percentage calculations and status logic CONTENT REQUIREMENTS:
FORMAT: Markdown header cell + Code cell with calculation logic SECTION 6: Describe (in words) the Remediation Steps for Non-ComplianceDESCRIPTION: Non-compliance remediation procedures CONTENT REQUIREMENTS:
FORMAT: Markdown cell with detailed remediation procedures SECTION 7: Control Setup DetailsDESCRIPTION: Rule configuration and implementation details CONTENT REQUIREMENTS:
FORMAT: Markdown table with control configuration details JUPYTER NOTEBOOK METADATA REQUIREMENTS
MCP CONTENT POPULATION INSTRUCTIONSThe MCP should extract the following information from the rule context:
CONTENT GENERATION GUIDELINES
WORKFLOW
ARGS
RETURNSDict containing complete notebook structure for user review and confirmation |
| create_design_notesA | Create and save design notes after user confirmation. DESIGN NOTES CREATION: This tool actually creates and saves the design notes after the user has reviewed and confirmed the preview structure from generate_design_notes_preview(). WORKFLOW:
Args: rule_name: Name of the rule for which to create design notes design_notes_structure: Complete Jupyter notebook structure as dictionary Returns: Dict containing design notes creation status and access details |
| fetch_rule_design_notesA | Fetch and manage design notes for a rule. WORKFLOW:
KEY RULES:
Args: rule_name: Name of the rule Returns: Dict with success status, rule name, design notes content, and error details |
| generate_rule_readme_previewA | Generate README.md preview for rule documentation before actual creation. RULE README GENERATION: This tool generates a complete README.md structure as a string for user review. The MCP will create comprehensive rule documentation with detailed sections based on rule context and metadata, then return it for user confirmation. README TEMPLATE STRUCTURE REQUIREMENTS: The MCP should generate a README.md with exactly these sections: SECTION 1: Rule HeaderDESCRIPTION: Rule identification and overview CONTENT REQUIREMENTS:
SECTION 2: OverviewDESCRIPTION: High-level rule explanation CONTENT REQUIREMENTS:
SECTION 3: Rule ArchitectureDESCRIPTION: Technical architecture and flow CONTENT REQUIREMENTS:
SECTION 4: InputsDESCRIPTION: Detailed input specifications CONTENT REQUIREMENTS:
SECTION 5: TasksDESCRIPTION: Individual task breakdown CONTENT REQUIREMENTS:
SECTION 6: OutputsDESCRIPTION: Rule output specifications CONTENT REQUIREMENTS:
SECTION 7: ConfigurationDESCRIPTION: Rule configuration and setup CONTENT REQUIREMENTS:
SECTION 8: Usage ExamplesDESCRIPTION: Practical usage scenarios CONTENT REQUIREMENTS:
SECTION 9: I/O MappingDESCRIPTION: Data flow mapping details CONTENT REQUIREMENTS:
SECTION 10: TroubleshootingDESCRIPTION: Common issues and solutions CONTENT REQUIREMENTS:
SECTION 11: Version HistoryDESCRIPTION: Change log and versioning CONTENT REQUIREMENTS:
SECTION 12: ReferencesDESCRIPTION: Additional resources and links CONTENT REQUIREMENTS:
MARKDOWN FORMATTING REQUIREMENTS:
MCP CONTENT POPULATION INSTRUCTIONS: The MCP should extract the following information from the rule context:
PLACEHOLDER REPLACEMENT RULES:
CONTENT GUIDELINES:
WORKFLOW:
Args: rule_name: Name of the rule for which to generate README preview Returns: Dict containing complete README.md content as string for user review |
| create_rule_readmeA | Create and save README.md file after user confirmation. README CREATION: This tool actually creates and saves the README.md file after the user has reviewed and confirmed the preview content from generate_rule_readme_preview(). WORKFLOW:
Args: rule_name: Name of the rule for which to create README readme_content: Complete README.md content as string Returns: Dict containing README creation status and access details |
| update_rule_readmeB | Update existing README.md file with new content. README UPDATE: This tool updates an existing README.md file with new content. Useful for making changes after initial creation or updating documentation as rules evolve. Args: rule_name: Name of the rule for which to update README updated_readme_content: Updated README.md content as string Returns: Dict containing README update status and details |
| get_application_infoA | Get detailed information about an application, including supported credential types. APPLICATION CREDENTIAL CONFIGURATION WORKFLOW:
DATA VALIDATION REQUIREMENTS:
Args: tag_name: The app tag name for retrieving application information Returns: Dict containing application details and supported credential types |
| fetch_execution_progressA | Fetch execution progress for a running rule. IMPORTANT FOR CLAUDE/CLIENT:This tool returns a snapshot of current progress. To see real-time updates:
DISPLAY INSTRUCTIONS FOR CLAUDE:When displaying progress, REPLACE the previous output (don't append): π Execution Progress (Live) βββββββββββββββββββββββββββββββββ Show each task on ONE line that UPDATES in place: β’ task_name (type) [progress_bar] XX% STATUS Use these Unicode blocks for progress bars:
After each poll, REPLACE the entire progress display with new data. DO NOT show multiple versions of the same task. EXAMPLE DISPLAY SEQUENCE: Poll 1: β’ fetch_users (HTTP) β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬ 0% PENDING β’ process_data (Script) β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬ 0% PENDING Poll 2 (REPLACES above): β’ fetch_users (HTTP) π©π©π©π©β¬β¬β¬β¬β¬β¬ 40% INPROGRESS β’ process_data (Script) β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬ 0% PENDING Poll 3 (REPLACES above): β’ fetch_users (HTTP) π¦π¦π¦π¦π¦π¦π¦π¦π¦π¦ 100% COMPLETED β’ process_data (Script) π©π©π©β¬β¬β¬β¬β¬β¬β¬ 30% INPROGRESS RESPONSE FLAGS:
UI DISPLAY REQUIREMENT:
Args: rule_name: Rule being executed execution_id: ID from execute_rule() Returns: Dict with progress data and polling instructions |
| fetch_output_fileA | Fetch and display content of an output file from rule execution. FILE OUTPUT HANDLING: WHEN TO USE:
CONTENT DISPLAY LOGIC:
MANDATORY CONTENT DISPLAY FORMAT:
Returns: Dict containing file content, metadata, and display information |
| fetch_applicationsB | Fetch all available applications from the system. Returns: Dict containing list of applications with their details |
| prepare_applications_for_executionA | Analyze rule tasks and prepare application configuration requirements for execution. This tool helps users understand what applications are needed and whether they can share applications across multiple tasks. WHEN TO USE:
NOTE: This tool is optional. Rules with only 'nocredapp' tasks can be executed directly without any application configuration. Use this tool only when tasks require credentials. APPLICATION SHARING SCENARIOS (when applications are needed):
WORKFLOW:
Args: rule_name: Name of the rule to analyze Returns: Dict with analysis results and configuration guidance |
| add_unique_identifier_to_taskA | Add a unique identifier key-value pair to a specific task's appTags. Use this when multiple tasks share the same appType but need DIFFERENT applications. The unique identifier allows the system to match each application to its specific task. WHEN TO USE:
NOT NEEDED WHEN:
WORKFLOW:
Args: rule_name: Name of the rule containing the task task_alias: Alias of the task to update identifier_key: Unique identifier key (e.g., "purpose", "sourceSystem") identifier_value: Value for the identifier (e.g., "source-repo", "production-db") Returns: Dict with update status and guidance |
| check_rule_statusA | Quick status check showing what's been collected and what's missing. Perfect for resuming in new chat windows. ENHANCED WITH AUTO-INFERENCE STATUS ANALYSIS:
AUTO-INFERENCE LOGIC:
Args: rule_name: Name of the rule to check status for Returns: Dict with auto-inferred status information and accurate next action recommendations |
| fetch_rules_suggestionsA | Tool-based version of This tool serves as the initial step in the rule creation process. It helps determine whether the user's proposed use case matches any existing rule in the catalog. PURPOSE:
WHEN TO USE:
π« DO NOT USE THIS TOOL FOR:
MANDATORY STEP: CONTEXT SUMMARY
WHAT IT DOES:
IF A MATCHING RULE IS FOUND:
IF A SIMILAR RULE EXISTS FOR AN ALTERNATE TECHNOLOGY STACK:
IF NO SUITABLE RULE IS FOUND:
MANDATORY STEPS: README VALIDATION:
README ANALYSIS REPORT:
USER CONFIRMATION BEFORE PROCEEDING: When analyzing a README file:
ITERATE UNTIL MATCH:
CROSS-PLATFORM RULE HANDLING:
Returns:
|
| get_task_detailsB | Tool-based version of get_task_details for improved compatibility. DETAILED TASK ANALYSIS REQUIREMENTS:
INTENTION-BASED OUTPUT CHAINING:
WORKFLOW GAP DETECTION:
COMPLETION INTENTION MATCHING:
IMPORTANT (MANDATORY BEHAVIOR): If the requested task is not found with the user's specification, the system MUST:
Args: task_name: The name of the task for which to retrieve details Returns: A dictionary containing the complete task information if found, OR executes the user-selected alternative approach, OR creates a support ticket (with collected details) if chosen |
| create_ruleA | Create a rule with the provided structure. COMPLETE RULE CREATION PROCESS WITH PROGRESSIVE SAVING: This tool now handles both initial rule creation and progressive updates during the rule creation workflow. It intelligently detects the completion status and sets appropriate metadata automatically. It returns the URL to view the rule in the UI once it is created display the URL in chat. ENHANCED FOR PROGRESSIVE SAVING:
CRITICAL REQUIREMENT - INPUTS META:
AUTOMATIC STATUS DETECTION:
RULE COMPLETION ANALYSIS:
PROGRESSIVE CREATION PHASES (Auto-detected):
ORIGINAL REQUIREMENTS MAINTAINED:
CRITICAL: This tool should be called:
PRE-CREATION REQUIREMENTS (Original):
STEP 1 - PRIMARY APPLICATION TYPE DETERMINATION (Preserved): Before creating rule structure, determine primary application type:
STEP 2 - RULE STRUCTURE WITH TASK ALIASES (Preserved): STEP 3 - I/O MAPPING WITH TASK ALIASES (Preserved):
STEP 4 - inputsMeta__ Cleanup: In spec.inputsMeta__, retain only the entries whose keys exist in spec.inputs. Remove any fields in spec.inputsMeta__ that are not present in spec.inputs. VALIDATION CHECKLIST (Preserved): β‘ Rule structure validation against schema β‘ Task alias validation in I/O mappings β‘ Primary app type determination β‘ Input/output specifications validation β‘ Mandatory compliance outputs present β‘ Sequential data flow in I/O mappings Args: rule_structure: Complete rule structure with any level of completion Returns: Result of rule creation including auto-detected status and completion level |
| fetch_ruleB | Fetch rule details by rule name. Args: rule_name: Name of the rule to retrieve Returns: Dict containing complete rule structure and metadata |
| get_rules_summaryA | Tool-based version of This tool serves as the initial step in the rule creation process. It helps determine whether the user's proposed use case matches any existing rule in the catalog. PURPOSE:
WHEN TO USE:
π« DO NOT USE THIS TOOL FOR:
WHAT IT DOES:
IF A MATCHING RULE IS FOUND:
IF A SIMILAR RULE EXISTS FOR AN ALTERNATE TECHNOLOGY STACK:
IF NO SUITABLE RULE IS FOUND:
MANDATORY STEPS: README VALIDATION:
README ANALYSIS REPORT:
USER CONFIRMATION BEFORE PROCEEDING: When analyzing a README file:
ITERATE UNTIL MATCH:
CROSS-PLATFORM RULE HANDLING:
Returns:
|
| execute_ruleA | RULE EXECUTION WORKFLOW: PREREQUISITE STEPS: 0. MANDATORY: Check rule status to ensure rule is fully developed before execution
APPLICATION-TASK MATCHING LOGIC (when applications are needed):
MATCHING SCENARIOS:
APPLICATION CONFIGURATION FORMAT (when needed):
For existing application (can be shared across multiple tasks):
For new credentials:
WORKFLOW FOR MULTIPLE TASKS WITH SAME APPTYPE:
UI DISPLAY REQUIREMENT:
CRITICAL: rule_inputs MUST be the complete spec.inputsMeta__ objects with ALL original fields (name, description, dataType, repeated, allowedValues, required, defaultValue, format, showField, explanation) plus the 'value' field. DO NOT send trimmed objects with only name/dataType/value. MANDATORY: The 'value' field content MUST also be copied to the 'defaultValue' field. Both fields must contain identical values. Example: if value="CSV", then defaultValue must also be "CSV". Args: rule_name: The name of the rule to be executed. from_date: (Optional) Start date provided by the user in the format YYYY-MM-DD. to_date: (Optional) End date provided by the user in the format YYYY-MM-DD. rule_inputs: Complete spec.inputsMeta__ objects with ALL fields plus 'value' field, and 'defaultValue' set to same value as 'value'. applications: Application configuration details. For rules with only 'nocredapp' tasks, pass an empty list and the system will automatically use the hardcoded nocredapp application structure. is_application_data_provided_by_user (bool): Indicates whether application data was provided by the user. - Set to True if user provided or configured application details during execution. - Set to False if using nocredapp (empty applications list) or pre-existing applications. Returns: Dict with execution results |
| configure_rule_output_schemaA | PREREQUISITE β MUST RUN FIRST (NON-SKIPPABLE)
This tool is a hard prerequisite and MUST be executed successfully before the PURPOSE Establish the rule's output schema policy for ComplianceCow and apply any required transformations. In ComplianceCow, we maintain a standard format for storing evidence records. The user MUST choose one of the following rule output options:
USER PROMPT (MANDATORY β NEVER SKIPPABLE)
The workflow MUST always pause and explicitly prompt the user before proceeding. VALIDATION & ENFORCEMENT
BEHAVIOR BY SELECTION A) If user selects STANDARD ONLY:
B) If user selects EXTENDED ONLY:
C) If user selects BOTH:
DEEPER ANALYSIS RULES
MANDATORY KEYS (MUST ALWAYS BE MAPPED β IN THIS EXACT ORDER)
VALIDATION & ENFORCEMENT
EXECUTION ORDER GUARANTEE
On success, and ONLY after input collection and configuration confirmation,
the next tool to run MUST be |
| list_workflow_event_categoriesA | Retrieve available workflow event categories. Event categories help organize workflow triggers by type (e.g., assessment events, time-based events, user actions). This is useful for filtering and selecting appropriate events when building workflows. Returns: - eventCategories: List of event categories with type and displayable name - error: Error message if retrieval fails |
| list_workflow_eventsA | Retrieve available workflow events that can trigger workflows. Events are the starting points of workflows. Each event has a payload that provides data to subsequent workflow nodes. Events are categorized into two types: System Events: Automatically triggered by the system when specific actions occur. Examples include:
Custom Events: Manually triggered events that can be used to:
Returns: - systemEvents (List[WorkflowEventVO]): A list of system events that are automatically triggered. - id (str) - categoryId (str) - desc (str) - displayable (str) - payload [List[WorkflowPayloadVO]] - status (str) - type (str) - customEvents (List[WorkflowEventVO]): A list of custom events that can be manually triggered. - id (str) - categoryId (str) - desc (str) - displayable (str) - payload [List[WorkflowPayloadVO]] - status (str) - type (str) - error (Optional[str]): An error message if any issues occurred during retrieval. |
| list_workflow_activity_typesB | Get available workflow activity types. Activity types define what kind of actions can be performed in workflow nodes:
Returns: List of available activity types |
| list_workflow_function_categoriesA | Retrieve available workflow function categories. Function categories help organize workflow activities by type. This is useful for filtering and selecting appropriate functions when building workflows. Returns: - activity categories (List[WorkflowActivityCategoryItemVO]): List of activity categories. - name (str): Name of the category. - error (Optional[str]): An error message if any issues occurred during retrieval. |
| list_workflow_functionsA | Retrieve available workflow functions (activities). Functions are the core actions that can be performed in workflow nodes. They take inputs and produce outputs that can be used by subsequent nodes. Only active functions are returned. Returns: - activities (List[WorkflowActivityVO]): List of active workflow functions with input/output specifications - id: Optional[str] = "" - categoryId (str) - desc (str) - displayable Optional[str] = "" - name (str) - inputs [List[WorkflowInputsVO]] - outputs [List[WorkflowOutputsVO]] - status (str) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| generate_chart_prompt | |
| generate_cypher_query_for_control | |
| list_as_table_prompt | |
| rule_generation_prompt | |
| rule_input_collection | |
| alterntive_prompt | |
| ccow_workflow_knowledge |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_graph_schema_relationship | Retrieve the complete graph database schema and relationship structure for ComplianceCow. This resource provides essential information about the Neo4j compliance database structure, including node types, relationships, and hierarchical patterns. CRITICAL INFORMATION FOR QUERY CONSTRUCTION: 1. CONTROL HIERARCHY ANALYSIS: Before querying controls, ALWAYS determine the hierarchy depth using: MATCH (root:Control) WHERE NOT ()-[:HAS_CHILD]->(root) WITH root MATCH path = (root)-[:HAS_CHILD*]->(leaf) WHERE NOT (leaf)-[:HAS_CHILD]->() RETURN root.id, leaf.id, length(path) as depth ORDER BY depth DESC LIMIT 1 2. RECURSIVE QUERY PATTERNS: - Use [HAS_CHILD*] for variable-length traversal - Use [HAS_CHILD*1..n] to limit depth - Example: MATCH (parent)-[:HAS_CHILD*]->(descendant) 3. EVIDENCE LOCATION: Evidence is ONLY available on leaf controls (controls with no children): MATCH (control:Control)-[:HAS_EVIDENCE]->(evidence:Evidence) WHERE NOT (control)-[:HAS_CHILD]->() 4. APOC PROCEDURES (if available): - apoc.path.subgraphAll() for complex traversals - apoc.path.expandConfig() for conditional expansion 5. CONTROL STATUS INFORMATION: - status: ["Completed", "In Progress", "Pending", "Unassigned"] - complianceStatus: ["COMPLIANT", "NON_COMPLIANT", "NOT_DETERMINED"] - Overdue controls: due_date < current_date & status is [In process, Pending] (manual check required) 6. PERFORMANCE CONSIDERATIONS: - For large datasets, use LIMIT clauses - Consider using aggregation functions for summaries - Use WHERE clauses to filter early in the query 7. INTELLIGENT QUERY REFINEMENT FOR LARGE DATASETS: When queries return large datasets, implement smart refinement: a) BROAD QUERY DETECTION: - Detect queries with vague parameters like "all", "list everything", empty values - Check dataset size before returning overwhelming results - Use summary queries to provide meaningful overviews first b) REFINEMENT SUGGESTION CATEGORIES: For CONTROLS - suggest filtering by: - Status: pending, completed, in progress, unassigned, overdue - Compliance: compliant, non-compliant, needs determination - Priority: high, medium, low priority controls - Time: due dates, recent updates, specific quarters c) USER GUIDANCE APPROACH: - Provide summary statistics instead of overwhelming lists - Offer specific example queries users can immediately try - Use clear, actionable language with practical suggestions - Format responses with visual hierarchy for easy scanning 8. SUMMARY QUERY APPROACH FOR LARGE DATASETS: Instead of returning overwhelming full record sets, use aggregation patterns: - Count totals by status, compliance state, framework, assignment - Provide breakdown statistics rather than individual records - Show distribution patterns and key metrics - Offer sample records alongside summary statistics - Guide users toward more specific queries based on summary insights Schema Information: - Node types and their properties - Relationship types and directions - Constraints and indexes - Hierarchy depth patterns Use this schema information to construct accurate Cypher queries that respect the hierarchical nature of compliance controls. Returns: dict: Complete database schema with structural patterns and query guidelines str: Error message if schema retrieval fails |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ComplianceCow/cow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server