NACC: From Local Network Orchestrator to Cloud Demo - A Journey Through Innovation

Community Article Published November 30, 2025

How a multi-node AI orchestrator was reimagined for HuggingFace Spaces, pioneering a two-space architecture to demonstrate distributed systems in the cloud


๐ŸŒŸ The Vision: AI-Powered Network Orchestration

Imagine this scenario: You're a developer juggling multiple machines - your MacBook for coding, a Kali Linux VM for security testing, and a home server running your projects. Every task requires manual SSH connections, remembering IP addresses, navigating different filesystems, and context-switching between terminals.

What if you could just... talk to all of them at once?

That's the problem NACC (Network Agentic Command Control) was born to solve. Not through another dashboard, not through another monitoring tool, but through natural language powered by the Model Context Protocol (MCP).


๐Ÿ“– The Origin Story: Building for the Real World

The Original Vision

NACC started as an ambitious project for the HuggingFace MCP Birthday Hackathon 2025 - celebrating the first anniversary of Anthropic's Model Context Protocol. But it wasn't built as a "hackathon project" in the traditional sense. It was built as a real solution to a real problem I face daily as a cybersecurity student and developer.

The Original Architecture:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   MacBook Pro   โ”‚     โ”‚  Kali Linux VM  โ”‚     โ”‚  Ubuntu Server  โ”‚
โ”‚  (Development)  โ”‚     โ”‚   (Pen Test)    โ”‚     โ”‚   (Production)  โ”‚
โ”‚                 โ”‚     โ”‚                 โ”‚     โ”‚                 โ”‚
โ”‚  NACC Node โœ“    โ”‚     โ”‚  NACC Node โœ“    โ”‚     โ”‚  NACC Node โœ“    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚                       โ”‚                       โ”‚
         โ”‚         Local Network (192.168.x.x)          โ”‚
         โ”‚                       โ”‚                       โ”‚
         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                 โ”‚
                        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                        โ”‚  NACC Brain     โ”‚
                        โ”‚ (Orchestrator)  โ”‚
                        โ”‚   + AI Agent    โ”‚
                        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

How it worked:

  1. Install agents on each machine with nacc-node init
  2. Natural language commands like "Scan the network on Kali and save results to my Mac"
  3. AI reasoning - The orchestrator understands intent, selects appropriate nodes, plans multi-step workflows
  4. Autonomous execution - Commands execute across nodes, files sync automatically, results aggregate in real-time

Why MCP Was Perfect for This

The Model Context Protocol isn't just about connecting AI to tools - it's about creating a standardized language for agents to communicate. For NACC, this meant:

  • Tool Discovery: Nodes advertise their capabilities (filesystem access, shell commands, security tools)
  • Context Sharing: The orchestrator maintains session state across multiple machines
  • Secure Communication: JSON-RPC over HTTP with custom authentication
  • Extensibility: New tools can be added without changing the core protocol

We built the entire MCP stack from scratch - no pre-existing SDKs, no templates. Every JSON-RPC handler, every tool definition, every security handshake was custom-written to truly understand the protocol.


๐Ÿ”„ The Turning Point: "How Do We Demo This?"

Then came the reality check.

The hackathon required submissions to be deployable on HuggingFace Spaces. But NACC was fundamentally designed for local networks with full system access. The challenge was immense:

The Core Problems

  1. ๐Ÿšซ No Real Network: HuggingFace Spaces run in isolated containers. You can't SSH to other machines. You can't discover nodes on a LAN.

  2. ๐Ÿ”’ Security Restrictions: File operations are sandboxed. Shell commands are limited. Root access? Forget it.

  3. ๐Ÿ—๏ธ Single Runtime: Spaces run one app. But NACC needs multiple nodes to demonstrate orchestration.

  4. ๐Ÿ“ฆ Static Environment: Can't install agents dynamically. Can't pair new nodes during runtime.

The Temptation to Simplify

It would have been easy to:

  • Strip NACC down to a single-machine demo
  • Fake the multi-node architecture with mocked responses
  • Build a video showcase instead of a live demo
  • Give up on the core innovation

But that wouldn't be NACC. That wouldn't be true to the vision.


๐Ÿ’ก The Innovation: Two Spaces, One Brain

After days of testing constraints and pushing boundaries, a radical idea emerged:

What if we use TWO separate HuggingFace Spaces and connect them via HTTP?

