humanizetech commited on
Commit
dc04ae2
ยท
1 Parent(s): e671617

docs: Update README to highlight hackathon submission, detail covered tracks, and revise the 'MCP in Action' architecture and workflow.

Browse files
Files changed (1) hide show
  1. README.md +157 -478
README.md CHANGED
@@ -21,76 +21,79 @@ thumbnail: >-
21
  ---
22
 
23
 
24
- # ๐Ÿ† VAPT Agent - Intelligent API Security Testing
 
 
 
 
25
 
26
  > **MCP's 1st Birthday Hackathon Submission** ๐ŸŽ‰
27
  > *Hosted by Anthropic & Gradio on Hugging Face*
28
  > [๐Ÿ”— Hackathon Page](https://huggingface.co/MCP-1st-Birthday)
29
 
30
- LinkedIn post - [Refer HERE](https://www.linkedin.com/posts/chsubhasis_vapt-agent-activity-7399454144895467520-yR6I?utm_source=share&utm_medium=member_desktop&rcm=ACoAABIj1NcBQpSiJ5ZDC9YQBBsmL4fDfy7D0LU) || Demo Video - [Refer HERE](https://youtu.be/wFgW_o48pw8?si=2lpag5I4zsUz8J2d)
31
- ---
 
32
 
33
- ## ๐Ÿ“‹ Project Overview
34
 
35
- **VAPT Agent** is an autonomous, AI-powered **Vulnerability Assessment and Penetration Testing (VAPT)** platform that revolutionizes API security testing. By combining **Anthropic's Claude Agent SDK**, **Postman MCP Server**, **Gradio Web Interface**, and **RAG-based security education**, this project showcases the power of Model Context Protocol (MCP) for building intelligent, context-aware security tools.
 
36
 
37
- ### ๐ŸŽฏ What Makes This Special?
38
 
39
- This project demonstrates **three powerful MCP integrations**:
40
 
41
- 1. **๐Ÿค– Anthropic Claude Agent SDK** - Powers the core VAPT reasoning agent with Claude Haiku 4.5 from AWS Bedrock.
42
- 2. **๐Ÿ“ฎ Postman MCP Server** - Enables automatic API discovery and OpenAPI specification generation
43
- 3. **๐Ÿ› ๏ธ Custom VAPT MCP Server** - Provides specialized security testing tools (SQL injection, XSS, auth testing, etc.)
44
- 4. **๐Ÿงฉ Gradio Web Interface** โ€“ Provides an interactive, real-time UI for the VAPT workflow, enabling progress streaming, report visualization, dashboard analytics, and an integrated AI Security Tutor.
 
 
 
 
45
 
46
- Combined with a **modern Gradio interface** and **RAG-powered AI tutor** using Chroma vector search, VAPT Agent bridges the gap between automated security testing and developer education.
47
 
48
  ---
49
 
50
- ## ๐Ÿ—๏ธ Architecture Overview
51
 
52
- ```
53
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
54
- โ”‚ Gradio Web Interface โ”‚
55
- โ”‚ (Real-time Progress, Visual Dashboard, AI Security Tutor) โ”‚
56
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
57
- โ”‚
58
- โ–ผ
59
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
60
- โ”‚ VAPT Agent Orchestrator โ”‚
61
- โ”‚ (vapt_agent.py) โ”‚
62
- โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
63
- โ”‚ โ”‚
64
- โ–ผ โ–ผ
65
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
66
- โ”‚ Claude Agent SDK โ”‚ โ”‚ MCP Servers (via Claude SDK) โ”‚
67
- โ”‚ (Haiku 4.5 Model) โ”‚โ—„โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
68
- โ”‚ โ”‚ โ”‚ โ”‚ Postman โ”‚ โ”‚ Custom VAPT โ”‚ โ”‚
69
- โ”‚ โ€ข Reasoning โ”‚ โ”‚ โ”‚ MCP Server โ”‚ โ”‚ MCP Tools โ”‚ โ”‚
70
- โ”‚ โ€ข Test Planning โ”‚ โ”‚ โ”‚ (SSE) โ”‚ โ”‚ (Local Server) โ”‚ โ”‚
71
- โ”‚ โ€ข Report Gen โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
72
- โ””โ”€โ”€โ”€โ”€โ”€๏ฟฝ๏ฟฝ๏ฟฝโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
73
- โ”‚
74
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
75
- โ–ผ โ–ผ
76
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
77
- โ”‚ Postman API โ”‚ โ”‚ Target API Endpoint โ”‚
78
- โ”‚ โ€ข Discovery โ”‚ โ”‚ โ€ข Security Testing โ”‚
79
- โ”‚ โ€ข Schema Gen โ”‚ โ”‚ โ€ข Vuln Detection โ”‚
80
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
81
 
 
82
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
83
- โ”‚ AI Security Tutor (RAG) โ”‚
84
- โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
85
- โ”‚ โ”‚ Nebius LLM โ”‚ โ”‚ Chroma DB โ”‚ โ”‚ Nebius Embeddings โ”‚ โ”‚
86
- โ”‚ โ”‚ (gpt-oss-20b)โ”‚โ—„โ”€โ”ค Vector Store โ”‚โ—„โ”€โ”ค (Qwen3-Embed-8B) โ”‚ โ”‚
87
- โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
88
- โ”‚ โ–ฒ โ–ฒ โ”‚
89
- โ”‚ โ”‚ โ”‚ โ”‚
90
- โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€ VAPT Report Context โ”‚
91
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
 
 
 
 
 
 
 
 
 
92
  ```
93
-
94
  ### ๐Ÿ”„ How It Works
95
 
96
  1. **User Input** โ†’ User provides API endpoint via Gradio interface
@@ -98,87 +101,58 @@ Combined with a **modern Gradio interface** and **RAG-powered AI tutor** using C
98
  3. **Testing** โ†’ Agent invokes **Custom VAPT MCP tools** to test for vulnerabilities
99
  4. **Reasoning** โ†’ **Claude Haiku 4.5** through AWS Bedrock analyzes results and generates comprehensive security report
100
  5. **Visualization** โ†’ Gradio dashboard displays risk scores and severity charts
101
- 6. **Education** โ†’ User asks questions โ†’ **AI Tutor** uses **RAG (Chroma + Nebius embeddings)** to retrieve relevant report sections โ†’ **Nebius LLM** generates educational explanations
102
-
103
- ---
104
-
105
- ## โœจ Key Features
106
-
107
- ### ๐Ÿ”’ Comprehensive Security Testing
108
-
109
- Automated vulnerability detection powered by Claude's reasoning and custom MCP tools:
110
-
111
- - **Injection Attacks**: SQL injection, XSS, path traversal
112
- - **Authentication & Authorization**: Broken auth detection, token validation
113
- - **Rate Limiting**: DoS vulnerability assessment, burst testing (50 requests)
114
- - **CORS Policy**: Origin validation, wildcard detection
115
- - **Security Headers**: HSTS, CSP, X-Frame-Options, X-Content-Type-Options, etc.
116
-
117
- ### ๐ŸŽจ Modern Gradio Web Interface
118
 
119
- Beautiful, responsive UI built with Gradio featuring:
120
 
121
- - **Real-time Progress Streaming** from Claude agent
122
- - **Downloadable Markdown Reports** for audit trails
123
- - **Visual Risk Dashboard** with interactive charts (risk gauge + severity pie chart)
124
- - **Tabbed Interface** for organized information flow
125
- - **Custom CSS Styling** for professional appearance
126
-
127
- ### ๐Ÿง  RAG-Powered AI Security Tutor
128
-
129
- **Context Engineering & Retrieval-Augmented Generation (RAG)** implementation:
130
-
131
- #### How RAG Works in VAPT Agent:
132
-
133
- 1. **Document Chunking** (`ai_tutor.py`):
134
- - Report split into logical sections based on markdown headers (`##`)
135
- - Large sections auto-chunked to ~2000 characters for optimal retrieval
136
- - Preserves context boundaries for coherent answers
137
-
138
- 2. **Vector Embedding** (Nebius + Chroma):
139
- - Each chunk embedded using **Qwen3-Embedding-8B** (Nebius)
140
- - Vectors stored in **Chroma** ephemeral in-memory database
141
- - Index automatically rebuilt when report changes (SHA-256 content hashing)
142
- - Never reuses old vectors for new reports
143
-
144
- 3. **Semantic Search**:
145
- - User question embedded with same model
146
- - Top-K (default: 4) relevant chunks retrieved via cosine similarity
147
- - Context passed to LLM for grounded responses
148
-
149
- 4. **Context Engineering**:
150
- - System prompt instructs LLM to prioritize retrieved VAPT report context
151
- - Combines report snippets + optional web search (Tavily)
152
- - Prevents hallucination by grounding answers in actual findings
153
-
154
- **Benefits**:
155
- - โœ… Accurate answers specific to YOUR security report
156
- - โœ… No generic security advice - tailored to actual findings
157
- - โœ… Efficient: Only relevant context sent to LLM (cost-effective)
158
- - โœ… Educational: Explains vulnerabilities in your specific API
159
 
160
- ### ๐Ÿ“ฎ Postman MCP Integration
 
 
 
 
 
 
 
161
 
162
- Leverages **Postman's official MCP server** (SSE protocol):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
 
164
- - Automatic API endpoint discovery
165
- - OpenAPI/Swagger specification generation
166
- - Request/response schema analysis
167
- - Collection management for organized testing
168
- - Seamless integration via Claude Agent SDK
169
 
170
- ### ๐Ÿค– Anthropic Claude SDK
 
 
171
 
172
- Core agent powered by **Claude Agent SDK**:
 
173
 
174
- - **Model**: Claude Haiku 4.5 (fast, cost-efficient, high-quality reasoning)
175
- - **Multi-turn Reasoning**: Agent conversations up to 100 turns
176
- - **Tool Orchestration**: Coordinates Postman MCP + Custom VAPT MCP tools
177
- - **Flexible Deployment**: Anthropic API or AWS Bedrock
178
- - **Permission Mode**: Bypass permissions for automated testing
179
 
180
  ---
181
-
182
  ## ๐ŸŽ Benefits & Impact
183
 
184
  ### For Security Professionals
@@ -206,349 +180,103 @@ Core agent powered by **Claude Agent SDK**:
206
  - ๐Ÿ”“ **Open Source**: Extensible architecture for custom tools
207
 
208
  ---
 
 
209
 
210
- ## ๐Ÿš€ Prerequisites
211
-
212
- - **Python 3.10+**
213
- - **[Postman API Key](https://postman.com/settings/api-keys)** - For MCP server access
214
- - **[Anthropic API Key](https://console.anthropic.com/) OR AWS Bedrock** - For Claude Haiku 4.5
215
- - **[Nebius API Key](https://nebius.com/)** - For AI Tutor (optional but recommended)
216
-
217
- ---
218
-
219
- ## ๐Ÿ“ฆ Installation
220
-
221
- 1. **Clone the repository**:
222
- ```bash
223
- git clone <repository-url>
224
- cd vapt-agent
225
- ```
226
-
227
- 2. **Create virtual environment**:
228
- ```bash
229
- python -m venv venv
230
- source venv/bin/activate # On Windows: venv\Scripts\activate
231
- ```
232
-
233
- 3. **Install dependencies**:
234
- ```bash
235
- pip install -r requirements.txt
236
- ```
237
 
238
- 4. **Configure environment**:
239
- ```bash
240
- cp .env.template .env
241
- # Edit .env with your credentials
242
- ```
243
 
244
  ---
 
245
 
246
- ## โš™๏ธ Configuration
247
-
248
- Create a `.env` file with the following variables:
249
-
250
- ```properties
251
- # --- Core VAPT Agent Configuration ---
252
-
253
- # AWS Bedrock (set to 1 to use Bedrock, 0 for Anthropic API)
254
- CLAUDE_CODE_USE_BEDROCK=1
255
-
256
- # AWS Credentials (if using Bedrock)
257
- AWS_ACCESS_KEY_ID=your_access_key
258
- AWS_SECRET_ACCESS_KEY=your_secret_key
259
- AWS_REGION=us-east-1
260
-
261
- # Model selection for VAPT Agent (Haiku 4.5 recommended)
262
- ANTHROPIC_MODEL=global.anthropic.claude-haiku-4-5-20251001-v1:0
263
- # If using Anthropic API directly:
264
- # ANTHROPIC_API_KEY=sk-ant-...
265
 
266
- # Postman API key (get from https://postman.com/settings/api-keys)
267
- POSTMAN_API_KEY=your_postman_api_key
268
 
269
- # --- AI Tutor Configuration (Nebius) ---
270
-
271
- # Nebius API Key for Tutor and Embeddings
272
- NEBIUS_API_KEY=your_nebius_api_key
273
-
274
- # Nebius Base URL (optional, defaults to standard endpoint)
275
- # NEBIUS_BASE_URL=https://api.tokenfactory.nebius.com/v1
276
-
277
- # AI Tutor Chat Model
278
- NEBIUS_TUTOR_MODEL=gpt-oss-20b
279
-
280
- # Embedding Model for Vector Search (REQUIRED for RAG)
281
- NEBIUS_EMBEDDING_MODEL=Qwen3-Embedding-8B
282
-
283
- # --- Optional Web Search ---
284
- # TAVILY_API_KEY=tvly-...
285
- ```
286
 
287
  ---
 
288
 
289
- ## ๐ŸŽฎ Usage
290
-
291
- ### 1. Web Interface (Recommended)
292
-
293
- Launch the **Gradio dashboard** for an interactive experience:
294
-
295
- ```bash
296
- python app.py
297
- ```
298
-
299
- - Open your browser at `http://localhost:7861`
300
- - Enter the API endpoint and HTTP method
301
- - Watch the real-time progress log
302
- - View the generated report, risk dashboard, and chat with the AI Security Tutor
303
-
304
- ### 2. Command Line Interface
305
-
306
- Run the agent directly from the terminal:
307
-
308
- ```bash
309
- python vapt_agent.py
310
- ```
311
-
312
- (Ensure `TEST_API_ENDPOINT` and `TEST_API_METHOD` are set in your `.env` file for CLI usage)
313
 
314
  ---
315
 
316
- ## ๐Ÿ” Security Tests Performed
317
-
318
- The agent uses custom MCP tools (`vapt_tools.py`) to perform:
319
-
320
- ### 1. **Injection Testing**
321
- - SQL Injection with various payloads (e.g., `' OR '1'='1`)
322
- - XSS (Cross-Site Scripting) detection
323
- - Path traversal attempts (`../../../etc/passwd`)
324
-
325
- ### 2. **Authentication Testing**
326
- - Endpoint access without credentials
327
- - Authentication bypass attempts
328
- - Token validation and expiration checks
329
-
330
- ### 3. **Rate Limiting**
331
- - Burst request testing (50 rapid requests)
332
- - 429 status code detection
333
- - DoS vulnerability assessment
334
 
335
- ### 4. **CORS Policy**
336
- - Origin validation testing
337
- - Wildcard (`*`) detection
338
- - Cross-origin request testing
 
 
 
339
 
340
- ### 5. **Security Headers**
341
- - `Strict-Transport-Security` (HSTS)
342
- - `X-Content-Type-Options`
343
- - `X-Frame-Options`
344
- - `Content-Security-Policy`
345
- - `X-XSS-Protection`
346
 
347
- ---
348
-
349
- ## ๐Ÿ“Š Output
350
 
351
- The agent generates a comprehensive **Markdown report** saved as `vapt_report_YYYYMMDD_HHMMSS.md` containing:
352
-
353
- - **Executive Summary** with risk score
354
- - **Vulnerability Details** (Severity, Description, Evidence, Remediation)
355
- - **Security Headers Analysis**
356
- - **CORS Policy Review**
357
- - **Rate Limiting Assessment**
358
- - **Recommendations** for fixes
359
-
360
- ---
361
-
362
- ## ๐Ÿ› ๏ธ Troubleshooting
363
-
364
- ### Postman API Key Issues
365
- - Get your API key from: https://postman.com/settings/api-keys
366
- - Ensure the key has necessary permissions for collections and environments
367
-
368
- ### AWS Bedrock Issues
369
- - Verify AWS credentials are correct
370
- - Ensure you have access to Claude models in your region
371
- - Check IAM permissions for Bedrock
372
-
373
- ### AI Tutor Not Working
374
- - Check `NEBIUS_API_KEY` is set
375
- - Ensure `NEBIUS_EMBEDDING_MODEL` is set to `Qwen3-Embedding-8B` for vector search to work
376
- - Verify `chromadb` is installed: `pip install chromadb`
377
-
378
- ### Gradio Interface Issues
379
- - Ensure port 7861 is not blocked
380
- - Try clearing browser cache
381
- - Check console logs for errors
382
-
383
- ---
384
-
385
- ## ๐Ÿค Contributing
386
-
387
- Contributions are welcome! Please follow the existing code structure:
388
-
389
- - Keep tools modular in `vapt_tools.py`
390
- - Add configuration in `config.py`
391
- - Update `.env.template` for new variables
392
- - Follow Python best practices (PEP 8)
393
- - Add docstrings for new functions
394
-
395
- ---
396
-
397
- ## ๐Ÿ“œ License
398
-
399
- MIT License
400
-
401
- ---
402
-
403
- ## โš ๏ธ Disclaimer
404
-
405
- This tool is for **authorized security testing only**. Always obtain proper authorization before testing any API endpoints. Unauthorized testing may be illegal and unethical.
406
-
407
- ---
408
-
409
- ## ๐Ÿ™ Acknowledgments
410
-
411
- Built for **MCP's 1st Birthday Hackathon** hosted by **Anthropic** and **Gradio**.
412
-
413
- **Technologies Used**:
414
- - [Anthropic Claude Agent SDK](https://github.com/anthropics/anthropic-sdk-python)
415
- - [Gradio](https://gradio.app/)
416
- - [Postman MCP Server](https://mcp.postman.com/)
417
- - [Chroma](https://www.trychroma.com/)
418
- - [Nebius Token Factory](https://nebius.com/)
419
-
420
- ---
421
-
422
- # VAPT Agent MCP Server
423
-
424
- ## ๐Ÿ”Œ From Gradio App to MCP Server
425
-
426
- This VAPT Agent started as an **interactive Gradio web application** designed to provide an intuitive UI for vulnerability assessment and penetration testing. To extend its capabilities and make it accessible to AI assistants and automation tools, **we additionally converted it into a Model Context Protocol (MCP) server** using Gradio's built-in MCP support.
427
-
428
- Following the guidelines from the **[Hugging Face blog on building MCP servers with Gradio](https://huggingface.co/blog/gradio-mcp)**, we transformed our application to support both web-based and programmatic access. This conversion allows the same powerful security testing features to be available through:
429
-
430
- - โœ… AI assistants like Claude Desktop
431
- - โœ… Automation scripts and CI/CD pipelines
432
- - โœ… Other MCP-compatible tools and workflows
433
- - โœ… Remote clients via both Streamable HTTP and STDIO transports
434
-
435
- **MCP Server URL**: `https://mcp-1st-birthday-vapt-agent.hf.space/gradio_api/mcp/`
436
-
437
- ---
438
-
439
- ## ๐ŸŽฏ Primary Tool: `vapt_agent_run_security_test`
440
-
441
- The core functionality of the VAPT Agent is exposed through the **`vapt_agent_run_security_test`** MCP tool, which allows external clients to programmatically trigger comprehensive security assessments.
442
-
443
- ### ๐Ÿ“‹ Tool Details
444
-
445
- **Name**: `vapt_agent_run_security_test`
446
- **Type**: Tool
447
- **Description**: Execute a complete VAPT security test on an API endpoint. The function validates inputs, starts the VAPT agent in a background thread, and streams real-time progress updates. The test button is disabled during execution and re-enabled when complete.
448
-
449
- ### ๐Ÿ“ฅ Parameters
450
-
451
- | Parameter | Type | Required | Description |
452
- |-----------|------|----------|-------------|
453
- | `api_endpoint` | string | โœ… Yes | The target API endpoint URL to test (e.g., `https://api.example.com/users`) |
454
- | `http_method` | string | โœ… Yes | HTTP method for the endpoint (e.g., `GET`, `POST`, `PUT`, `DELETE`) |
455
- | `api_key` | string | โœ… Yes | API authentication key/token for authorized testing |
456
-
457
- ### ๐Ÿ“ค Returns
458
-
459
- The tool yields progressive updates and final results:
460
-
461
- 1. **Progress Updates**: Real-time streaming of agent activities (endpoint discovery, vulnerability testing, report generation)
462
- 2. **Report Markdown**: Complete vulnerability assessment report in markdown format
463
- 3. **Report File Path**: Path to the downloadable report file
464
- 4. **Button State**: UI state management (disabled during test, enabled on completion)
465
-
466
- ### ๐Ÿ” What the Tool Does
467
-
468
- When invoked, `vapt_agent_run_security_test`:
469
-
470
- 1. **Validates Inputs**: Ensures all required parameters are provided
471
- 2. **Initiates VAPT Agent**: Starts the Claude-powered security testing agent in a background thread
472
- 3. **Performs Discovery**: Uses Postman MCP to discover API endpoints and generate OpenAPI specs
473
- 4. **Executes Security Tests**: Runs custom VAPT MCP tools for:
474
- - Injection attacks (SQL, XSS, path traversal)
475
- - Authentication/authorization bypass
476
- - Rate limiting and DoS vulnerabilities
477
- - CORS policy validation
478
- - Security headers analysis
479
- 5. **Streams Progress**: Yields real-time progress messages for client visibility
480
- 6. **Generates Report**: Creates comprehensive markdown report with:
481
- - Executive summary with risk score
482
- - Detailed vulnerability findings with severity levels
483
- - Evidence and remediation recommendations
484
- - Security headers and CORS analysis
485
- 7. **Updates Dashboard**: Automatically refreshes the visual risk dashboard with charts
486
-
487
- ### ๐Ÿ’ก Example Usage
488
-
489
- ```python
490
- # Example MCP client call
491
- result = client.call_tool(
492
  "vapt_agent_run_security_test",
493
  {
494
- "api_endpoint": "https://api.example.com/v1/users",
495
  "http_method": "GET",
496
- "api_key": "Bearer your-api-key-here"
497
  }
498
  )
499
 
500
- # The tool will stream progress like:
501
- # "๐Ÿ” Starting API security assessment..."
502
- # "๐Ÿ“ฎ Discovering endpoints using Postman MCP..."
503
- # "๐Ÿ›ก๏ธ Testing for SQL injection vulnerabilities..."
504
- # "๐Ÿ“Š Generating vulnerability report..."
505
- # "โœ… Security test completed!"
506
- ```
507
-
508
  ---
 
509
 
510
- ## ๐Ÿ› ๏ธ Additional Tools
 
511
 
512
- While the primary focus is on `vapt_agent_run_security_test`, the MCP server also exposes supporting tools for enhanced functionality:
 
513
 
514
- - **`vapt_agent_update_dashboard`**: Updates the visual security dashboard with new report data
515
- - **`vapt_agent_tutor_respond`**: Provides AI-powered security guidance and answers questions about the generated report using RAG (Retrieval-Augmented Generation)
516
- - **`vapt_agent__lambda_`**: Internal utility function
517
 
518
- > **Note**: For most use cases, you'll primarily interact with `vapt_agent_run_security_test` to perform security assessments.
519
 
520
- ---
 
521
 
522
- ## โš™๏ธ MCP Configuration
 
 
 
523
 
524
- ### Streamable HTTP Transport
 
 
 
 
 
 
525
 
526
- For MCP clients that support Streamable HTTP (recommended), add this configuration:
527
 
528
  ```json
529
  {
530
  "mcpServers": {
531
  "vapt_agent": {
532
  "url": "https://mcp-1st-birthday-vapt-agent.hf.space/gradio_api/mcp/"
533
- },
534
- "upload_files_to_gradio": {
535
- "command": "uvx",
536
- "args": [
537
- "--from",
538
- "gradio[mcp]",
539
- "gradio",
540
- "upload-mcp",
541
- "https://mcp-1st-birthday-vapt-agent.hf.space/",
542
- "<UPLOAD_DIRECTORY>"
543
- ]
544
  }
545
  }
546
  }
547
  ```
548
 
549
- ### STDIO Transport
550
-
551
- For clients like **Claude Desktop** that only support STDIO, first [install Node.js](https://nodejs.org/en/download/), then use:
552
 
553
  ```json
554
  {
@@ -561,66 +289,17 @@ For clients like **Claude Desktop** that only support STDIO, first [install Node
561
  "--transport",
562
  "streamable-http"
563
  ]
564
- },
565
- "upload_files_to_gradio": {
566
- "command": "uvx",
567
- "args": [
568
- "--from",
569
- "gradio[mcp]",
570
- "gradio",
571
- "upload-mcp",
572
- "https://mcp-1st-birthday-vapt-agent.hf.space/",
573
- "<UPLOAD_DIRECTORY>"
574
- ]
575
  }
576
  }
577
  }
578
  ```
579
 
580
- ### ๐Ÿ“ File Upload Support
581
 
582
- The `upload_files_to_gradio` tool uploads files from your local `<UPLOAD_DIRECTORY>` (or any subdirectories) to the Gradio app. This is needed because MCP servers require files to be provided as URLs. You can omit this tool if you prefer to upload files manually.
583
-
584
- **Requirements**: [uv](https://docs.astral.sh/uv/getting-started/installation/) must be installed.
585
-
586
- ---
587
-
588
- ## ๐ŸŽ“ Use Cases
589
-
590
- ### For AI Assistants (Claude Desktop)
591
- ```
592
- User: "Test the API at https://api.myapp.com/v1/products (GET method)
593
- with API key Bearer abc123"
594
-
595
- Claude: *Invokes vapt_agent_run_security_test*
596
- "I've initiated a security test. The VAPT agent is now scanning
597
- for vulnerabilities including injection attacks, authentication
598
- issues, and security misconfigurations..."
599
- ```
600
-
601
- ### For CI/CD Pipelines
602
- ```bash
603
- # Automated security testing in deployment pipeline
604
- mcp-client call vapt_agent_run_security_test \
605
- --api_endpoint "https://staging.api.com/auth/login" \
606
- --http_method "POST" \
607
- --api_key "$STAGING_API_KEY"
608
- ```
609
-
610
- ### For Security Teams
611
- ```
612
- # Remote security assessment without opening the web interface
613
- # Get comprehensive reports programmatically
614
- # Integrate with existing security workflow tools
615
  ```
616
-
617
- ---
618
-
619
- ## ๐Ÿ“š Resources
620
-
621
- - **[Building MCP Servers with Gradio](https://huggingface.co/blog/gradio-mcp)** - The guide we followed to convert our Gradio app to an MCP server
622
- - **[Gradio MCP Documentation](https://www.gradio.app/guides/building-mcp-server-with-gradio)** - Official Gradio MCP documentation
623
- - **[Model Context Protocol Specification](https://modelcontextprotocol.io/)** - Understanding MCP architecture
624
- - **[Hugging Face Spaces Configuration](https://huggingface.co/docs/hub/spaces-config-reference)** - Deploy your own MCP-enabled Gradio apps
625
-
626
  ---
 
21
  ---
22
 
23
 
24
+ # ๐Ÿ† VAPT Agent - Intelligent API Security Testing
25
+ ### *(Submission for MCPโ€™s 1st Birthday Hackathon)*
26
+ **Both the Tracks Covered:**
27
+ - **MCP in Action**
28
+ - **Building MCP**
29
 
30
  > **MCP's 1st Birthday Hackathon Submission** ๐ŸŽ‰
31
  > *Hosted by Anthropic & Gradio on Hugging Face*
32
  > [๐Ÿ”— Hackathon Page](https://huggingface.co/MCP-1st-Birthday)
33
 
34
+ **LinkedIn Post** โ†’ **http://bit.ly/4p98LHy**
35
+ **Demo Video โ€“ MCP in Action** โ†’ **https://youtu.be/wFgW_o48pw8?si=2lpag5I4zsUz8J2d**
36
+ **Demo Video โ€“ Building MCP** โ†’ **[YouTube link placeholder โ€“ to be added]**
37
 
38
+ ---
39
 
40
+ # ๐ŸŽฏ MCP in Action
41
+ ### Building an AI-powered VAPT workflow using multiple MCP servers
42
 
43
+ This part of the project demonstrates how a single agent orchestrates multiple MCP servers to plan, execute, and explain a complete API security assessment.
44
 
45
+ The Gradio application acts as an MCP client, coordinating:
46
 
47
+ - Postman MCP Server
48
+ Endpoint discovery, schema generation
49
+ - Custom VAPT MCP Tools
50
+ SQLi, XSS, authentication, CORS, headers, rate limits
51
+ - Claude Agent SDK (MCP-compatible)
52
+ Reasoning + tool invocation
53
+ - RAG Security Tutor (Nebius + Chroma)
54
+ Report-specific education using embeddings
55
 
56
+ This produces a fully automated end-to-end VAPT workflow.
57
 
58
  ---
59
 
60
+ ## ๐Ÿ“‹ Project Overview
61
 
62
+ The VAPT Agent is an autonomous system that performs API security testing and generates detailed audit-ready reports using:
63
+
64
+ - **Anthropic Claude Agent SDK** - Powers the core VAPT reasoning agent with Claude Haiku 4.5 from AWS Bedrock.
65
+ - **Postman MCP Server** - Enables automatic API discovery and OpenAPI specification generation
66
+ - **Custom VAPT MCP Tools** - Provides specialized security testing tools (SQL injection, XSS, auth testing, etc.)
67
+ - **Gradio Interface** - Provides an interactive, real-time UI for the VAPT workflow, enabling progress streaming, report visualization, dashboard analytics, and an integrated AI Security Tutor.
68
+ - **RAG tutor (Nebius LLM + Chroma DB)** - Provides context-aware education and analysis using embeddings.
69
+
70
+ The system is designed to execute full vulnerability assessments while also explaining findings in simple language.
71
+
72
+ ---
73
+
74
+ ## ๐Ÿ—๏ธ Architecture (MCP in Action)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
+ ```text
77
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
78
+ โ”‚ Gradio Web Interface โ”‚
79
+ โ”‚ (Progress Stream โ€ข Dashboard โ€ข AI Security Tutor) โ”‚
80
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
81
+ โ”‚
82
+ Claude Agent SDK
83
+ (MCP-aware Reasoning)
84
+ โ”‚
85
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
86
+ โ”‚ External MCP Servers โ”‚
87
+ โ”‚ โ”‚
88
+ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
89
+ โ”‚ โ”‚ Postman MCP โ”‚ โ”‚ Custom VAPT MCP Tools โ”‚ โ”‚
90
+ โ”‚ โ”‚ (Discovery) โ”‚โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚ (Security Testing Suite) โ”‚ โ”‚
91
+ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
92
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
93
+ โ”‚
94
+ โ–ผ
95
+ Target API Under Test
96
  ```
 
97
  ### ๐Ÿ”„ How It Works
98
 
99
  1. **User Input** โ†’ User provides API endpoint via Gradio interface
 
101
  3. **Testing** โ†’ Agent invokes **Custom VAPT MCP tools** to test for vulnerabilities
102
  4. **Reasoning** โ†’ **Claude Haiku 4.5** through AWS Bedrock analyzes results and generates comprehensive security report
103
  5. **Visualization** โ†’ Gradio dashboard displays risk scores and severity charts
104
+ 6. **Education** โ†’ User asks questions
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
+ ### ๐Ÿ“Š Output
107
 
108
+ The agent generates a comprehensive **Markdown report** saved as `vapt_report_YYYYMMDD_HHMMSS.md` containing:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
 
110
+ - **Executive Summary** with risk score
111
+ - **API Specification** (OpenAPI spec)
112
+ - **Vulnerability Details** (Severity, Description, Evidence, Remediation)
113
+ - **Security Headers Analysis**
114
+ - **CORS Policy Review**
115
+ - **Rate Limiting Assessment**
116
+ - **Recommendations** for fixes
117
+ ---
118
 
119
+ ## โœจ Key Capabilities (MCP in Action)
120
+ Automated Security Assessment:
121
+ - SQL Injection
122
+ - XSS
123
+ - Auth/Token checks
124
+ - Path traversal
125
+ - Rate limiting / DoS tests
126
+ - CORS misconfigurations
127
+ - Security headers audit
128
+
129
+ Interactive Gradio UI:
130
+ - Real-time streaming logs
131
+ - Downloadable markdown report
132
+ - Visual risk dashboard (gauge + pie chart)
133
+ - Tabbed layout
134
+ - Styled UI
135
+
136
+ RAG Security Tutor:
137
+ - Markdown-aware chunking
138
+ - Embeddings via Nebius (Qwen3-Embedding-8B)
139
+ - Chroma vector search
140
+ - Context-grounded answers
141
+ - Optional web search fallback
142
 
143
+ ---
 
 
 
 
144
 
145
+ ## ๐Ÿงฉ MCP Integrations Demonstrated (MCP in Action)
146
+ Postman MCP Server
147
+ Used for endpoint discovery and dynamic request generation.
148
 
149
+ Custom VAPT MCP Tools
150
+ Implements targeted security tests.
151
 
152
+ Claude Agent SDK
153
+ Provides reasoning and tool orchestration across multiple MCP servers.
 
 
 
154
 
155
  ---
 
156
  ## ๐ŸŽ Benefits & Impact
157
 
158
  ### For Security Professionals
 
180
  - ๐Ÿ”“ **Open Source**: Extensible architecture for custom tools
181
 
182
  ---
183
+ # ๐ŸŸง Building MCP
184
+ ### Converting the entire VAPT Agent into its own MCP server
185
 
186
+ For the Building MCP track, the same Gradio application was extended to expose an MCP server interface, allowing external AI tools, automation systems, and CI/CD pipelines to call the VAPT engine programmatically.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
 
188
+ Following the guidelines from the **[Hugging Face blog on building MCP servers with Gradio](https://huggingface.co/blog/gradio-mcp)**, we transformed our application to support both web-based and programmatic access.
 
 
 
 
189
 
190
  ---
191
+ ## ๐Ÿ”Œ VAPT Agent as an MCP Server (Building MCP)
192
 
193
+ MCP Server URL (Streamable HTTP):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
194
 
195
+ https://mcp-1st-birthday-vapt-agent.hf.space/gradio_api/mcp/
 
196
 
197
+ Supports:
198
+ - Streamable HTTP
199
+ - STDIO
200
+ - Claude Desktop
201
+ - Scripts
202
+ - CI/CD
 
 
 
 
 
 
 
 
 
 
 
203
 
204
  ---
205
+ ## ๐Ÿ› ๏ธ Tools Exposed by VAPT Agent MCP Server
206
 
207
+ Below is the tool documentation used in the โ€œBuilding MCPโ€ track.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
 
209
  ---
210
 
211
+ ### 1. vapt_agent_run_security_test
212
+ Primary tool exposed by the MCP server.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
 
214
+ Purpose:
215
+ - Validates inputs
216
+ - Discovers endpoints via Postman MCP
217
+ - Executes internal security tests
218
+ - Generates full markdown report
219
+ - Streams progress in real time
220
+ - Updates dashboard
221
 
222
+ Parameters:
223
+ - api_endpoint (string): API target
224
+ - http_method (string): GET / POST / PUT / DELETE
225
+ - api_key (string): token
 
 
226
 
227
+ Example (Python MCP client):
 
 
228
 
229
+ result = await session.call_tool(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
230
  "vapt_agent_run_security_test",
231
  {
232
+ "api_endpoint": "https://api.example.com/users",
233
  "http_method": "GET",
234
+ "api_key": "Bearer xyz"
235
  }
236
  )
237
 
 
 
 
 
 
 
 
 
238
  ---
239
+ ### 2. vapt_agent_update_dashboard
240
 
241
+ Purpose:
242
+ Updates the visual dashboard with the latest report.
243
 
244
+ Parameter:
245
+ - report_md (string): Full markdown report
246
 
247
+ ---
 
 
248
 
249
+ ### 3. vapt_agent_tutor_respond
250
 
251
+ Purpose:
252
+ Provides contextual security explanations based on the VAPT report using RAG.
253
 
254
+ Inputs:
255
+ - question (string)
256
+ - history (array)
257
+ - report_md (string)
258
 
259
+ Capabilities:
260
+ - Handles file uploads
261
+ - Performs vector search
262
+ - Generates grounded answers
263
+
264
+ ---
265
+ ## โš™๏ธ MCP Client Configuration Examples
266
 
267
+ Streamable HTTP:
268
 
269
  ```json
270
  {
271
  "mcpServers": {
272
  "vapt_agent": {
273
  "url": "https://mcp-1st-birthday-vapt-agent.hf.space/gradio_api/mcp/"
 
 
 
 
 
 
 
 
 
 
 
274
  }
275
  }
276
  }
277
  ```
278
 
279
+ STDIO (Claude Desktop):
 
 
280
 
281
  ```json
282
  {
 
289
  "--transport",
290
  "streamable-http"
291
  ]
 
 
 
 
 
 
 
 
 
 
 
292
  }
293
  }
294
  }
295
  ```
296
 
297
+ File upload support:
298
 
299
+ ```json
300
+ "upload_files_to_gradio": {
301
+ "command": "uvx",
302
+ "args": ["--from", "gradio[mcp]", "gradio", "upload-mcp", "https://mcp-1st-birthday-vapt-agent.hf.space/", "<UPLOAD_DIRECTORY>"]
303
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
304
  ```
 
 
 
 
 
 
 
 
 
 
305
  ---