vasanthfeb13 commited on
Commit
d8deee5
·
1 Parent(s): 14f7865

Update: Comprehensive README with demo guide for judges and community

Browse files
Files changed (1) hide show
  1. README.md +78 -539
README.md CHANGED
@@ -7,7 +7,7 @@ sdk: gradio
7
  app_file: app.py
8
  pinned: false
9
  license: mit
10
- short_description: Autonomous AI Agent Orchestrator for Multi-Node Control
11
 
12
  tags:
13
  - mcp-in-action-track-enterprise
@@ -18,590 +18,129 @@ tags:
18
  - building-mcp-track-creative
19
  ---
20
 
21
- # 🚀 NACC Orchestrator: Network Agentic Command Control
22
 
23
- > **Turn your entire network into a single, intelligent entity.**
24
 
25
- NACC is an **Autonomous AI Agent Application** that orchestrates multiple computers as a unified intelligent system using the **Model Context Protocol (MCP)**. It showcases autonomous reasoning, planning, and execution across distributed nodes—controlling Mac, Linux, and VM environments through natural language. Whether managing enterprise infrastructure, home labs, or creative workflows, NACC demonstrates the true power of MCP-enabled AI agents.
26
 
27
  ---
28
 
29
- ### 🎥 [Watch the Video Demo](LINK_TO_YOUR_VIDEO_HERE)
30
- ### 🐦 [See it on X / LinkedIn](LINK_TO_YOUR_SOCIAL_POST_HERE)
31
 
32
- ---
33
-
34
- ## 🏆 Hackathon Tracks
35
-
36
- ### 🎯 Primary: Track 2 - MCP in Action
37
-
38
- NACC is a **complete AI agent application** that demonstrates autonomous reasoning, planning, and execution:
39
-
40
- * **🏢 Enterprise Applications** (`mcp-in-action-track-enterprise`): Multi-node orchestration for distributed infrastructure management, automated deployments, and coordinated system administration
41
- * **👤 Consumer Applications** (`mcp-in-action-track-consumer`): User-friendly natural language interface for home labs, personal workflows, and everyday task automation
42
- * **🎨 Creative Applications** (`mcp-in-action-track-creative`): Innovative hub-and-spoke architecture enabling unprecedented cross-machine AI coordination and distributed creative workflows
43
-
44
- **What makes NACC an AI Agent Application:**
45
- - **Autonomous Reasoning**: AI interprets complex multi-step requests and plans execution across nodes
46
- - **Dynamic Planning**: Intelligently routes commands based on node capabilities and current context
47
- - **Autonomous Execution**: Executes coordinated actions across multiple machines without manual intervention
48
-
49
- ### 🔧 Secondary: Track 1 - Building MCP
50
-
51
- NACC also functions as an **MCP Server** extending LLM capabilities:
52
 
53
- * Exposes powerful tools for distributed file operations, shell execution, and cross-node synchronization
54
- * Integrates with Claude Desktop and any MCP-compatible client
55
- * Built entirely on MCP protocol for standardized AI-to-system communication
 
56
 
57
- This project was built **from the ground up** using the Model Context Protocol, showcasing true innovation in distributed AI orchestration.
58
 
59
- ---
60
 