The Breakthrough Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  MAIN SPACE (Gradio SDK)                            โ”‚
โ”‚  https://huggingface.co/spaces/.../NACC             โ”‚
โ”‚                                                      โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚   Gradio UI  โ”‚  โ”‚ Orchestrator โ”‚  โ”‚ AI Agent  โ”‚ โ”‚
โ”‚  โ”‚  (Frontend)  โ”‚  โ”‚   (Brain)    โ”‚  โ”‚ (Blaxel)  โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚         โ”‚                 โ”‚                 โ”‚       โ”‚
โ”‚         โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค       โ”‚
โ”‚         โ”‚    โ”‚  hf-space-local (Node)       โ”‚       โ”‚
โ”‚         โ”‚    โ”‚  Local filesystem access     โ”‚       โ”‚
โ”‚         โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
          โ”‚
          โ”‚ HTTP Bridge (Cross-Space Communication)
          โ”‚ - JSON-RPC over HTTPS
          โ”‚ - Tool invocation protocol
          โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  VM SPACE (Docker SDK)                              โ”‚
โ”‚  https://huggingface.co/spaces/.../NACC-VM          โ”‚
โ”‚                                                      โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  vm-node-01 (NACC Node Server)               โ”‚  โ”‚
โ”‚  โ”‚  - Isolated Docker container                 โ”‚  โ”‚
โ”‚  โ”‚  - Simulates remote machine                  โ”‚  โ”‚
โ”‚  โ”‚  - RESTful API endpoints for tool execution  โ”‚  โ”‚
โ”‚  โ”‚  - Whitelisted command execution             โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Why This Was Revolutionary

  1. First Dual-Space Architecture: No one had used two separate HuggingFace Spaces to simulate a distributed system before.

  2. Maintained Core Concepts: We preserved the fundamental NACC experience - AI reasoning, multi-node orchestration, cross-machine operations.

  3. Real MCP Implementation: The Main Space and VM Space communicate via actual MCP-style JSON-RPC. The protocol is real, not simulated.

  4. Constraints as Features: Limited filesystem access became a security showcase. Containerization became deployment flexibility.


๐Ÿ› ๏ธ Technical Deep Dive: Building the Two-Space Bridge

Challenge 1: Cross-Space Communication

Problem: Gradio Spaces (main) can't directly communicate with Docker Spaces (VM) through Spaces' internal networking.

Solution: Implemented an HTTP-based tool invocation system:

# In Main Space (Orchestrator)
response = requests.post(
    "https://huggingface.co/spaces/MCP-1st-Birthday/NACC-VM/tools/execute-command",
    json={
        "command": ["ls", "-la", "/app"],
        "timeout": 30
    }
)
# In VM Space (Node Server)
@app.post("/tools/execute-command")
async def execute_command(request: CommandRequest):
    if request.command[0] not in ALLOWED_COMMANDS:
        raise HTTPException(403, "Command not allowed")
    
    result = subprocess.run(
        request.command,
        capture_output=True,
        timeout=request.timeout
    )
    return {"stdout": result.stdout, "exit_code": result.returncode}

Key Innovation: The Main Space's orchestrator treats the VM Space as a "remote node" - identical to how it would treat a real machine on a network. The abstraction is seamless.

Challenge 2: Preserving Context Across Spaces

Problem: Each space is stateless. How do we maintain session context (current directory, active node) across commands?

Solution: Session management with state persistence:

class SessionState:
    session_id: str
    current_node: str = "hf-space-local"  # Default to local
    current_path: str = "/tmp"
    created_at: datetime
    last_activity: datetime

# Store in orchestrator memory
sessions: Dict[str, SessionState] = {}

# Every chat message includes session context
@app.post("/chat")
async def chat(query: str, session_id: str, current_node: str, current_path: str):
    session = sessions.get(session_id)
    # AI uses current_node to route commands
    # Updates session state based on user actions
    return {
        "response": ai_response,
        "context": {
            "current_node": updated_node,
            "current_path": updated_path
        }
    }

Impact: Users can say "switch to vm-node-01" and all subsequent commands automatically target the VM Space - even though it's a separate deployment!

Challenge 3: Security in Open Environments

Problem: Anyone can access these Spaces. We can't allow arbitrary command execution.

Solution: Multi-layer security model:

  1. Command Whitelisting (VM Space):
