Skip to content

Commit 32883cd

Browse files
authored
Merge pull request #15 from VantaInc/showzeb/AI-769
Remove deactivate_test_entity and upload_document tools
2 parents 04bf3e3 + 6c062a2 commit 32883cd

File tree

5 files changed

+3
-188
lines changed

5 files changed

+3
-188
lines changed

README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Vanta MCP Server
22

3-
A <a href="https://modelcontextprotocol.com/"> Model Context Protocol </a> server that provides access to Vanta's automated security compliance platform. Vanta helps organizations achieve and maintain compliance with security frameworks like SOC 2, ISO 27001, HIPAA, GDPR, and others through automated monitoring, evidence collection, and continuous security testing. This MCP server enables AI assistants to interact with Vanta's API to retrieve compliance test results, manage security findings, access framework requirements, and handle compliance documentation.
3+
A <a href="https://modelcontextprotocol.com/"> Model Context Protocol </a> server that provides access to Vanta's automated security compliance platform. Vanta helps organizations achieve and maintain compliance with security frameworks like SOC 2, ISO 27001, HIPAA, GDPR, and others through automated monitoring, evidence collection, and continuous security testing. This MCP server enables AI assistants to interact with Vanta's API to retrieve compliance test results, manage security findings, and access framework requirements.
44

55
> **⚠️ Important Disclaimer:** This server provides AI assistants with access to your Vanta compliance data. Always verify the accuracy and appropriateness of AI-generated responses before taking any compliance or security actions. Users are responsible for reviewing all outputs and ensuring they meet their organization's security and compliance requirements.
66
@@ -11,7 +11,6 @@ A <a href="https://modelcontextprotocol.com/"> Model Context Protocol </a> serve
1111
- Access Vanta's 1,200+ automated security tests that run continuously to monitor compliance
1212
- Retrieve test results with filtering by status (passing/failing), cloud provider (AWS/Azure/GCP), or compliance framework
1313
- Get detailed information about failing resources (test entities) that need remediation
14-
- Temporarily deactivate specific test entities during planned maintenance or remediation work
1514

1615
### Compliance Framework Operations
1716

@@ -38,12 +37,10 @@ A <a href="https://modelcontextprotocol.com/"> Model Context Protocol </a> serve
3837
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
3938
| `get_tests` | Retrieve Vanta's automated security and compliance tests. Filter by status (OK, NEEDS_ATTENTION, DEACTIVATED), cloud integration (aws, azure, gcp), or compliance framework (soc2, iso27001, hipaa). Returns test results showing which security controls are passing or failing across your infrastructure. |
4039
| `get_test_entities` | Get specific resources (entities) that are failing a particular security test. For example, if an AWS security group test is failing, this returns the actual security group IDs and details about what's wrong. Essential for understanding exactly which infrastructure components need remediation. |
41-
| `deactivate_test_entity` | Temporarily suppress alerts for a specific failing resource during planned maintenance, system updates, or while remediation is in progress. Requires a business justification and end date. Helps manage security alerts during planned operational activities without compromising audit trails. |
4240
| `get_frameworks` | List all compliance frameworks available in your Vanta account (SOC 2, ISO 27001, HIPAA, GDPR, FedRAMP, PCI, etc.) along with completion status and progress metrics. Shows which frameworks you're actively pursuing and their current compliance state. |
4341
| `get_framework_controls` | Get detailed security control requirements for a specific compliance framework. Returns the specific controls, their descriptions, implementation guidance, and current compliance status. Essential for understanding what security measures are required for each compliance standard. |
4442
| `get_controls` | List all security controls across all frameworks in your Vanta account. Returns control names, descriptions, framework mappings, and current implementation status. Use this to see all available controls or to find a specific control ID for use with other tools. |
4543
| `get_control_tests` | Get all automated tests that validate a specific security control. Use this when you know a control ID and want to see which specific tests monitor compliance for that control. Returns test details, current status, and any failing entities for the control's tests. |
46-
| `upload_document` | Upload compliance documentation and evidence files to Vanta. Used for policy documents, procedures, audit evidence, and proof of security control implementation. Supports the documentation requirements needed for compliance audits and framework certification. |
4744

