Skip to content

Commit d58d92b

Browse files
committed
Remove deactivate_test_entity and upload_document tools
- Removed deactivate_test_entity function and schema from tests.ts - Removed upload_document tool and deleted documents.ts file completely - Updated server registration to exclude removed tools - Updated README to remove references to deactivation and document upload - Updated eval script to remove test cases for deleted tools - Simplified server description to focus on read-only operations
1 parent 04bf3e3 commit d58d92b

File tree

5 files changed

+2
-182
lines changed

5 files changed

+2
-182
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: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { zodToJsonSchema } from "zod-to-json-schema";
33
import {
44
GetTestsTool,
55
GetTestEntitiesTool,
6-
DeactivateTestEntityTool,
76
} from "../operations/tests.js";
87
import {
98
GetFrameworksTool,
@@ -32,14 +31,6 @@ const tools = [
3231
parameters: zodToJsonSchema(GetTestEntitiesTool.parameters),
3332
},
3433
},
35-
{
36-
type: "function" as const,
37-
function: {
38-
name: DeactivateTestEntityTool.name,
39-
description: DeactivateTestEntityTool.description,
40-
parameters: zodToJsonSchema(DeactivateTestEntityTool.parameters),
41-
},
42-
},
4334
{
4435
type: "function" as const,
4536
function: {
@@ -109,18 +100,6 @@ const testCases: TestCase[] = [
109100
expectedParams: { testId: "aws-security-groups-open-to-world" },
110101
description: "Should call get_test_entities for specific test details",
111102
},
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-
},
124103
{
125104
prompt: "What compliance frameworks are we tracking?",
126105
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 & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -79,41 +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-
}
11782

11883
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.`;
11984

@@ -171,32 +136,3 @@ export const GetTestEntitiesTool: Tool<typeof GetTestEntitiesInput> = {
171136
parameters: GetTestEntitiesInput,
172137
};
173138

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)