ALLOWED_COMMANDS = {
    "ls", "cat", "pwd", "echo", "python3", "head", "tail",
    "find", "grep", "wc", "hostname", "whoami", "df", "du"
}
  1. Path Restrictions:
ROOT_DIR = "/app"  # All operations must stay inside /app
  1. Non-Root User:
RUN useradd -m -s /bin/bash user
USER user
  1. Timeout Enforcement: All commands have 30-second timeout limits.

Result: The demo is safe for public access while still showcasing NACC's capabilities.

Challenge 4: Making It Feel Real

Problem: How do we make a demo with limited permissions feel like the real NACC?

Solution: Enhanced UI feedback and intelligent error handling:

def parse_and_enhance_response(self, result: Dict, message: str) -> str:
    # Detect intent and provide contextual feedback
    if "install" in message.lower():
        if exit_code == 0:
            return "โœ… Installation completed successfully!"
        else:
            return "โš ๏ธ Installation restricted in demo mode. See the GitHub repo for full capabilities."
    
    if "navigate" in message.lower():
        # Parse the path change and update UI sidebar
        self.update_file_browser(new_path)
        return f"๐Ÿ“ Navigated to {new_path}\n{file_listing}"

Impact: Despite restrictions, users get a polished experience with real-time feedback and helpful guidance.


๐ŸŽฏ What We Achieved: A Comparison

Feature Original NACC (Local Network) HF Space Demo (Cloud)
Nodes Unlimited (Mac, Linux, VMs) 2 (hf-space-local + vm-node-01)
Filesystem Full access across all machines Sandboxed to /tmp and /app
Commands All shell commands available Whitelisted safe commands only
Node Pairing Dynamic via 6-digit codes Pre-configured for demo
File Sync Real-time cross-machine sync Simulated via API
AI Backend Blaxel, OpenAI, Gemini, Modal Blaxel (default)
Security SSH keys + firewall rules Command whitelist + path restrictions
Accessibility Local network or VPN required Public URL, accessible anywhere ๐ŸŒ
Deployment Manual setup on each machine One-click Space deployment ๐Ÿš€

The Insight: By adapting for Spaces, we actually made NACC more accessible to the world. The core innovation - AI-powered multi-node orchestration - is fully demonstrable without requiring users to set up their own infrastructure.


๐Ÿง  Built From the Ground Up: The MCP Implementation

One of the most challenging decisions was to build the entire MCP stack from scratch instead of using existing libraries. Here's why it mattered:

Custom MCP Server

class MCPServer:
    """Lightweight MCP-compliant JSON-RPC server"""
    
    def __init__(self):
        self.tools = {}  # Tool registry
        
    def register_tool(self, name: str, schema: Dict, handler: Callable):
        """Register an MCP tool with JSON schema"""
        self.tools[name] = {
            "name": name,
            "description": schema["description"],
            "inputSchema": schema["parameters"],
            "handler": handler
        }
    
    async def handle_list_tools(self) -> Dict:
        """MCP ListToolsRequest handler"""
        return {
            "tools": [
                {
                    "name": t["name"],
                    "description": t["description"],
                    "inputSchema": t["inputSchema"]
                }
                for t in self.tools.values()
            ]
        }
    
    async def handle_call_tool(self, name: str, arguments: Dict) -> Dict:
        """MCP CallToolRequest handler"""
        if name not in self.tools:
            return {"error": "Tool not found"}
        
        handler = self.tools[name]["handler"]
        result = await handler(**arguments)
        return {"content": [{"type": "text", "text": result}]}

Why Custom Implementation?

  1. Security Control: We know exactly what each line of code does. No black-box dependencies executing on root-level machines.

  2. Performance Optimization: Tailored for low-latency local network communication. No unnecessary abstractions.

  3. Learning & Demonstration: Building from scratch shows deep understanding of MCP principles - crucial for a hackathon celebrating the protocol itself.

  4. Flexibility: We added custom features like node aliases, session persistence, and cross-space routing that weren't in standard MCP SDKs.

The Tools We Built

# Filesystem tools
tools.register("read_file", read_file_handler)
tools.register("write_file", write_file_handler)
tools.register("list_directory", list_directory_handler)

# Execution tools
tools.register("execute_command", execute_command_handler)
tools.register("check_command_status", status_handler)

# Node management tools
tools.register("get_node_info", node_info_handler)
tools.register("switch_node", switch_node_handler)  # Our custom addition!
tools.register("sync_files", sync_files_handler)    # Multi-node innovation!