4845
## Configuration
4946

src/eval/eval.ts

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import OpenAI from "openai";
22
import { zodToJsonSchema } from "zod-to-json-schema";
3-
import {
4-
GetTestsTool,
5-
GetTestEntitiesTool,
6-
DeactivateTestEntityTool,
7-
} from "../operations/tests.js";
3+
import { GetTestsTool, GetTestEntitiesTool } from "../operations/tests.js";
84
import {
95
GetFrameworksTool,
106
GetFrameworkControlsTool,
@@ -32,14 +28,6 @@ const tools = [
3228
parameters: zodToJsonSchema(GetTestEntitiesTool.parameters),
3329
},
3430
},
35-
{
36-
type: "function" as const,
37-
function: {
38-
name: DeactivateTestEntityTool.name,
39-
description: DeactivateTestEntityTool.description,
40-
parameters: zodToJsonSchema(DeactivateTestEntityTool.parameters),
41-
},
42-
},
4331
{
4432
type: "function" as const,
4533
function: {
@@ -109,18 +97,6 @@ const testCases: TestCase[] = [
10997
expectedParams: { testId: "aws-security-groups-open-to-world" },
11098
description: "Should call get_test_entities for specific test details",
11199
},
112-
{
113-
prompt:
114-
"Deactivate entity sg-12345 for test aws-security-groups-open-to-world until 2024-02-15T10:00:00Z due to scheduled maintenance",
115-
expectedTool: "deactivate_test_entity",
116-
expectedParams: {
117-
entityId: "sg-12345",
118-
testId: "aws-security-groups-open-to-world",
119-
deactivateReason: "scheduled maintenance",
120-
deactivateUntil: "2024-02-15T10:00:00Z",
121-
},
122-
description: "Should call deactivate_test_entity for maintenance",
123-
},
124100
{
125101
prompt: "What compliance frameworks are we tracking?",
126102
expectedTool: "get_frameworks",

src/index.ts

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
22
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
33
import {
4-
deactivateTestEntity,
5-
DeactivateTestEntityTool,
64
getTestEntities,
75
GetTestEntitiesTool,
86
getTests,
@@ -14,7 +12,6 @@ import {
1412
getFrameworkControls,
1513
getFrameworks,
1614
} from "./operations/frameworks.js";
17-
import { UploadDocumentTool, uploadDocument } from "./operations/documents.js";
1815
import {
1916
GetControlsTool,
2017
GetControlTestsTool,
@@ -27,7 +24,7 @@ const server = new McpServer({
2724
name: "vanta-mcp",
2825
version: "1.0.0",
2926
description:
30-
"Model Context Protocol server for Vanta's automated security compliance platform. Provides access to security tests, compliance frameworks, and documentation management for SOC 2, ISO 27001, HIPAA, GDPR and other standards.",
27+
"Model Context Protocol server for Vanta's automated security compliance platform. Provides access to security tests, compliance frameworks, and security controls for SOC 2, ISO 27001, HIPAA, GDPR and other standards.",
3128
});
3229

3330
server.tool(
@@ -44,13 +41,6 @@ server.tool(
4441
getTestEntities,
4542
);
4643

47-
server.tool(
48-
DeactivateTestEntityTool.name,
49-
DeactivateTestEntityTool.description,
50-
DeactivateTestEntityTool.parameters.shape,
51-
deactivateTestEntity,
52-
);
53-
5444
server.tool(
5545
GetFrameworksTool.name,
5646
GetFrameworksTool.description,
@@ -79,13 +69,6 @@ server.tool(
7969
getControlTests,
8070
);
8171

82-
server.tool(
83-
UploadDocumentTool.name,
84-
UploadDocumentTool.description,
85-
UploadDocumentTool.parameters.shape,
86-
uploadDocument,
87-
);
88-
8972
async function main() {
9073
try {
9174
await initializeToken();

src/operations/documents.ts

Lines changed: 0 additions & 75 deletions
This file was deleted.

src/operations/tests.ts

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -79,42 +79,6 @@ export async function getTestEntities(
7979
};
8080
}
8181

82-
export async function deactivateTestEntity(
83-
args: z.infer<typeof DeactivateTestEntityInput>,
84-
): Promise<CallToolResult> {
85-
const url = new URL(
86-
`/v1/tests/${args.testId}/entities/${args.entityId}/deactivate`,
87-
baseApiUrl(),
88-
);
89-
const response = await makeAuthenticatedRequest(url.toString(), {
90-
method: "POST",
91-
headers: {
92-
"Content-Type": "application/json",
93-
},
94-
body: JSON.stringify({
95-
deactivateUntil: args.deactivateUntil,
96-
reason: args.deactivateReason,
97-
}),
98-
});
99-
100-
if (!response.ok) {
101-
return {
102-
content: [
103-
{
104-
type: "text" as const,
105-
text: `Url: ${url.toString()}, Error: ${response.statusText}`,
106-
},
107-
],
108-
};
109-
}
110-
111-
return {
112-
content: [
113-
{ type: "text" as const, text: JSON.stringify(await response.json()) },
114-
],
115-
};
116-
}
117-
11882
const TOOL_DESCRIPTION = `Retrieve Vanta's automated security and compliance tests. Vanta runs 1,200+ automated tests continuously to monitor compliance across your infrastructure. Filter by status (OK, NEEDS_ATTENTION, DEACTIVATED), cloud integration (aws, azure, gcp), or compliance framework (soc2, iso27001, hipaa). Returns test results showing which security controls are passing or failing across your infrastructure. Tests that are NOT_APPLICABLE to your resources are included by default - use statusFilter=NEEDS_ATTENTION to retrieve only actionable failing tests.`;
11983

12084
const TEST_STATUS_FILTER_DESCRIPTION = `Filter tests by their status.
@@ -170,33 +134,3 @@ export const GetTestEntitiesTool: Tool<typeof GetTestEntitiesInput> = {
170134
description: `Get the specific failing resources (entities) for a known test ID. Use this when you already know the test name/ID and need to see which specific infrastructure resources are failing that test. For example, if you know "aws-security-groups-open-to-world" test is failing, this returns the actual security group IDs that are failing. Requires a specific testId parameter. Do NOT use this for general test discovery - use get_tests for that.`,
171135
parameters: GetTestEntitiesInput,
172136
};
173-
174-
export const DeactivateTestEntityInput = z.object({
175-
testId: z
176-
.string()
177-
.describe(
178-
"Test ID in lowercase with hyphens, e.g. 'aws-security-groups-open-to-world'",
179-
),
180-
entityId: z
181-
.string()
182-
.describe(
183-
"Entity ID of the specific resource to deactivate, e.g. 'sg-12345'",
184-
),
185-
deactivateReason: z
186-
.string()
187-
.describe(
188-
"Business reason for deactivation, e.g. 'Scheduled maintenance' or 'Emergency patching'",
189-
),
190-
deactivateUntil: z
191-
.string()
192-
.describe(
193-
"End date/time in ISO format YYYY-MM-DDTHH:MM:SSZ, e.g. '2024-02-15T10:00:00Z'",
194-
),
195-
});
196-
197-
export const DeactivateTestEntityTool: Tool<typeof DeactivateTestEntityInput> =
198-
{
199-
name: "deactivate_test_entity",
200-
description: `DEACTIVATE/SUPPRESS alerts for a specific failing resource. Use this ONLY when you need to temporarily silence/disable/mute alerts for a specific entity during maintenance, patching, or remediation work. Requires both testId and entityId parameters, plus a reason and end date. This is for SUPPRESSING existing alerts, not for viewing them.`,
201-
parameters: DeactivateTestEntityInput,
202-
};

0 commit comments

Comments
 (0)