61
- ## �📑 Table of Contents
62
-
63
- - [Hackathon Categories](#-hackathon-categories)
64
- - [Architecture](#-architecture)
65
- - [Key Features](#-key-features)
66
- - [Why Blaxel](#-why-blaxel-powers-nacc)
67
- - [How It Works](#-how-it-works)
68
- - [Installation & Setup](#%EF%B8%8F-installation--setup)
69
- - [Configuration](#%EF%B8%8F-configuration)
70
- - [Usage Guide](#-usage-guide)
71
- - [Example Workflows](#-example-workflows)
72
- - [Tech Stack](#%EF%B8%8F-tech-stack)
73
- - [Platform Compatibility](#-platform-compatibility)
74
- - [Troubleshooting](#-troubleshooting)
75
- - [FAQ](#-faq)
76
- - [Team Members](#-team-members)
77
 
78
  ---
79
 
80
- ## 🧠 Architecture
81
-
82
- NACC uses a **Hub-and-Spoke** architecture where a central Orchestrator manages multiple distributed Nodes.
83
-
84
- ```mermaid
85
- graph TD
86
- User["👤 User"] -->|Natural Language| UI["💻 NACC Web UI / Claude Desktop"]
87
- UI -->|JSON-RPC| Orch["🧠 Orchestrator - The Brain"]
88
-
89
- subgraph Local Network
90
- Orch -->|HTTP/MCP| Node1["🖥️ Node 1 - MacBook"]
91
- Orch -->|HTTP/MCP| Node2["🐧 Node 2 - Kali VM"]
92
- Orch -->|HTTP/MCP| Node3["☁️ Node 3 - Ubuntu Server"]
93
- end
94
-
95
- Node1 -->|Execute| FS1["📂 Filesystem / Shell"]
96
- Node2 -->|Execute| FS2["📂 Filesystem / Shell"]
97
- Node3 -->|Execute| FS3["📂 Filesystem / Shell"]
98
- ```
99
-
100
- ## 🌟 Key Features
101
-
102
- * **🗣️ Natural Language Control**: "Switch to Kali and scan the network" -> Executed instantly.
103
- * **🔌 MCP Native**: Built from scratch on the Model Context Protocol for standardized communication.
104
- * **📂 Dynamic File Operations**: Create, read, edit, and delete files across any connected node using natural language.
105
- * **🔄 Context-Aware Navigation**: The system remembers which node you're on and your current directory.
106
- * **🛡️ Secure & Private**: Designed for **local networks**. Your data stays within your LAN.
107
- * **🎨 Professional UI**: Modern, dark-themed interface built with Gradio 6.0.
108
- * **⚡ Powered by Blaxel**: Lightning-fast serverless AI inference with zero configuration.
109
- * **🤖 Multi-Backend Support**: Works with OpenAI, Anthropic, Gemini, Mistral, Llama, or local LLMs via Ollama.
110
 
111
- ---
112
-
113
- ## ⚡ Why Blaxel Powers NACC
114
 
115
- NACC uses **[Blaxel](https://blaxel.com)** as its default AI backend, and for good reason:
116
 
117
- ### 🚀 Flawless Performance
118
- * **Zero Configuration**: Works out of the box - no API keys needed for testing
119
- * **Lightning Fast**: Sub-second response times for command execution
120
- * **Always Available**: 99.9% uptime serverless infrastructure
121
- * **Cost Effective**: Pay only for what you use, perfect for demos and development
122
 
123
- ### 🎯 Perfect for NACC
124
- Blaxel's serverless architecture aligns perfectly with NACC's distributed nature:
125
- * No cold starts when orchestrating multiple nodes
126
- * Handles concurrent requests across nodes seamlessly
127
- * Automatically scales with your network growth
128
 
129
- ### 💡 Acknowledgment
130
- A huge thank you to the **Blaxel team** for building such a robust platform! Their commitment to making AI accessible and performant has been instrumental in bringing NACC to life. *We'd love to collaborate further - internship opportunities welcome!* 😊
131
 
132
- While NACC supports multiple backends (OpenAI, Anthropic, Gemini, Ollama), Blaxel remains our recommended choice for its perfect balance of speed, reliability, and ease of use.
 
 
 
 
 
133
 
134
  ---
135
 
136
- ## 🔍 How It Works
137
-
138
- NACC operates through a sophisticated request flow that bridges natural language and system commands:
139
-
140
- ```mermaid
141
- sequenceDiagram
142
- participant User
143
- participant UI as NACC UI
144
- participant LLM as AI Backend
145
- participant Orch as Orchestrator
146
- participant Node as Target Node
147
-
148
- User->>UI: "Create file test.txt on kali-vm"
149
- UI->>Orch: Send query with context
150
- Orch->>LLM: Parse intent + context
151
- LLM->>Orch: {tool: "write_file", node: "kali-vm", path: "test.txt"}
152
- Orch->>Node: HTTP POST /tools/write-file
153
- Node->>Node: Execute on filesystem
154
- Node->>Orch: {success: true, path: "/home/user/test.txt"}
155
- Orch->>UI: Format response
156
- UI->>User: "✅ File created on kali-vm"
157
- ```
158
-
159
- ### Core Components
160
-
161
- 1. **UI Layer** (`nacc_ui/`): Gradio-based chat interface with context management
162
- 2. **Orchestrator** (`nacc_orchestrator/`): Central brain that routes requests and manages node registry
163
- 3. **Node Agents** (`nacc_node/`): Lightweight servers exposing MCP tools for file/shell operations
164
- 4. **LLM Backend**: Interprets natural language and selects appropriate tools
165
-
166
- ---
167
-
168
- ## 🛠️ Installation & Setup
169
-
170
- ### Prerequisites
171
- * **Python 3.10+** installed on all machines.
172
- * **Network**: All machines (Orchestrator and Nodes) must be on the **same local network** (LAN).
173
- * **Git**: For cloning the repository.
174
-
175
- ### 🎮 Demo Guide
176
-
177
- NACC can be demonstrated in two powerful ways. Choose the one that fits your environment:
178
-
179
- ### ☁️ Option 1: Cloud Demo (Hugging Face Spaces)
180
- **Perfect for:** Judges, quick testing, zero setup.
181
-
182
- 1. **Open the Space**: Go to the NACC Space.
183
- 2. **Auto-Connect**: You will see **`✅ Online: Local Node (Demo)`** immediately. This is a real node running *inside* the Space container.
184
- 3. **Try Commands**:
185
- * "List files in current directory"
186
- * "Create a file named hello.txt with content 'Hello from HF Space!'"
187
- 4. **Multi-Node Magic** (Optional):
188
- * If you deployed the **VM Node Space**, connect to it:
189
- * *"Connect to node at https://mcp-1st-birthday-virtual-machine.hf.space and name it Remote-VM"*
190
- * Now you can switch between nodes: *"Switch to Remote-VM and list files"*
191
-
192
- ### 🏠 Option 2: Real-World Demo (Local Network)
193
- **Perfect for:** Full power, controlling physical devices, home labs.
194
-
195
- 1. **Run Orchestrator**: `python -m src.nacc_orchestrator.cli serve` on your main computer.
196
- 2. **Run Nodes**: `python -m src.nacc_node.cli serve` on your other laptops, Raspberry Pis, or VMs.
197
- 3. **Connect**:
198
- * *"Connect to node at 192.168.1.15 and name it MacBook-Pro"*
199
- * *"Connect to node at 192.168.1.20 and name it Kali-Linux"*
200
- 4. **Orchestrate**:
201
- * *"Check CPU usage on all nodes"*
202
- * *"Sync the 'project' folder from MacBook-Pro to Kali-Linux"*
203
-
204
- ---
205
-
206
- ## 🚀 Quick Start (Local) (For Judges)
207
-
208
- ```bash
209
- # Clone the repository
210
- git clone https://github.com/Vasanthadithya-mundrathi/NACC.git
211
- cd NACC
212
 
213
- # Setup environment (Mac/Linux)
214
- python3 -m venv .venv
215
- source .venv/bin/activate
216
- pip install -r requirements.txt
217
 
218
- # Start the Orchestrator
219
- ./start_nacc.sh
220
- ```
221
-
222
- Open your browser to `http://localhost:7860` - You're ready!
223
-
224
- ### Detailed Setup
225
-
226
- #### 1. Setting up the Orchestrator (The Brain)
227
- Run this on your main computer (e.g., MacBook, PC).
228
-
229
- 1. **Clone the Repository**
230
- ```bash
231
- git clone https://github.com/Vasanthadithya-mundrathi/NACC.git
232
- cd NACC
233
- ```
234
-
235
- 2. **Install Dependencies**
236
- ```bash
237
- python3 -m venv .venv
238
- source .venv/bin/activate # On Windows: .venv\Scripts\activate
239
- pip install -r requirements.txt
240
- ```
241
-
242
- 3. **Make Scripts Executable** (Mac/Linux only)
243
- ```bash
244
- chmod +x start_nacc.sh
245
- ```
246
-
247
- 4. **Start the Orchestrator**
248
- ```bash
249
- ./start_nacc.sh
250
- ```
251
-
252
- The UI will be available at `http://localhost:7860`.
253
 
254
- #### 2. Setting up Nodes (The Agents)
255
- Run this on any other machine you want to control.
256
 
257
- > **💡 Recommendation**: We highly recommend installing NACC Nodes in a **Virtual Machine (VM)** (like Kali Linux or Ubuntu) to safely test the powerful command execution capabilities without affecting your main system.
258
 
259
- 1. **Install NACC** (Same steps as above: clone & install requirements).
260
-
261
- 2. **Start the Node**
262
- Run the node agent, specifying a unique name and port:
263
- ```bash
264
- # On the Node machine (e.g., Kali VM)
265
- python3 -m nacc_node.main --name "kali-vm" --host 0.0.0.0 --port 8001
266
- ```
267
-
268
- *Note: `0.0.0.0` allows the node to accept connections from any IP on your local network. Note the IP address of this machine (e.g., `192.168.1.15`).*
269
-
270
- ---
271
-
272
- ## ⚙️ Configuration
273
-
274
- ### API Keys & Backend Selection
275
-
276
- NACC supports multiple AI backends. You can configure them via:
277
-
278
- 1. **Environment Variables** (Recommended for production):
279
- ```bash
280
- export OPENAI_API_KEY="sk-..."
281
- export ANTHROPIC_API_KEY="sk-ant-..."
282
- export GEMINI_API_KEY="..."
283
- export BLAXEL_API_KEY="..."
284
- ```
285
-
286
- 2. **UI Settings**: Use the Settings tab in the NACC Web UI to enter keys and select your backend.
287
-
288
- 3. **Config Files**: Edit `configs/orchestrator-config.yml` for advanced configuration.
289
-
290
- ### Supported Backends
291
-
292
- | Backend | Model | Notes |
293
- |---------|-------|-------|
294
- | **OpenAI** | GPT-4, GPT-4 Turbo | Best overall performance |
295
- | **Anthropic** | Claude 3.5 Sonnet | Excellent for complex reasoning |
296
- | **Google** | Gemini 1.5 Pro | Fast and cost-effective |
297
- | **Blaxel** | (Serverless) | Pre-configured for quick start |
298
- | **Ollama** | Llama 3, Mistral | Run locally (requires Docker) |
299
-
300
- ### Custom Configuration
301
-
302
- Edit `configs/orchestrator-config.yml` to:
303
- * Add static nodes (nodes that auto-connect on startup)
304
- * Configure default timeouts
305
- * Set audit log paths
306
- * Customize allowed commands per node
307
-
308
- Example:
309
- ```yaml
310
- nodes:
311
- - node_id: "macbook-local"
312
- transport: "local"
313
- root_dir: "/Users/yourname"
314
- tags: ["mac", "local"]
315
-
316
- agent_backend:
317
- provider: "openai"
318
- model: "gpt-4-turbo"
319
- ```
320
 
321
  ---
322
 
323
- ## 🚀 Usage Guide
324
-
325
- ### Connecting a Node
326
- Once your Orchestrator and Node are running:
327
 
328
- 1. Open the NACC UI (`http://localhost:7860`).
329
- 2. In the Chat interface, type:
330
- > "Connect to node at 192.168.1.15 on port 8001 and name it kali-vm"
331
- 3. The system will register the node. You can verify by asking:
332
- > "List all connected nodes"
333
 
334
- ### Controlling Nodes
335
- You can now switch contexts and control any node naturally.
336
-
337
- **Navigation & Exploration:**
338
  ```
339
- "Switch to kali-vm"
340
- "Navigate to Documents folder"
341
- "List all files in this directory"
342
- "Go back to parent directory"
 
 
 
 
 
 
 
 
 
 
343
  ```
344
 
345
- **File Operations:**
346
- ```
347
- "Create a file named 'notes.txt' with content 'Meeting at 5 PM'"
348
- "Read the content of 'notes.txt'"
349
- "Delete 'notes.txt'"
350
- "Write 'Updated content' to existing.txt"
351
- ```
352
-
353
- **Cross-Node Actions:**
354
- ```
355
- "Switch to macbook-local"
356
- "Share test.txt from kali-vm to macbook-local"
357
- "Check system stats on all nodes"
358
- ```
359
-
360
- ### Using with MCP Clients (Claude Desktop)
361
-
362
- NACC acts as an MCP Server, meaning you can connect it to Claude Desktop or any MCP-compatible client!
363
-
364
- 1. **Configure Claude Desktop**:
365
- Add this to your `claude_desktop_config.json` (usually in `~/AppData/Roaming/Claude/` on Windows or `~/Library/Application Support/Claude/` on Mac):
366
- ```json
367
- {
368
- "mcpServers": {
369
- "nacc": {
370
- "command": "uv",
371
- "args": [
372
- "--directory",
373
- "/absolute/path/to/NACC",
374
- "run",
375
- "nacc-orchestrator"
376
- ]
377
- }
378
- }
379
- }
380
- ```
381
-
382
- 2. **Alternative (Python Direct)**:
383
- ```json
384
- {
385
- "mcpServers": {
386
- "nacc": {
387
- "command": "python3",
388
- "args": [
389
- "-m",
390
- "nacc_orchestrator.mcp_server"
391
- ],
392
- "env": {
393
- "PYTHONPATH": "/absolute/path/to/NACC"
394
- }
395
- }
396
- }
397
- }
398
- ```
399
-
400
- 3. **Restart Claude Desktop**. You can now ask Claude:
401
- > "List files on my Kali VM"
402
- > "Create a backup directory on my Ubuntu server"
403
-
404
- ---
405
-
406
- ## 💡 Example Workflows
407
-
408
- ### Scenario 1: Basic File Operations (Local Node)
409
-
410
- **Goal**: Organize your files using AI.
411
-
412
- **Prompt**:
413
- > "Create a directory called 'test_data', write a file named 'notes.txt' inside it with the text 'Hello World', and then read it back to me."
414
-
415
- **What Happens**:
416
- 1. Intent Parser identifies 3 steps (Create Dir, Write File, Read File).
417
- 2. Orchestrator executes them sequentially on the local node.
418
- 3. Result: You see the file content "Hello World" in the chat.
419
-
420
- ### Scenario 2: Network Security Scan (Kali Node)
421
-
422
- *Requires a connected Kali Linux node.*
423
-
424
- **Goal**: Scan a target IP for vulnerabilities.
425
 
426
- **Prompt**:
427
- > "Switch to the Kali node. Run an nmap scan on 192.168.1.50 to find open ports. If you find port 80, try to curl the homepage."
428
-
429
- **What Happens**:
430
- 1. Router routes the request to the `kali-vm` node.
431
- 2. Agent executes `nmap -F 192.168.1.50`.
432
- 3. Logic: If output contains "80/tcp open", the Agent executes `curl http://192.168.1.50`.
433
- 4. Result: The AI summarizes the open ports and the web page content.
434
-
435
- ### Scenario 3: Multi-Node Workflow
436
-
437
- *Requires multiple connected nodes.*
438
-
439
- **Goal**: Distributed task execution.
440
-
441
- **Prompt**:
442
- > "Check the CPU usage on the MacBook node, and if it's below 50%, tell the Cloud node to start the backup process."
443
-
444
- **What Happens**:
445
- 1. Orchestrator queries MacBook node for system stats.
446
- 2. Orchestrator analyzes the CPU usage.
447
- 3. If condition is met, sends command `python backup_script.py` to Cloud node.
448
- 4. Result: A coordinated action across two different physical machines.
449
-
450
- ---
451
-
452
- ## 🛠️ Tech Stack
453
-
454
- ### Core Technologies
455
- * **Frontend**: Gradio 6.0 (Python)
456
- * **Backend**: FastAPI, Uvicorn
457
- * **Protocol**: JSON-RPC 2.0 (MCP Standard)
458
- * **AI Models**: OpenAI, Anthropic, Gemini, Mistral, Llama (via Ollama)
459
-
460
- ### Key Libraries
461
- * `pydantic` - Data validation and settings management
462
- * `httpx` - Async HTTP client for node communication
463
- * `pyyaml` - Configuration file parsing
464
- * `rich` - Terminal UI for debugging
465
-
466
- ### Compatibility
467
- * **Primary Support**: macOS, Linux (Debian/Ubuntu/Kali)
468
- * **Windows Support**: Recommended via **WSL2**. Native Windows support is experimental.
469
-
470
- ---
471
-
472
- ## 🔧 Troubleshooting
473
-
474
- ### Port Already in Use
475
- **Error**: `Address already in use: 7860`
476
-
477
- **Solution**: The system automatically finds the next open port. Check the terminal output for the correct URL (e.g., `http://127.0.0.1:7861`).
478
-
479
- ### Node Not Connecting
480
- **Error**: "Could not connect to node"
481
-
482
- **Solutions**:
483
- 1. Verify the node is running: `ps aux | grep nacc-node`
484
- 2. Check firewall settings allow port 8001
485
- 3. Confirm both machines are on the same local network
486
- 4. Try connecting to the node's IP directly in a browser: `http://192.168.1.15:8001/healthz`
487
-
488
- ### Permission Denied
489
- **Error**: `Permission denied: './start_nacc.sh'`
490
-
491
- **Solution** (Mac/Linux):
492
- ```bash
493
- chmod +x start_nacc.sh
494
  ```
495
-
496
- ### Missing Dependencies
497
- **Error**: `ModuleNotFoundError: No module named 'gradio'`
498
-
499
- **Solution**:
500
- ```bash
501
- source .venv/bin/activate # Activate virtual environment
502
- pip install -r requirements.txt
 
 
 
503
  ```
504
 
505
- ### API Key Issues
506
- **Error**: "Invalid API key"
507
-
508
- **Solutions**:
509
- 1. Verify your API key is correctly set in environment variables or UI settings
510
- 2. Try using the Blaxel backend (pre-configured)
511
- 3. Switch to local Ollama if you have it running
512
-
513
- ---
514
-
515
- ## 💻 Platform Compatibility
516
-
517
- ### ✅ Fully Supported Platforms
518
-
519
- NACC was **built and extensively tested** on the following platforms:
520
-
521
- * **macOS** (Primary development platform)
522
- * **Linux** - Debian/Ubuntu/Kali (Tested on Kali Linux VM)
523
-
524
- These platforms provide the best experience with full feature support and stability.
525
-
526
- ### ⚠️ Windows Compatibility Warning
527
-
528
- **NACC is NOT recommended for Windows** and may not work properly:
529
-
530
- * **Built on macOS**: The entire system was developed and optimized for Unix-like environments
531
- * **Tested on Linux**: All testing and verification was done on macOS and Kali Linux
532
- * **Shell Dependencies**: Many core features rely on bash/sh commands that don't translate well to Windows
533
- * **Path Handling**: File system operations use Unix path conventions
534
-
535
- **If you must use Windows**:
536
- 1. Use **WSL2 (Windows Subsystem for Linux)** - This is the ONLY supported way
537
- 2. Native Windows PowerShell/CMD is experimental and will likely fail
538
- 3. Expect compatibility issues with file operations and shell commands
539
-
540
- We strongly recommend using macOS or a Linux VM for the best experience.
541
-
542
  ---
543
 
544
- ## FAQ
545
-
546
- **Q: Do I need an API Key to use NACC?**
547
-
548
- A: NACC comes configured to use **Blaxel (Serverless)** by default for quick demos. For production, we recommend using your own OpenAI/Anthropic/Gemini key. You can also run **Ollama locally** (Docker required) for completely free, offline operation.
549
-
550
- **Q: Is NACC secure?**
551
-
552
- A: Yes, NACC is designed for **local network use only**. All communication between the Orchestrator and Nodes happens over your LAN. However, **do not expose Node ports to the public internet** without additional security layers (VPN/SSH Tunnel).
553
-
554
- **Q: Can I use NACC in production?**
555
-
556
- A: NACC is currently a hackathon project and proof-of-concept. While it's functional, we recommend additional hardening (authentication, encryption, rate limiting) before production use.
557
-
558
- **Q: I'm on Windows. Will this work?**
559
-
560
- A: Yes! We recommend using **WSL2** for the best experience. If running natively on Windows, some shell commands might need PowerShell equivalents.
561
-
562
- **Q: Can I control Windows machines?**
563
-
564
- A: Theoretically yes, but NACC is optimized for Unix-like systems (Mac/Linux). Windows support is experimental and may require custom tool configurations.
565
 
566
- **Q: How many nodes can I connect?**
567
-
568
- A: There's no hard limit, but we recommend starting with 2-5 nodes for optimal performance. The system is designed to scale horizontally.
569
-
570
- **Q: Can I use this with my existing automation scripts?**
571
-
572
- A: Absolutely! NACC Nodes can execute any script or command available on the target machine. Just use natural language to invoke them.
573
 
574
  ---
575
 
576
- ## ⚠️ Important Disclaimer
577
-
578
- **Local Network Only**: NACC is designed for local network environments. Nodes are discovered and controlled via direct IP connections. Ensure all your devices are connected to the same Wi-Fi or LAN.
579
 
580
- **Security Note**: Do not expose the Node ports (default 8001) or Orchestrator ports (default 7860) to the public internet without additional security layers (VPN, SSH Tunnel, reverse proxy with authentication).
581
-
582
- **VM Recommendation**: For testing, we strongly recommend running Nodes in isolated Virtual Machines to prevent accidental system modifications.
583
 
584
  ---
585
 
586
- ## 👥 Team Members
587
-
588
- * [Vasanthadithya-mundrathi](https://huggingface.co/Vasanthfeb13) - Creator & Lead Developer
589
-
590
- ---
591
-
592
- ## 🎯 Project Goals
593
-
594
- NACC was created for the **Hugging Face MCP Birthday Hackathon 2025** to demonstrate:
595
-
596
- 1. **MCP as a Universal Interface**: How the Model Context Protocol can unify disparate systems
597
- 2. **Natural Language Operations**: Making system administration accessible through conversation
598
- 3. **Distributed AI Orchestration**: Coordinating multiple agents across network boundaries
599
- 4. **Practical AI Applications**: Real-world use cases beyond chatbots
600
-
601
- ---
602
-
603
- **Happy Hacking!** 🚀
604
-
605
- *Created for the Hugging Face MCP Birthday Hackathon 2025*
606
- *Built with ❤️ by Vasanthadithya Mundrathi*
607
-
 
7
  app_file: app.py
8
  pinned: false
9
  license: mit
10
+ short_description: AI-Powered Network Orchestration via MCP
11
 
12
  tags:
13
  - mcp-in-action-track-enterprise
 
18
  - building-mcp-track-creative
19
  ---
20
 
21
+ # 🚀 NACC: Network Agentic Command Control
22
 
23
+ > **AI-powered orchestration for distributed systems using Model Context Protocol (MCP)**
24
 
25
+ NACC transforms multiple computers into a unified intelligent network, controllable through natural language. Built from scratch for the HF MCP Birthday Hackathon 2025.
26
 
27
  ---
28
 
29
+ ## 🎯 HuggingFace Space Demo
 
30
 
31
+ ### Quick Start
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
+ 1. **List nodes**: `list nodes`
34
+ 2. **Switch to VM**: `switch to vm-node-01`
35
+ 3. **Explore files**: `list files` `navigate to /app/src`
36
+ 4. **Try file ops**: `navigate to /tmp` → `create a file named demo.txt with content Hello!`
37
 
38
+ ### Demo Instructions
39
 
40
+ 📚 **Full demo guide available in the UI** - Open "Help & Instructions" accordion at the bottom
41
 
42
+ **Key Points**:
43
+ - VM Space (`vm-node-01`) - Remote node simulation
44
+ - File operations work in `/tmp/` directory
45
+ - Use absolute paths for navigation: `/app/src`, `/tmp`
46
+ - AI-powered natural language commands
 
 
 
 
 
 
 
 
 
 
 
47
 
48
  ---
49
 
50
+ ## 🏆 For Judges
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
 
52
+ ### What Makes NACC Special
 
 
53
 
54
+ **Built from Zero**: Every line of code written from scratch. No pre-made MCPs, no templates - pure original implementation.
55
 
56
+ **Original Vision**: NACC was designed for **real network environments** - controlling multiple PCs, servers, and VMs on the same network with full system access.
 
 
 
 
57
 
58
+ **Space Adaptation**: To showcase on HuggingFace Spaces, I created a unique two-space architecture:
59
+ - **Main Space**: Orchestrator + UI (this space)
60
+ - **VM Space**: Simulated remote node
61
+ - **HTTP Bridge**: Connects both spaces to simulate network communication
 
62
 
63
+ **Trade-offs**: Limited operations to protect running code. Real NACC (see demo videos) has full filesystem access, file sharing, and multi-node orchestration.
 
64
 
65
+ **Features**:
66
+ - ✅ Natural language command interpretation
67
+ - ✅ AI-powered tool selection and routing
68
+ - ✅ Cross-space file operations
69
+ - ✅ System monitoring and node management
70
+ - ✅ MCP protocol implementation
71
 
72
  ---
73
 
74
+ ## 💬 To The Community
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
+ Thank you for checking out NACC! This project represents months of learning and experimentation with AI agents and distributed systems.
 
 
 
77
 
78
+ **About Me**: Vasantha Dithya - 3rd year B.E. CSE student at CBIT, Hyderabad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
 
80
+ **Looking For**: Internship opportunities, learning experiences, and chances to work on real-world AI/security projects.
 
81
 
82
+ If you like this approach to network orchestration, let's connect! I'm passionate about building secure, autonomous systems from the ground up.
83
 
84
+ 📧 **Reach out**: [LinkedIn](https://www.linkedin.com/in/vasanthadithya-mundrathi-84a54031a/) | [GitHub](https://github.com/Vasanthadithya-mundrathi)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
 
86
  ---
87
 
88
+ ## 🛠️ Architecture
 
 
 
89
 
90
+ ### Two-Space Setup
 
 
 
 
91
 
 
 
 
 
92
  ```
93
+ ┌──────────────────────────┐
94
+ │ Main Space (This) │
95
+ │ - UI + Orchestrator │
96
+ │ - AI Backend (Blaxel) │
97
+ │ - hf-space-local node │
98
+ └────────┬─────────────────┘
99
+ │ HTTP
100
+
101
+ ┌──────────────────────────┐
102
+ │ VM Space │
103
+ │ - NACC Node Server │
104
+ │ - vm-node-01 │
105
+ │ - Isolated filesystem │
106
+ └──────────────────────────┘
107
  ```
108
 
109
+ ### Real NACC (Local Network)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  ```
112
+ ┌────────────┐ ┌────────────┐
113
+ │ MacBook │ │ Kali Linux │
114
+ │ (Node) │ │ (Node) │
115
+ └─────┬──────┘ └──────┬─────┘
116
+ │ │
117
+ └─────────┬──────────┘
118
+
119
+ ┌──────┴──────┐
120
+ │ Orchestrator│
121
+ │ (AI Brain) │
122
+ └─────────────┘
123
  ```
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  ---
126
 
127
+ ## 🤖 Tech Stack
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
 
129
+ - **Frontend**: Gradio
130
+ - **Backend**: FastAPI
131
+ - **AI**: Blaxel (GPT-4o-mini) + fallback regex
132
+ - **Protocol**: MCP (Model Context Protocol)
133
+ - **Communication**: HTTP/REST
134
+ - **Language**: Python 3.10+
 
135
 
136
  ---
137
 
138
+ ## 📺 Links
 
 
139
 
140
+ - **GitHub**: [Vasanthadithya-mundrathi/NACC](https://github.com/Vasanthadithya-mundrathi/NACC)
141
+ - **VM Space**: [NACC-VM](https://huggingface.co/spaces/MCP-1st-Birthday/NACC-VM)
142
+ - **Creator**: [@Vasanthfeb13](https://huggingface.co/Vasanthfeb13)
143
 
144
  ---
145
 
146
+ Built with ❤️ for **HF MCP Birthday Hackathon 2025** 🎂