Each tool follows the MCP specification but is implemented to work across our two-space architecture.


๐Ÿ’ช Challenges Overcome: The Development Journey

Week 1: The Reality of Constraints

Discovery: Initial tests revealed HF Spaces' strict limitations.

Pivot: Decided to embrace constraints and build around them rather than fighting them.

Breakthrough: The two-space architecture concept was born.

Week 2: Building the Bridge

Challenge: Getting Gradio and Docker Spaces to communicate.

Attempts:

  • โŒ WebSockets (not supported across Spaces)
  • โŒ Shared volumes (Spaces are isolated)
  • โœ… HTTP REST API with MCP-style JSON-RPC

Result: Stable, fast cross-space communication.

Week 3: The AI Backend Maze

Initial Plan: Use Modal's free tier for LLM.

Problem: Modal's authentication flow broke in Gradio iframe context.

Discovery: Blaxel - an ultra-fast serverless LLM platform with <25ms cold starts.

Integration: Added Blaxel in under 10 minutes. Perfect experience.

Praise: Blaxel's seamless API made them the hero of this project. Their performance enabled real-time AI responses even in the cloud demo.

Week 4: The UI Persistence Bug

Issue: After "switch to vm-node-01", file browser still showed local files.

Root Cause: Session ID wasn't being returned correctly from chat handler.

Fix:

# Before (BROKEN)
return history, "", dashboard, files, session_id  # Input session_id

# After (FIXED)
return history, "", dashboard, files, session.session_id  # Actual session object

Learning: State management in multi-node systems is hard. Even small bugs break the entire UX.

Final Week: Video, Links, and Polish

Tasks:

  • Record demo video of real NACC (Mac + Kali)
  • Create LinkedIn post
  • Upload video to Spaces (Git LFS challenges!)
  • Add track justifications
  • Write this article ๐Ÿ˜Š

๐ŸŽ“ Key Learnings & Insights

1. Constraints Drive Innovation

The Spaces limitations forced us to create the two-space architecture - which is now a reusable pattern for any distributed demo on HF.

2. Abstractions Matter

By treating the VM Space as just another "node", we maintained code reusability. The orchestrator doesn't "know" it's talking to a different HF Space - it just sees a node at a URL.

3. User Experience > Technical Purity

We could have built a more "correct" MCP implementation, but the Blaxel + fallback regex approach gave users a better experience. Sometimes pragmatism wins.

4. Documentation is Demo

The in-UI help system, the detailed READMEs, and this article are all part of the "product". Good docs make complex systems accessible.


๐Ÿš€ Try NACC Yourself

Quick Start Commands

  1. List available nodes:

    list nodes
    
  2. Switch to the VM:

    switch to vm-node-01
    
  3. Explore files:

    navigate to /app/src
    
    list files
    
  4. Create a test file:

    navigate to /tmp
    
    write "Hello from NACC!" to demo.txt
    
  5. Read it back:

    read file demo.txt
    
  6. Switch back to local:

    switch to hf-space-local
    

Advanced: Multi-Node Workflow

Try this penetration testing simulation:

switch to vm-node-01
navigate to /app/demo
read file target_info.txt
switch to hf-space-local
create a file named scan_results.txt with content "Analysis complete"

The context switches are seamless - that's the magic of NACC.


๐ŸŒ Real-World Applications

For Enterprises

  • DevOps Orchestration: "Deploy the frontend to AWS and the backend to GCP, then run integration tests"
  • Incident Response: "Check the nginx logs on all web servers and compile a report"
  • Multi-Cloud Management: Treat AWS, GCP, Azure instances as one unified system

For Consumers

  • Home Lab Automation: "Update all my Raspberry Pis and reboot the Plex server"
  • Developer Workflows: "Sync my dotfiles from Mac to Ubuntu and rebuild the project"
  • Learning Environments: "Set up a vulnerable VM for practicing exploits"

For Educators

  • Distributed Systems Labs: Students can see real multi-node communication without complex setup
  • Cybersecurity Training: Pre-configured attack/defense scenarios across multiple VMs
  • Cloud Architecture: Demonstrate microservices without needing AWS credits

๐Ÿ”ฎ The Future of NACC

This hackathon demo is just the beginning. Here's what's next:

