@securityreviewai/security-review-mcp 0.2.11 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -174,7 +174,7 @@ export class SraiApiClient {
174
174
  return this.request("GET", `/api/projects/${projectId}/profile/compliance-requirements/${requirementId}`);
175
175
  }
176
176
  async updateVibeProjectProfile(projectId, payload) {
177
- return this.request("PATCH", `/api/projects/${projectId}/profile`, {
177
+ return this.request("POST", `/api/projects/${projectId}/ai-ide/profile`, {
178
178
  jsonBody: payload,
179
179
  });
180
180
  }
@@ -109,19 +109,17 @@ export function registerProjectTools(server) {
109
109
  .array(z.string())
110
110
  .optional()
111
111
  .describe("List of architecture note strings describing the system design."),
112
- tech_categories: z
112
+ technology_categories: z
113
113
  .array(z.object({
114
- name: z.string().describe("Technology category name (e.g. 'Frontend', 'Database')."),
115
- tools: z.array(z.string()).optional().describe("Tools or technologies within this category."),
116
- description: z.string().optional().describe("Description of how this category is used."),
114
+ category_name: z.string().describe("Technology category name (e.g. 'Frontend', 'Database')."),
115
+ items: z.array(z.string()).optional().describe("Tools or technologies within this category."),
117
116
  }))
118
117
  .optional()
119
- .describe("Technology categories with optional tools and descriptions."),
118
+ .describe("Technology categories with optional item lists."),
120
119
  user_groups: z
121
120
  .array(z.object({
122
121
  name: z.string().describe("Name of the user group."),
123
122
  group_type: z.string().optional().describe("Type of the user group (e.g. 'internal', 'external')."),
124
- description: z.string().optional().describe("Description of this user group."),
125
123
  }))
126
124
  .optional()
127
125
  .describe("User groups that interact with the project."),
@@ -131,16 +129,19 @@ export function registerProjectTools(server) {
131
129
  .describe("Compliance framework names or requirement identifiers (e.g. 'PCI-DSS', 'HIPAA', 'SOC2')."),
132
130
  description: z.string().optional().describe("High-level description or purpose of the project profile."),
133
131
  language_stacks: z
134
- .array(z.string())
132
+ .array(z.object({
133
+ layer: z.string().describe("Stack layer name (e.g. 'frontend', 'backend', 'database')."),
134
+ languages: z.array(z.string()).optional().describe("Languages or frameworks in this layer (e.g. ['TypeScript', 'React'])."),
135
+ }))
135
136
  .optional()
136
- .describe("Programming languages and frameworks used (e.g. 'Python/Django', 'TypeScript/React')."),
137
+ .describe("Language stack nodes, each representing a layer with its languages."),
137
138
  },
138
- }, async ({ project_id, architecture_notes, tech_categories, user_groups, compliance_requirements, description, language_stacks }) => {
139
+ }, async ({ project_id, architecture_notes, technology_categories, user_groups, compliance_requirements, description, language_stacks }) => {
139
140
  const payload = {};
140
141
  if (architecture_notes !== undefined)
141
142
  payload.architecture_notes = architecture_notes;
142
- if (tech_categories !== undefined)
143
- payload.tech_categories = tech_categories;
143
+ if (technology_categories !== undefined)
144
+ payload.technology_categories = technology_categories;
144
145
  if (user_groups !== undefined)
145
146
  payload.user_groups = user_groups;
146
147
  if (compliance_requirements !== undefined)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@securityreviewai/security-review-mcp",
3
- "version": "0.2.11",
3
+ "version": "0.2.13",
4
4
  "description": "Security Review MCP server (pure Node/TypeScript, npx-ready)",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,