Version 2.0 Roadmap

  • [ ] Kubernetes Integration: Deploy NACC nodes as K8s pods
  • [ ] Advanced File Sync: Real-time bidirectional sync with conflict resolution
  • [ ] Visual Node Graph: Interactive topology map
  • [ ] Plugin System: Community-contributed tools (Nmap, Docker, Git)
  • [ ] Mobile App: Control your network from your phone
  • [ ] Blockchain Node Management: Orchestrate validator nodes across regions

Long-Term Vision

NACC aims to be the "Terraform for Human Language" - where infrastructure is declared through conversation, not code.

Imagine:

"I need a 3-tier web app: React frontend, Node.js API, PostgreSQL database. 
Deploy the frontend to Vercel, the API to Railway, and the database to Supabase. 
Set up CI/CD and Slack alerts."

NACC would understand this, plan the architecture, provision the resources, configure the networking, and deploy the stack - all autonomously.


๐Ÿ™ Acknowledgments

Technologies That Made This Possible

  • Anthropic: For creating the Model Context Protocol
  • HuggingFace: For the incredible Spaces platform and hosting this hackathon
  • Blaxel: For the blazing-fast LLM infrastructure that powers NACC's AI
  • Gradio: For the beautiful, functional UI framework
  • FastAPI: For the rock-solid backend framework

Special Thanks

To everyone who believed in this project - from initial skepticism ("you can't demo a network app in the cloud!") to seeing the two-space architecture come to life.

To the MCP community - for pioneering a protocol that will change how we build AI systems.

And to you, reading this - for taking the time to understand not just what NACC is, but why it matters.


๐Ÿ“š Explore More

๐Ÿ”— Links

๐Ÿ“ง Connect


๐Ÿ‘จโ€๐ŸŽ“ A Student's Journey: Struggles, Dreams, and Reality

Who Am I?

I'm Vasanthadithya Mundrathi (SHADOW) - a 3rd year B.E. Computer Science student at CBIT, Hyderabad. Not a senior engineer. Not a startup founder. Just a college kid who loves building things and refuses to wait for graduation to start making an impact.

The Struggle is Real

Let me paint you the picture of building NACC:

November 14, 2024 - Hackathon starts. I'm excited. I have this crazy idea about AI orchestrating networks.

November 18, 2024 - My college announces semester exams starting November 25th. Major project submission deadline: November 22nd.

November 20, 2024 - I'm debugging why Gradio and Docker Spaces can't talk to each other while also studying for Operating Systems exam and finishing my college IoT project.

November 23, 2024 - 2 AM. I finally crack the two-space architecture. I have an exam at 9 AM. I study for 3 hours, take the exam, come back and code for 12 hours straight.

November 28, 2024 - Exams are over. I have 2 days left before the hackathon deadline. The demo works locally but fails on HuggingFace Spaces. Git LFS is refusing to upload my 100MB video. I'm questioning every life choice.

November 29, 2024 - I push the final commit at 9 PM. The Spaces are live. The demo works (mostly). I'm exhausted, terrified, and oddly proud.

This is what building a hackathon project looks like when you're a student. No fancy co-working space. No team. Just you, your laptop, caffeine, and the stubborn refusal to give up.

The Imposter Syndrome Is Real

Here's what goes through my head when I look at other hackathon submissions:

  • "Their UI is so polished. Mine looks basic."
  • "They have 10+ stars already. I have 2 (both from my friends)."
  • "They're using the latest frameworks. I'm still learning Gradio."
  • "They probably have internships at Google. I'm struggling to get interview calls."

But then I remember: Everyone starts somewhere. Every expert was once a beginner.

This project isn't perfect. The Spaces demo is slower than I'd like. Some features don't work as smoothly as the local version. There are probably bugs I haven't found yet.

But I shipped it anyway. Because done is better than perfect. Because trying and failing is better than not trying at all.

What Drives Me

You know what keeps me going through the 2 AM debugging sessions and the rejection emails from companies?

The vision.

I genuinely believe we're at the cusp of a paradigm shift. In 5 years, controlling complex infrastructure through natural language will be normal. Junior developers will deploy multi-region Kubernetes clusters by just describing what they want. DevOps will be democratized.

And I want to be part of building that future. Not as a spectator, but as a contributor.

The Career Reality Check

I'm in my 3rd year. Placement season starts in 6 months. Here's what I'm up against:

  • The Algorithm Grinders: Students who can solve LeetCode Hard in 15 minutes. I can barely do Medium.
  • The Academic Stars: CGPA 9.5+, research papers published. Mine is... decent. Not great.
  • The Intern Squad: Already completed prestigious internships. My resume says "Personal Projects."
  • The Networked: Parents with connections in tech companies. Mine are schoolteachers.

So I build. Because if I can't compete on grades or pedigree, I'll compete on innovation, grit, and the ability to ship complex projects from zero.

NACC is my way of saying: "I might not be the smartest or the most credentialed, but I can learn, adapt, and build real solutions to real problems."

What I'm Looking For

I'm not looking for a job (yet - that's next year). I'm looking for opportunities to learn, grow, and prove myself:

Internships where I can:

  • Work on real-world problems, not just "student projects"
  • Learn from experienced engineers who can mentor me
  • Contribute meaningfully, not just fetch coffee
  • Build my skills in AI/ML, cybersecurity, or distributed systems

What I bring:

  • Fast Learning: Taught myself Gradio, FastAPI, MCP, Git LFS, and HF Spaces in 2 weeks
  • Problem-Solving: Turned HF Space constraints into an innovative two-space architecture
  • Ownership: Built NACC end-to-end - from idea to deployment - solo
  • Communication: Can explain complex technical concepts (see: this entire article)
  • Persistence: Coded through exams, failures, and self-doubt

What I need:

  • A chance. Just one.
  • Mentorship from people who've been where I am
  • Real problems to solve (I thrive under pressure)
  • Feedback (brutal honesty appreciated - I want to improve)

The Honest Ask

If you're reading this and you:

  • Work at a company building AI infrastructure, security tools, or distributed systems
  • Believe in giving opportunities to hungry college students
  • Value creativity and grit over perfect credentials

I'd love to talk.

I'm not claiming to be the next tech genius. I'm just a student who:

  • Learns fast
  • Ships code
  • Thinks differently
  • Refuses to give up

Check my work:

  • This Article: Proof I can envision and execute complex projects
  • GitHub: Proof I can code (NACC, Z-Umbra, SCS, H5X, GuardX, cognitive-resonance-analysis)
  • LinkedIn: Proof I can communicate and connect

Why Share This?

Because I know I'm not the only one. There are thousands of students like me:

  • Building in their dorm rooms
  • Balancing exams and hackathons
  • Fighting imposter syndrome
  • Dreaming of making it big

If you're one of them: Keep building. Keep shipping. Your projects don't need to be perfect. They need to exist.

Your first 100 GitHub stars won't come from marketing. They'll come from solving real problems and sharing your journey honestly.

Your dream internship won't come from cold applications. It'll come from someone seeing your work and thinking: "This person is hungry. Let's give them a shot."

You won't remember the sleep you lost or the exams you stressed over. You'll remember the moment your project went live and someone, somewhere, said: "This is actually useful."

To fellow students reading this: We're in this together. DM me on LinkedIn. Let's share struggles, celebrate wins, and lift each other up.

To industry folks reading this: We're the next generation. Give us a chance, and we'll surprise you.


๐ŸŽ“ The Personal Journey: Why This Matters

The Vision That Drove This Project

Here's the truth: I believe converting every machine and computer into an MCP node will be a game-changer.

Imagine a world where:

  • Your home laptop, office workstation, cloud VM, Raspberry Pi, and even your friend's server are all MCP-enabled
  • You control hundreds of these systems through a single AI agent chat interface
  • You type "Deploy my app to all production servers and roll back if error rate > 1%" and it just... happens
  • Natural language becomes the universal interface for computing

This isn't science fiction. This is the future I'm trying to build.

Why MCP Changes Everything

The Model Context Protocol does something revolutionary: it gives AI agents a standardized way to interact with tools and systems. But most MCP implementations focus on individual tools (databases, APIs, code editors).

NACC asks a different question: What if the tool is an entire computer?

When you make a machine MCP-compliant:

  1. AI agents gain physical reach - They're not just processing data; they're controlling infrastructure
  2. Complexity becomes conversational - Multi-step DevOps workflows become chat messages
  3. Democratization of power - Junior developers can orchestrate senior-level infrastructure with plain English

This is why I built NACC from zero. To prove that MCP + Agentic AI can orchestrate distributed systems at scale.

The Reality: Building Under Pressure

I'll be honest with you - this wasn't an easy journey.

The Challenges:

  • ๐ŸŽ“ College Semester Exams: This hackathon overlapped with my 3rd year final exams and major project deadlines
  • ๐Ÿ“š Learning Curve: As a cybersecurity student, I had to learn Gradio, FastAPI, different AI backends, and MCP specs from scratch
  • ๐Ÿ”ง HuggingFace Compatibility: Spent days fighting Space constraints, Git LFS issues, cross-space networking
  • โฐ Time Crunch: Built everything from zero while balancing academics

The Honest Truth:

  • The HF Space demo may have issues - I tried my best with limited testing time
  • Some features are sluggish compared to the local version
  • The architecture is unconventional because I had to innovate around constraints
  • I know I probably won't win prizes, but that's okay

Why I Still Shipped It: Because the vision matters more than perfection. Because showing what's possible matters more than showing what's polished.

What This Project Demonstrates

Beyond the code, NACC showcases:

  1. Agentic AI Capabilities: The orchestrator doesn't just execute commands - it plans, routes, and adapts based on context
  2. MCP's True Potential: Not just for connecting to APIs, but for orchestrating physical infrastructure
  3. Problem-Solving Under Constraints: The two-space architecture proves you can innovate your way around limitations
  4. Vision Over Resources: You don't need a tech team or unlimited compute - you need a clear vision and persistence

Think about it: Controlling an entire company's infrastructure from a chat interface using plain English. Sounds crazy, right? But that's exactly where we're headed.

A Request to the Community

I built this as a 3rd year pre-final student who's passionate about cybersecurity, AI, and distributed systems. I don't have years of industry experience. I don't have a team or funding.

What I do have is:

  • The ability to learn anything rapidly when motivated
  • A knack for innovative problem-solving and budget-conscious engineering
  • A desire to push boundaries and explore uncharted territories
  • The courage to ship imperfect work that demonstrates a powerful idea

If you try NACC and find value in it - please:

  • โญ Star the GitHub repository
  • ๐Ÿ”— Share it with your network
  • ๐Ÿ’ฌ Leave feedback (even the critical kind - I want to learn!)
  • ๐Ÿค Connect on LinkedIn to discuss ideas

I don't have Instagram (too much cybersecurity training made me paranoid ๐Ÿ˜…), but I'm active on LinkedIn and GitHub. Let's connect!

Looking for Opportunities

As a pre-final year student, I'm actively seeking internship opportunities where I can:

  • Build secure, distributed systems from the ground up
  • Solve complex problems with innovative, budget-conscious solutions
  • Contribute to AI/ML infrastructure or cybersecurity tooling
  • Work with teams pushing the boundaries of what's possible

If you're building something in AI agents, security automation, distributed systems, or MCP tooling - and you need someone who can learn fast, think creatively, and ship results - I'd love to chat.

Check my GitHub for technical proficiency, my LinkedIn for projects and achievements, and this very article for proof that I can envision, architect, and execute on ambitious ideas.


๐Ÿ’ฌ Closing Thoughts

Building NACC has been one of the most challenging and rewarding experiences of my journey as a developer. It forced me to think beyond single-machine applications, beyond single-cloud deployments, beyond the comfortable patterns I knew.

The two-space architecture wasn't Plan A. It wasn't even Plan B. It was what emerged when we refused to compromise on the core vision - that AI agents should be able to orchestrate real, distributed systems through natural language.

This hackathon celebrates the 1st birthday of MCP - a protocol that gives us the tools to build these kinds of systems. NACC is my tribute to that vision: a real-world application of MCP that pushes boundaries, embraces constraints, and shows what's possible when we think creatively about AI + Infrastructure.

To the judges: Thank you for considering this project. I know it's rough around the edges, but I hope the vision and innovation shine through.

To the community: If this article inspired you, if the demo impressed you, or if you just think the idea is cool - please try it, star it, and share your feedback. This is just the beginning, and the best ideas come from dialogue.

To anyone building with MCP: Keep pushing boundaries. Keep thinking bigger. The future where we control infrastructure through conversation is closer than you think.

Thank you for reading. Now go build something amazing with MCP! ๐Ÿš€


Built with โค๏ธ, โ˜•, and countless hours of debugging for the HuggingFace MCP Birthday Hackathon 2025 ๐ŸŽ‚

"The best way to predict the future is to build it." - NACC Team

Community

Sign up or log in to comment